如何进行R语言中的单因素分析
本篇文章为大家展示了如何进行R语言中的单因素分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
当包含的因子是解释变量时我们关注的重点通常会从预测转向组别的差异的分析,这种分析方法称作方差分析(ANOVA) ,除了R中的基础包,还需要加载car、gplots、HH、rrcov和mvoutlier包,安装请用:install.package(),方差分析一般用ANOVA模型-使用aov()函数,回归时用到的lm()函数也能分析ANOVA模型 。
aov()函数的语法:
aov(formula,data=dataframe),下图列举表达式中可以使用的特殊符号,y是因变量, A、B、C代表因子。
下表列举常见的研究设计表达式,小写表示定量变量,大写字母表示组别因子,Subject是对被试者独有的标识变量。
在ANOVA方差分析中,表达式等式右边的因子排列顺序很重要,如在双因素方差分析中,若不同处理方式中的观测数不同,那么模型y ~ A*B与模型y ~ B*A的结果不同。
R默认类型I(序贯型)方法计算ANOVA效应 (顺序很重要)。第一个模型可以这样写:y ~ A + B + A:B。R中的ANOVA表的结果将评价:
1.A对y的影响
2.控制A时,B对y的影响
3.控制A和B的主效应时,A与B的交互效应。
单因素方差分析
背景介绍:multcomp包中的cholesterol数据集,50个患者接受降低胆固醇药物治疗 (trt) 五种疗法中的一种 。其中三种治疗条条 使用药物相同,分别是20mg一天一次(1time)、10mg一天两次(2times)和5mg一天四次(4times)。剩下的两种方式(drugD和drugE)代表候选药物。哪一种药物疗法降低胆固醇(响应变量)最多呢?
> library(multcomp)
> attach(cholesterol)
> table(trt) #各组样本大小
trt
1time 2times 4times drugD drugE
10 10 10 10 10
> aggregate(response,by=list(trt),FUN=mean) #各组均值
Group.1 x
1 1time 5.78197
2 2times 9.22497
3 4times 12.37478
4 drugD 15.36117
5 drugE 20.94752
> aggregate(response,by=list(trt),FUN=sd) #各组标准差
Group.1 x
1 1time 2.878113
2 2times 3.483054
3 4times 2.923119
4 drugD 3.454636
5 drugE 3.345003
> fit <- aov(response~trt) #检验组间差异(ANOVA)
> summary(fit)
Df Sum Sq Mean Sq F value Pr(>F)
trt 4 1351.4 337.8 32.43 9.82e-13 ***
Residuals 45 468.8 10.4
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> library(gplots)
> plotmeans(response~trt,xlab = "Traetment",ylab = "Response",main="Nean Plot\nwith 95 CI") #绘制各组均值及其置信区间的图形
> detach(cholesterol)
从输出结果可知,每10个患者接受其中一个药物疗法。均值显示drugE降低胆固醇最多,而ltime降低胆固醇最少,各组的标准差相对恒定,在2.88-3.48间浮动。ANOVA对治疗(trt)的F检验非常显著(p<0.0001),说明五种疗法的效果不同。gplots包中的plotmeans()可以用来绘制带有置信区间的组均值图形,图形展示带有95%的置信区间的各疗法均值,可以清楚的看到它们之间的差异。
上述内容就是如何进行R语言中的单因素分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。