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


还有其他检验如-检验(.test()函数)和Brown-检验(HH包中的hov()函数) , 它们获得的结果与检验相同 。
2.3.3 离群点检验
离群点 :预测效果不佳的点 , 具有加大残差 。
根据最大的残差值的显著性来判断是否存在离群点:
若不显著P>0.05  , 表明没有离群点;若显著P
方差齐性分析对离群点非常敏感 。可利用car包中的()函数来检测离群点:
library(car)outlierTest(fit)
结果展示:
No Studentized residuals with Bonferroni p < 0.05Largest |rstudent|:rstudent unadjusted p-value Bonferroni p19 2.2511490.029422NA
结果分析:
这个结果是关于特定回归分析的统计学测试的输出内容 。对于第19个数据点 , 该测试计算出了学生化残差值为2.251 , 对应的未经校正的p值为0. 。然而 , 经过校正后的p值小于0.05的学生化残差值没有被发现 , 因此输出显示了“无 p < 0.05的学生化残差” 。由此可以得出结论 , 此数据点的学生化残差值并不显著 , 即不具有统计学上的显著性 (不具有统计学上的显著性意味着 , 结果不足以证明假设成立 。在这种情况下 , 我们不能拒绝原假设 。例子中 , 没有学生化残差的 p值小于0.05 , 这意味着没有离群点) 。
从输出结果来看 , 并没有证据说明胆固醇数据中含有离群点(当p>1时将产生NA) 。因此根据Q-Q图、检验和离群点检验 , 该数据似乎可以用ANOVA模型拟合得很好 。这些方法反过来增强了我们对于所得结果的可靠性 。
3. 单因素协方差分析
单因素协方差分析()扩展了单因素方差分析(ANOVA) , 包含一个或多个定量的协变量 。下面的例子来自于包中的数据集 。怀孕小鼠被分为四个小组 , 每个小组接受不同剂量(0、5、50或500)的药物处理 。产下幼崽的体重均值为因变量 , 怀孕时间为协变量 。
#单因素协方差分析data(litter, package="multcomp")attach(litter) table(dose)aggregate(weight, by=list(dose), FUN=mean)fit <- aov(weight ~ gesttime + dose) # 注意aov()使用的是类型1summary(fit)
结果展示:
> table(dose)dose0550 500 20191817
> aggregate(weight, by=list(dose), FUN=mean)Group.1x10 32.3085025 29.30842350 29.866114500 29.64647
> summary(fit)Df Sum Sq Mean Sq F valuePr(>F)gesttime1134.3134.308.049 0.00597 **dose3137.145.712.739 0.04988 * Residuals69 1151.316.69---Signif. codes:0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
结果分析:
利用table()函数 , 可以看到每种剂量下所产的幼崽数并不相同:0剂量时(未用药)产崽20个 , 500剂量时产崽17个 。再用()函数获得各组均值 , 可以发现未用药组幼崽体重均值最高(32.3) 。的F检验表明:
(a) 怀孕时间与幼崽出生体重相关;
(b) 控制怀孕时间 , 药物剂量与出生体重相关 。
控制怀孕时间 , 确实发现每种药物剂量下幼崽出生体重均值不同 。
3.1 去除协变量的影响
由于使用了协变量 , 你可能想要获取调整的组均值 , 即去除协变量效应后的组均值 。可使用 包中的()函数 来计算调整的均值:
library(effects)effect("dose", fit)