何度か取り上げた被験者内2要因をRで実行する例のまとめ。要因の各水準の組み合わせの記述統計,単純主効果,多重比較をあわせておこなった。単純主効果は,ある水準(A1)のデータをとりだして,もう一方の要因(B)の効果を検定する方法を採用した。詳しくは以下を参照。
cf.
被験者内要因が 2つの場合 (1変量)(星野祐司氏 ( 立命館大学))
http://www.psy.ritsumei.ac.jp/~hoshino/spss/anova02x.html
多重比較はBonferroni を用いた。例題は森・吉田(1990, pp. 116-121)からで、要因A が 2水準,要因B が 4水準。
多重比較については,以下も参照。
入戸野 宏. (2004). 心理生理学データの分散分析. 生理心理学と精神生理学 22, 275-290.
http://home.hiroshima-u.ac.jp/nittono/ANOVA_JSPP2004.pdf
> x<-read.csv("anova02x.csv")
> x
FACTOR_A FACTOR_B SUBJECT DATA
1 1 1 1 3
2 1 2 1 4
3 1 3 1 6
4 1 4 1 5
5 1 1 2 3
6 1 2 2 3
7 1 3 2 6
8 1 4 2 7
9 1 1 3 1
10 1 2 3 4
11 1 3 3 6
12 1 4 3 8
13 1 1 4 3
14 1 2 4 5
15 1 3 4 4
16 1 4 4 7
17 1 1 5 5
18 1 2 5 7
19 1 3 5 8
20 1 4 5 9
21 2 1 1 3
22 2 2 1 2
23 2 3 1 3
24 2 4 1 2
25 2 1 2 5
26 2 2 2 6
27 2 3 2 2
28 2 4 2 3
29 2 1 3 2
30 2 2 3 3
31 2 3 3 3
32 2 4 3 3
33 2 1 4 4
34 2 2 4 6
35 2 3 4 6
36 2 4 4 4
37 2 1 5 6
38 2 2 5 4
39 2 3 5 5
40 2 4 5 6
> attach(x)
> A <- factor(FACTOR_A)
> B <- factor(FACTOR_B)
> S <- factor(SUBJECT)
> aov.ex=aov(DATA~(A*B)+Error(S/(A*B)),x)
> summary(aov.ex)
Error: S
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 4 38.150 9.538
Error: S:A
Df Sum Sq Mean Sq F value Pr(>F)
A 1 16.9000 16.9000 8.0958 0.04662 *
Residuals 4 8.3500 2.0875
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: S:B
Df Sum Sq Mean Sq F value Pr(>F)
B 3 19.7000 6.5667 6.0383 0.00952 **
Residuals 12 13.0500 1.0875
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: S:A:B
Df Sum Sq Mean Sq F value Pr(>F)
A:B 3 30.5000 10.1667 7.0725 0.005413 **
Residuals 12 17.2500 1.4375
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>#記述統計
> tapply(DATA,list(A,B),length)
1 2 3 4
1 5 5 5 5
2 5 5 5 5
> tapply(DATA,list(A,B),mean)
1 2 3 4
1 3 4.6 6.0 7.2
2 4 4.2 3.8 3.6
> tapply(DATA,list(A,B),sd)
1 2 3 4
1 1.414214 1.516575 1.414214 1.483240
2 1.581139 1.788854 1.643168 1.516575
>#要因Aの水準1のデータをとりだす
> a1<-x[x$FACTOR_A=="1",]
> a1
FACTOR_A FACTOR_B SUBJECT DATA
1 1 1 1 3
2 1 2 1 4
3 1 3 1 6
4 1 4 1 5
5 1 1 2 3
6 1 2 2 3
7 1 3 2 6
8 1 4 2 7
9 1 1 3 1
10 1 2 3 4
11 1 3 3 6
12 1 4 3 8
13 1 1 4 3
14 1 2 4 5
15 1 3 4 4
16 1 4 4 7
17 1 1 5 5
18 1 2 5 7
19 1 3 5 8
20 1 4 5 9
> detach(x)
># 単純主効果
> attach(a1)
> A <- factor(FACTOR_A)
> B <- factor(FACTOR_B)
> S <- factor(SUBJECT)
> summary(aov(DATA~B+Error(S/B)))
Error: S
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 4 21.2 5.3
Error: S:B
Df Sum Sq Mean Sq F value Pr(>F)
B 3 49.200 16.400 15.375 0.000206 ***
Residuals 12 12.800 1.067
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>#多重比較
> pairwise.t.test(DATA,B,p.adj="bonferroni")
Pairwise comparisons using t tests with pooled SD
data: DATA and B
1 2 3
2 0.6113 - -
3 0.0299 0.8904 -
4 0.0019 0.0739 1.0000
P value adjustment method: bonferroni
> detach(a1)
以下,A2におけるBの効果,Bの各水準におけるAの効果を同様に繰り返す。