1. 研究实例
在评价某临床新药耐受性及安全性的2a期临床试验中,对符合纳入标准的30名健康自愿者随机分为3组,每组10名。各组注射剂量分别为0.5U、1U、2U,观察48小时部分凝血活酶时间(s),试问不同剂量的部分凝血活酶时间有无不同?数据库见time48.sav(SPSS格式)
2. 数据导入和基本分析
#加载必要的包
library(foreign) # 第1篇介绍
library(nortest) # 第1篇介绍
library(CBCgrps) # 第2篇介绍
library(tidyverse) # 第1篇介绍
library(car) #用于方差齐性检验
#导入数据
e4=read.spss("time48.sav") #读取数据集
e4
# 浏览数据变量结构
str(e4)
#利用函数整体进行快速统计描述
fun1
median
mean
IQR
sd
y5
return(y5)
}
fun1(e4$time,e4$group)
# 此处也可以利用dplyr函数进行
#进行两组数据的正态性检验
tt
#绘制箱式图来看看看数据的变异程度
boxplot(time~group,data=e4)
4. 方差分析
用于多个试验组与一个对照组间的比较。R语言中可利用multcomp包中的glht()函数进行包括
方差齐性检验
leveneTest(time~group,data=e4)# spss采用方法,推荐
# 方差分析
fit
summary(fit)
# 方差不齐时的welch检验
oneway.test(time ~ group, data =e4, var.equal = F)
5. 多重比较
R语言可以进行多种多重比较方法。不过,部分多重比较方法并不如SPSS友好,两两比较的P往往不提供。 (1)LSD法 LSD法在R语言中可利用agricolae包中的LSD.test函数实现,其调用格式为: LSD.test(y, trt, DFerror, MSerror, alpha = 0.05, p.adj=c("none","holm","hommel", "hochberg", "bonferroni", "BH", "BY", "fdr"), …) 其中y为方差分析对象,trt为要进行多重比较的分组变量,p.adj可以选定P值矫正方法。当p.adj=”none”时,为LSD法,p.adj="bonferroni"时为Bonferroni法。 library(agricolae) out summary(out) #展示所有结果 out$group#多重比较的关键结果 运行结果并不提供P值,只提供归类结果,具有相同英文字母者表示没有统计学差异。本案例分析结果显示:1 单位剂量与2单位剂量存在着统计学差异,1单位和0.5单位剂量存在着统计学差异,0.5 单位剂量与2单位剂量存在无统计学差异。 (2) Bonferroni法 它是Bonferroni校正在LSD法上的应用。将LSD.test中p.adj设置为"bonferroni"即为Bonferroni法。 out summary(out) out$group#结果显示 运行结果与LSD法类似,不再展示。 (3)Dunnett检验 用于多个试验组与一个对照组间的比较。R语言中可利用multcomp包中的glht()函数进行包括Dunnett检验在内的多种检验,其调用格式为: glht(model, linfct, alternative = c("two.sided", "less", "greater"), ...) 其中model为方差分析对象,linfct设置要进行多重比较的分组变量和方法。 library(multcomp) out summary(out) 程序运行结果: (4)SNK法(Student-Newman-Keuls) 实质上是根据预先制定的准则将各组均数分为多个子集, 利用Studentized Range分布来进行假设检验。SNK法可用agricolae包中的SNK.test()函数实现,其调用格式为: SNK.test(y, trt, alpha = 0.05, …) 其中y为方差分析对象,trt为要进行多重比较的分组变量 library(agricolae) out out$group#结果显示 程序运行结果与LSD.test类似。 (5)Turkey检验 使用学生化的范围统计量进行组间所有成对比较。Tukey的检验特点:所有各组的样本数相等;各组样本均数之间的全面比较;可能产生较多的假阴性结论。 R中Turkey检验检验的函数为TukeyHSD(model),其调用格式为: TukeyHSD(model) 其中model为方差分析对象 tuk=TukeyHSD(fit) tuk plot(tuk) 程序运行结果: (6)Duncan法(新复极差法)(SSR) 指定一系列的“range”值,逐步进行计算比较得出结论。 Duncan法可用agricolae包中的duncan.test()函数实现,其调用格式为: duncan.test(y, trt, …) 其中y为方差分析对象,trt为要进行多重比较的分组变量 (7)Scheffe检验 Scheffe法为均值的所有可能的成对组合执行并发的联合成对比较。使用F取样分布。可用来检查组均值的所有可能的线性组合,而非仅限于成对组合。Scheffe检验特点:各组样本数相等或不等均可以,但是以各组样本数不相等使用较多;如果比较的次数明显地大于均数的个数时,Scheffe法的检验功效可能优于Bonferroni法 Scheffe法可用agricolae包中的scheffe.test()函数实现,其调用格式为: scheffe.test(y, trt, …) 其中y为方差分析对象,trt为要进行多重比较的分组变量 医学研究R语言应用系列(点击即可学习) 0. R语言基础课程:30天学会R语言 1.正态性检验与判断 ( R教程 , SPSS教程 ) 2.CBCgrps包的妙用 3.两样本t检验 ( R教程 , SPSS教程 ) 4.两样本秩和检验 ( R教程 ,SPSS教程) “R语言教程”系列课程“”推出SPSS教程的姊妹课程,针对同样的数据,开展统计分析。 相关R代码可关注公众号,发送关键词“SPSS”至公众号,即可获得免费下载。欢迎关注,本号为论文写作与统计学习社群
有统计问题或科研合作请关注后加小编微信