Rで1要因ANOVA(被験者間)を行う方法と、結果の見方と書き方

サンプルデータ

Rで1要因ANOVA(被験者間)を行うための手順を、RStudioを使って示していきます。3つの異なる条件それぞれ被験者を20人ずつ割り当てて実験を行い、各実験後に何らかの評価(アンケートやテストなど)を取得して比較する場合、被験者間1要因ANOVAを利用できます。例えば、以下のようなデータを取得した場合を想定します:

A	B	C
97	56	56
101	39	39
91	57	57
88	54	54
92	42	42
104	47	47
95	49	49
102	45	45
89	53	53
99	52	52
105	53	53
98	56	56
96	56	56
94	49	49
97	49	49
102	48	48
92	43	43
103	57	57
103	49	49
97	43	43

分析方法の選び方

Rstudioでの分析には、以下のコマンドを利用します。今回はcarというライブラリを使っているので、必要であれば先にライブラリのインストールを行います。コマンドはほとんどRで1要因ANOVA(被験者内)を行う方法と変わりません。被験者内要因に関する記述を省いただけになります。効果サイズの計算で、被験者内要因に関するデータが無いので配列の番号も変更しています。

library(car) #Anova関数用
Data2 <- read.csv("Data2.csv") #テスト
y <- stack(Data2) # データ並び替え
Anova(lm(y$values ~ y$ind), type='III') # Type IIIの平方和を利用した分散分析
result <- Anova(lm(y$values ~ y$ind), type='III') # 効果サイズ計算用
result$"Sum Sq"[1]/(result$"Sum Sq"[1]+result$"Sum Sq"[2])# 効果サイズ計算
pairwise.t.test(y$values, y$ind, p.adj = "bonf") # 多重比較

Anova(lm(y$values ~ y$ind), type=’III’)を実行すると、以下のような結果が表示されます。F値、自由度、p値などが表示されています。

Anova Table (Type III tests)

Response: y$values
            Sum Sq Df F value    Pr(>F)    
(Intercept) 189151  1 6586.81 < 2.2e-16 ***
y$ind        29957  2  521.59 < 2.2e-16 ***
Residuals     1637 57                      
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

result$"Sum Sq"[1]/(result$"Sum Sq"[1]+result$"Sum Sq"[2])を実行すると、以下のような結果が表示されます。なお、SPSSで計算に用いられる偏η2ではなく、η2となります。

[1] 0.8632784

pairwise.t.test(y$values, y$ind, p.adj = “bonf")を実行すると、以下のような結果が表示されます。Bonferroni法を用いた多重比較の結果です。

Pairwise comparisons using t tests with pooled SD 

data:  y$values and y$ind 

  A      B
B <2e-16 -
C <2e-16 1

これらの結果を記載する例を、以下に示します。

実験で取得した、各条件における刺激提示の後に得られたテスト結果に対して、被験者間1要因分散分析を行った。その結果、条件要因に有意な差が得られた(F(2,38)=521.593, p<0.001, η2=0.863)。Bonferroni法による多重比較の結果、以下の組み合わせにおいて有意な差が得られた(A>B, p<0.001, A>C, p<0.001)。すなわち、条件Aにおいて、条件BおよびCよりも有意に高いテスト結果が得られた。条件BとCの間には有意な差が得られなかった。