Rで分散分析

一元配置実験

> x<-1:4
> y<-1:4+rnorm(4,mean=0,sd=0.1)
> q<-aov(y~x)
> anova(q)
Analysis of Variance Table

Response: y
          Df Sum Sq Mean Sq F value  Pr(>F)    
x          1 5.3171  5.3171   12046 8.3e-05 ***
Residuals  2 0.0009  0.0004                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> y<-1:4+rnorm(4,mean=0,sd=10)
> q<-aov(y~x)
> anova(q)
Analysis of Variance Table

Response: y
          Df Sum Sq Mean Sq F value Pr(>F)
x          1   2.31    2.31  0.0173 0.9075
Residuals  2 267.52  133.76    

データが4つ、自由度3、xの自由度が1、分散の自由度が2

2元配置実験

aa<-c(-5,-5,5,5)
bb<-c(0,0,0,0)
cc<-c(100,-100,-100,100)

#aa<-c(4,4,1,1)
#bb<-c(0,0,0,0)
#cc<-c(14,0,0,0)

a1<-aa+bb+cc+rnorm(4,sd=0.1)
a2<-aa+bb+cc+rnorm(4,sd=0.1)
a3<-aa+bb+cc+rnorm(4,sd=0.1)
a4<-aa+bb+cc+rnorm(4,sd=0.1)
a5<-aa+bb+cc+rnorm(4,sd=0.1)

a=rep(c("1","1","2","2"),5)
b=rep(c("1","2","1","2"),5)

d<-data.frame(A=a,B=b,y=c(a1,a2,a3,a4,a5))
q<-aov(d$y~d$B+d$A)
q2<-anova(q);
print(q2)


d<-data.frame(A=a,B=b,y=c(a1,a2,a3,a4,a5))
q<-aov(d$y~d$B*d$A)
q2<-anova(q);
print(q2)


結果

> source("anova123.R")
Analysis of Variance Table

Response: d$y
          Df Sum Sq Mean Sq F value Pr(>F)
d$B        1      0       0   0.000 0.9989
d$A        1    506     506   0.043 0.8382
Residuals 17 199989   11764               
Analysis of Variance Table

Response: d$y
          Df Sum Sq Mean Sq    F value Pr(>F)    
d$B        1      0       0 2.4441e+00 0.1375    
d$A        1    506     506 5.8320e+04 <2e-16 ***
d$B:d$A    1 199989  199989 2.3049e+07 <2e-16 ***
Residuals 16      0       0                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

主効果が交互作用に埋もれる例