4

R を学習するためにオンライン ガイドと古いテキストを組み合わせています (182 ページ - http://cran.r-project.org/doc/contrib/Faraway-PRA.pdf )。R のパッケージからデータを使用する場合 (チュートリアルの例のように) 問題はありません。ただし、テキストのデータを使用すると、常に F 値が表示されず、警告が表示されます。

見てみましょう:

data.frame へのデータ:

car.noise <- data.frame( speed = c("idle", "0-60mph", "over 60"), chrysler = c(41,65,76), 
bmw = c(45,67,72), ford = c(44,66,76), chevy = c(45,66,77), subaru = c(46,76,64))

data.frame を確認します。

car.noise
    speed chrysler bmw ford chevy subaru
1    idle       41  45   44    45     46
2 0-60mph       65  67   66    66     76
3 over 60       76  72   76    77     64

溶融 data.frame:

mcar.noise<- melt(car.noise, id.var="speed")

溶けたdata.frameをチェック

> mcar.noise
     speed variable value
1     idle chrysler    41
2  0-60mph chrysler    65
3  over 60 chrysler    76
4     idle      bmw    45
5  0-60mph      bmw    67
6  over 60      bmw    72
7     idle     ford    44
8  0-60mph     ford    66
9  over 60     ford    76
10    idle    chevy    45
11 0-60mph    chevy    66
12 over 60    chevy    77
13    idle   subaru    46
14 0-60mph   subaru    76
15 over 60   subaru    64

anova を実行し、警告を取得します。

> anova(lm(value ~ variable * speed, mcar.noise))
Analysis of Variance Table

Response: value 
               Df  Sum Sq Mean Sq F value Pr(>F)
variable        4    6.93    1.73               
speed           2 2368.13 1184.07               
variable:speed  8  205.87   25.73               
Residuals       0    0.00                       
Warning message:
In anova.lm(lm(value ~ variable * speed, mcar.noise)) :
  ANOVA F-tests on an essentially perfect fit are unreliable

私が思いつくことができる唯一の2つの説明:

1: コーディングが間違っている 2: テキストの例は、明確な例を示そうとしているため、「完璧」すぎます

4

1 に答える 1

7

変数*速度のすべての組み合わせに個別の平均を与えるモデルを当てはめようとしています。あなたが持っているデータでは、レプリケーションがまったくないことを意味します。各グループの値が 1 つしかない場合に、2 つのグループを比較しようとするようなものです。

anova テーブルの "Residuals" の行を見ると、そこには自由度がなく、平方和も 0 であることがわかります。適切であると思われる場合は、相互作用なしでモデルを適合させることを試みることができますが、モデルを相互作用で適合させるのに十分なデータがありません。

于 2011-12-18T06:52:17.663 に答える