2011年1月28日金曜日13:23:00

当てはめモデル中には因子がありません - 因子でないものは無視されました

タグ: , by ゆの

統計解析言語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,・・・とか安易につけたのは.

例に出したデータに対して,こんな解析しない,ということは横に放り投げておこう.

0 コメント

コメントを投稿する

0 件のコメント:

コメントを投稿

top