ANOVA、ANCOVA 使用R语言进行方差分析(一)( 二 )


2.2 多重比较-
虽然ANOVA对各疗法的F检验表明五种药物疗法效果不同 , 但是并没有告诉你哪种疗法与其他疗法不同 。多重比较可以解决这个问题 , 其中()函数提供了对各组均值差异的成对检验 。
TukeyHSD(fit)
结果:
Tukey multiple comparisons of means95% family-wise confidence levelFit: aov(formula = response ~ trt)$trtdifflwruprp adj2times-1time3.44300 -0.65828177.544282 0.13809494times-1time6.592812.4915283 10.694092 0.0003542drugD-1time9.579205.4779183 13.680482 0.0000003drugE-1time15.16555 11.0642683 19.266832 0.00000004times-2times3.14981 -0.95147177.251092 0.2050382drugD-2times6.136202.0349183 10.237482 0.0009611drugE-2times11.722557.6212683 15.823832 0.0000000drugD-4times2.98639 -1.11489177.087672 0.2512446drugE-4times8.572744.4714583 12.674022 0.0000037drugE-drugD5.586351.48506839.687632 0.0030633
可以看到 , 1time和的均值差异不显著(p=0.138) , 而1time和间的差异非常显著(p 2.2.1 成对比较图
第一个par语句用来旋转轴标签 , 第二个用来增大左边界的面积 , 可使标签摆放更美观 。图形中置信区间包含0的疗法说明差异不显著(p>0.5)
在R语言中 , par(las=2)是用来设置绘图区域的标签方向的 。其中 , las是一个整数 , 用于指定标签的方向 。las=0表示标签平行于坐标轴 , las=1表示标签垂直于坐标轴 , las=2表示标签垂直于坐标轴并且文字是从右向左书写的 。
par(las=2)par(mar=c(5,8,4,2)) plot(TukeyHSD(fit))
结果展示:
2.2.2 多重均值比较-(更易理解)
包中的glht()函数提供了多重均值比较更为全面的方法 , 既适用于线性模型) , 也适用于广义线性模型 。下面的代码重现了Tukey HSD检验 , 并用一个不同的图形对结果进行展示 。
library(multcomp) par(las=0)par(mar=c(5,4,6,2))tuk <- glht(fit, linfct=mcp(trt="Tukey")) plot(cld(tuk, level=.05),col="lightgrey") #cld()函数中的level选项设置了使用的显著水平0.05

ANOVA、ANCOVA  使用R语言进行方差分析(一)

文章插图
结果展示:
图像解释:
有相同字母的组(用箱线图表示)说明均值差异不显著 。可以看到 , 1time和差异不显著(有相同的字母a) , 和差异也不显著(有相同的字母b) , 而1time和差异显著(它们没有共同的字母) 。个人认为 , 该图比2.2.1中的成对比较图更易理解 。
2.3 评估检验的假设条件 2.3.1 正态性检验
我们对于结果的可靠性取决于做统计检验时数据满足假设条件的程度 。单因素方差分析中 , 我们假设因变量服从正态分布 , 各组方差相等 。可以使用Q-Q图来检验正态性假设:
library(car) # qqPlot()要求用lm()拟合qqPlot(lm(response ~ trt, data=http://www.kingceram.com/post/cholesterol), simulate=TRUE, main="Q-Q Plot", labels=FALSE)
Q-Q图:
数据落在95%的置信区间范围内 , 说明满足正态性假设 。
2.3.2 方差齐性检验
library(car) qqPlot(lm(response ~ trt, data=http://www.kingceram.com/post/cholesterol), simulate=TRUE, main="Q-Q Plot", labels=FALSE)
结果展示:
Bartlett test of homogeneity of variancesdata:response by trtBartlett's K-squared = 0.57975, df = 4, p-value = http://www.kingceram.com/post/0.9653