分散分析

「心理・教育統計法特論」第5章分散分析

1要因被験者間計画での計算例

1
2
3
4
5
A学科<-c(2,4,3,4,2)
B学科<-c(4,5,4,3,5)
C学科<-c(5,4,6,6,7)
d<-data.frame(A学科,B学科,C学科)
d1<-stack(d)

表はxtable関数を使ってhtmlで書き出す
2通りのやり方

1
2
library(xtable)
print(xtable(summary(aov(values ~ ind, data=d1))),type="html")




Df Sum Sq Mean Sq F value Pr(>F)
ind 2 16.93 8.47 8.47 0.0051
Residuals 12 12.00 1.00
1
print(xtable(Anova(lm(values ~ ind, data=d1))),type="html")




Sum Sq Df F value Pr(>F)
ind 16.93 2 8.47 0.0051
Residuals 12.00 12

多重比較

1
print(xtable(TukeyHSD(aov( values ~ ind ,data= d1))$ind),type="html")





diff lwr upr p adj
B学科-A学科 1.20 -0.49 2.89 0.18
C学科-A学科 2.60 0.91 4.29 0.00
C学科-B学科 1.40 -0.29 3.09 0.11

2要因の分散分析(被験者間計画)

1
2
3
4
学科<-rep(c("A","B","C"),each=10)
性別<-rep(rep(c("男","女"),each=5),3)
勉強時間<-c(2,4,3,4,2,3,3,4,5,2,2,3,2,1,3,4,5,6,5,7,3,2,4,4,5,3,3,5,5,4)
d<-data.frame(学科,性別,勉強時間)
1
print(xtable(aov( 勉強時間 ~ 学科 * 性別 ,data= d )),type="html")






Df Sum Sq Mean Sq F value Pr(>F)
学科 2 2.40 1.20 1.09 0.3520
性別 1 13.33 13.33 12.12 0.0019
学科:性別 2 13.07 6.53 5.94 0.0080
Residuals 24 26.40 1.10
1
plotMeans(d$勉強時間, d$学科, d$性別, error.bars="none")

交互作用が有意。1つの要因の各水準における他方の要因の効果を調べる。

性別について

性別が男の場合
1
2
dMan <- subset(d, subset=性別=="男")
print(xtable(aov( 勉強時間 ~ 学科 ,data= dMan)),type="html")




Df Sum Sq Mean Sq F value Pr(>F)
学科 2 4.93 2.47 2.47 0.1267
Residuals 12 12.00 1.00
  • 有意差なし
性別が女の場合
1
2
dWoman <- subset(d, subset=性別=="女")
print(xtable(aov( 勉強時間 ~ 学科 ,data= dWoman )),type="html")




Df Sum Sq Mean Sq F value Pr(>F)
学科 2 10.53 5.27 4.39 0.0371
Residuals 12 14.40 1.20
  • 有意差あり。多重比較を行う。
1
print(xtable(TukeyHSD(aov( 勉強時間 ~ 学科 ,data= dWoman ))$学科),type="html")

invalid multibyte string at ‘<91>‘

マルチバイトエラーがでた

変数名を変更して再チャレンジ

1
2
names(dWoman)<-c("course","sex","time")
print(xtable(TukeyHSD(aov(time ~ course ,data= dWoman))$course),type="html")





diff lwr upr p adj
B-A 2.00 0.15 3.85 0.03
C-A 0.60 -1.25 2.45 0.67
C-B -1.40 -3.25 0.45 0.15
  • AB間に有意差あり

学科について

学科がAの場合
1
2
dA <- subset(d, subset=学科=="A")
print(xtable(aov( 勉強時間 ~ 性別 ,data= dA )),type="html")




Df Sum Sq Mean Sq F value Pr(>F)
性別 1 0.40 0.40 0.35 0.5716
Residuals 8 9.20 1.15
  • 有意差なし
学科がBの場合
1
2
dB <- subset(d, subset=学科=="B")
print(xtable(aov( 勉強時間 ~ 性別 ,data= dB)),type="html")




Df Sum Sq Mean Sq F value Pr(>F)
性別 1 25.60 25.60 25.60 0.0010
Residuals 8 8.00 1.00
  • 有意差あり
学科がCの場合
1
2
dC <- subset(d, subset=学科=="C")
print(xtable(aov( 勉強時間 ~ 性別 ,data= dC)),type="html")




Df Sum Sq Mean Sq F value Pr(>F)
性別 1 0.40 0.40 0.35 0.5716
Residuals 8 9.20 1.15
  • 有意差なし