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,・・・とか安易につけたのは.
例に出したデータに対して,こんな解析しない,ということは横に放り投げておこう.