语言进行单因素方差分析(语言单因素协方差分析案例)
导语:用R语言做数据分析——单因素方差分析
例子:利用四种不同配方的材料A1、A2、A3、A4生产出来的元件,测得其使用寿命如下图所示。问:四种不同配方下元件的使用寿命有无显著差异?
R语言中的aov()函数提供了方差分析的计算,aov()函数的使用方式如下:
aov(formula,data=NULL)
其中formula是方差分析的公式,data是数据框。另外,可使用summary()列出方差分析表的详细信息。
接下来用数据框的格式输入数据,调用aov()函数计算方差分析,用summary()提取方差分析的信息。
> lamp<-data.frame(
+ X=c(1600, 1610, 1650, 1680, 1700, 1700, 1780, 1500, 1640, 1400, 1700, 1750, 1640, 1550, 1600, 1620, 1640, 1600, 1740, 1800, 1510, 1520, 1530, 1570, 1640, 1600),
+ A=factor(c(rep(1,7),rep(2,5),rep(3,8),rep(4,6)))
+ )
> lamp.aov<-aov(X~A,data = lamp)
> summary(lamp.aov)
Df Sum Sq Mean Sq F value Pr(>F)
A 3 49212 16404 2.166 0.121
Residuals 22 166622 7574
summary()打印出的内容,如果再加上一个总和计算,被称为方差分析表。其中Df表示自由度,Sum Sq表示平方和,Mean Sq表示均方,F value表示F值,Pr(>F)表示P值,A就是因素A,Residuals是残差,即误差。这里没有列出总和计算,需要单独编写一个程序“anova.R”,代码如下:
anova.tab<-function(fm){
tab<-summary(fm)
k<-length(tab[[1]])-2
temp<-c(sum(tab[[1]][,1]),sum(tab[[1]][,2]),req(NA,k))
tab[[1]]["Total",]<-temp
tab
}
使用此程序可以得到一份完整的方差分析表:
> source('anova.tab.R')
> anova.tab(lamp.aov)
Df Sum Sq Mean Sq F value Pr(>F)
A 3 49212 16404 2.166 0.121
Residuals 22 166622 7574
Total 25 215835
方差分析表的具体格式如下:
绘制箱线图
>plot(lamp$X~lamp$A)
无论是从p值还是从箱线图都可以说明:四种材料生产出的元件的平均寿命无显著差异。
本文内容由小姿整理编辑!