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

融化数据.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(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

您正在尝试拟合一个模型,该模型为可变*速度的每个组合提供单独的平均值。有了你拥有的数据,这意味着你根本没有任何复制。当您从每个组中只有一个值时,这就像尝试比较两组一样。

如果您查看 anova 表中的“残差”行,您应该注意到那里没有任何自由度,并且您的平方和也为 0。如果您认为合适,您可以尝试在没有交互的情况下拟合模型,但您没有足够的数据来拟合具有交互的模型。

于 2011-12-18T06:52:17.663 回答