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

方差分析(一)2. 单因素方差分析(One-Way ANOVA) 2.3 评估检验的假设条件3. 单因素协方差分析 4. 双因素方差分析(ANOVA)
1. ANOVA模型拟合 1.1 aov()函数
语法:aov(, data = http://www.kingceram.com/post/)
R表达式中的特殊符号:
R语言中常见研究设计的表达式:
1.2 表达式中各项的顺序
表达式中各项的顺序在两种情况下会造成影响 , 例如 , y ~ AB与y ~ BA的结果不同:
因子有多个 , 且非平衡设计 (即每组样本数不同)存在协变量 (每个样本之间会有差别 , 而引起这些差别的变量叫做协变量)
R语言默认为类型I(序贯型)
又如:y~A+B+A:B:
A对y的影响控制A时 , B对y的影响控制A和B的主效应时 , A与B的交互效应
各因子的顺序对结果的影响:
样本大小越不平均 , 效应项顺序对结果的影响越大 。所以 , 越基础性的因子越应该放在表达式前面 , 即协变量应该放在主变量之前 , 接下来是双因素的交互项 , 再接下来是三因素的交互项 。
对于主效应 , 越基础的变量越应该放在表达式的前面 , 比如 , 性别应该放在处理方式的前面 。
car包中的Anova()函数提供使用类型2和类型3方法 , aov()函数使用类型1方法 。
2. 单因素方差分析(One-Way ANOVA)
单因子方差分析 , 比较分类因子定义的两个或者多个组别中因变量均值 。以包中的数据集为例(取自、Tobia、Rom、 , 1999) , 50个患者均接受降低胆固醇药物治疗(trt)五种疗法中的一种疗法 。其中三种治疗条件使用药物相同 , 分别是20mg一天一次(1time)、10mg一天两次()和5mg一天四天() 。剩下的两种方式(drugD和drugE)代表候选药物 。哪种药物疗法降低胆固醇(响应变量)最多?
install.packages('multcomp')library(multcomp)attach(cholesterol) #打开连接:直接使用其中的变量名而不需要使用符号colnames(cholesterol)table(trt)## 计算各组平均值mean## aggregate()函数是用于对数据进行分组统计的函数:# aggregate()函数是用于对数据进行分组统计的函数 。# response是一个向量 , trt是一个因子变量 , 表示不同的处理组 。# aggregate(response, by=list(trt), FUN=mean)的作用是计算response向量中每个处理组的平均值aggregate(response, by=list(trt), FUN=mean)response## 计算各组标准差sdaggregate(response, by=list(trt), FUN=sd)## 检验组间差异fit <- aov(response ~ trt)summary(fit)#自由度 平方和 均方和 F值 P值
结果:
> aggregate(response, by=list(trt), FUN=mean)Group.1x11time5.7819722times9.2249734times 12.374784drugD 15.361175drugE 20.94752
> aggregate(response, by=list(trt), FUN=sd)Group.1x11time 2.87811322times 3.48305434times 2.9231194drugD 3.4546365drugE 3.345003
> summary(fit)Df Sum Sq Mean Sq F valuePr(>F)trt4 1351.4337.832.43 9.82e-13 ***Residuals45468.810.4---Signif. codes:0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA对治疗方式(trt)的F检验非常显著(p 2.1 绘制各组均值及其置信区间的图形
## 绘制各组均值及其置信区间的图形library(gplots) plotmeans(response ~ trt, xlab="Treatment", ylab="Response", main="Mean Plot\nwith 95% CI")detach(cholesterol) # 关闭连接
自由度: 考虑样本量为n的样本(n个数) , 如果我们知道样本均值 , 那么我们只需要知道前n-1个数 , 就可以得知全部信息 , 因为最后一个数可以借助均值计算得出 。所以 , 在给定样本均值(约束条件)的情况下 , 我们相当于在原本n个数的基础上消减了一个自由度 , 样本提供的信息只有n-1个独立的部分 。