搜索
写经验 领红包
 > 育儿

语言进行单因素方差分析(语言单因素协方差分析案例)

导语:用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值还是从箱线图都可以说明:四种材料生产出的元件的平均寿命无显著差异。

本文内容由小姿整理编辑!