2011年1月28日金曜日13:23:00
当てはめモデル中には因子がありません - 因子でないものは無視されました
統計解析言語Rにて,エラーがでて20分くらい悩んだことのメモ.
number, age, score 001, 20, 100 002, 20, 90 003, 21, 80 004, 22, 90 005, 22, 100 006, 20, 100 007, 21, 100 008, 22, 90 009, 25, 100 010, 23, 100
以上のCSVファイルを,Rに読み込ませ,年齢別に多重比較を行う.多重比較には,TukeyHSDを用いる.
> x <- read.csv( "test_tukey.csv", header=T )
> x
number age score
1 1 20 100
2 2 20 90
3 3 21 80
4 4 22 90
5 5 22 100
6 6 20 100
7 7 21 100
8 8 22 90
9 9 25 100
10 10 23 100
> summary( aov( x$score ~ x$age ) )
Df Sum Sq Mean Sq F value Pr(>F)
x$age 1 17.86 17.857 0.3306 0.5811
Residuals 8 432.14 54.018
> TukeyHSD( aov( x$score ~ x$age ) )
以下にエラー TukeyHSD.aov(aov(x$score ~ x$age)) :
当てはめモデル中には因子がありません
追加情報: 警告メッセージ:
In replications(paste("~", xx), data = mf) :
因子でないものは無視されました x$age
年齢部分が,数字なことが問題なので文字列にしてあげる.
> x <- read.csv( "test_tukey.csv", header=T )
> x
number age score
1 1 20歳 100
2 2 20歳 90
3 3 21歳 80
4 4 22歳 90
5 5 22歳 100
6 6 20歳 100
7 7 21歳 100
8 8 22歳 90
9 9 25歳 100
10 10 23歳 100
> summary( aov( x$score ~ x$age ) )
Df Sum Sq Mean Sq F value Pr(>F)
x$age 4 116.67 29.167 0.4375 0.7783
Residuals 5 333.33 66.667
> TukeyHSD( aov( x$score ~ x$age ) )
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = x$score ~ x$age)
$`x$age`
diff lwr upr p adj
21歳-20歳 -6.666667e+00 -36.56666 23.23332 0.8878143
22歳-20歳 -3.333333e+00 -30.07670 23.41003 0.9837917
23歳-20歳 3.333333e+00 -34.48750 41.15416 0.9955281
25歳-20歳 3.333333e+00 -34.48750 41.15416 0.9955281
22歳-21歳 3.333333e+00 -26.56666 33.23332 0.9892146
23歳-21歳 1.000000e+01 -30.11505 50.11505 0.8457803
25歳-21歳 1.000000e+01 -30.11505 50.11505 0.8457803
23歳-22歳 6.666667e+00 -31.15416 44.48750 0.9461657
25歳-22歳 6.666667e+00 -31.15416 44.48750 0.9461657
25歳-23歳 1.421085e-14 -46.32087 46.32087 1.0000000
TukeyHSDがきちんと行われ,分散分析の結果も変化したことがわかる.グループ名には,数値を用いず,文字列を使いましょうという話.だれだ,グループ名を数字で1,2,3,・・・とか安易につけたのは.
例に出したデータに対して,こんな解析しない,ということは横に放り投げておこう.
