R: В anova.lm(g): ANOVA F-тестовете за по същество перфектно пасване са ненадеждни

Съчетавам онлайн ръководства със стар текст, за да науча 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

данни за топене.рамка:

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

проверете разтопени данни.рамка

> 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: Текстовите примери са твърде „перфектни“, тъй като се опитват да покажат ясен пример


person Travis    schedule 18.12.2011    source източник
comment
Този въпрос вероятно би бил по-подходящ на stats.stackexchange.com   -  person Dason    schedule 18.12.2011
comment
Поставете модела без взаимодействие: anova(lm(value ~ variable + speed, mcar.noise))   -  person MYaseen208    schedule 18.12.2011


Отговори (1)


Опитвате се да напаснете модел, който дава отделна средна стойност за всяка комбинация от променлива*скорост. С данните, които имате, това означава, че изобщо нямате репликация. Би било като да се опитвате да сравните две групи, когато имате само една стойност от всяка група.

Ако погледнете реда за „Остатъци“ във вашата anova таблица, трябва да забележите, че нямате никакви степени на свобода там и вашите суми на квадрати също са 0. Можете да опитате да напаснете модел без взаимодействие, ако смятате, че е подходящо, но нямате достатъчно данни, за да напаснете модел с взаимодействие.

person Dason    schedule 18.12.2011
comment
А, значи грешката ми е, че използвам код за anova с репликация. Във всяка посока трябва да търся двупосочна анова без репликация. - person Travis; 18.12.2011
comment
Както казах, бихте могли да поставите модел без взаимодействие, ако смятате, че ефектите на променливата и скоростта са допълнителни. Но не съм сигурен дали това би било добро предположение в този случай. - person Dason; 18.12.2011
comment
Просто следвам пример от текст, така че не се притеснявайте много от предположенията сега, просто трябва да съпоставя това, което е в книгата и да се опитате да разберете какво означава всяка част, цялото забавление, ако приемем, идва в следващата глава... да! така или иначе, вместо скорост * променлива, използвайте скорост + променлива? - person Travis; 18.12.2011
comment
Схванах го! Благодаря. Вероятно трябва да опитате това, което питам, преди да го попитам. Благодаря отново. - person Travis; 18.12.2011
comment
Предполагам, че текстът просто е искал да се поберете в двупосочна анова без взаимодействие. Вие сте прав, че бихте използвали скорост+променлива вместо скорост*променлива. - person Dason; 18.12.2011
comment
Тогава в следващия раздел на тази глава ще разгледам двупосочната анова с репликация. Когато го пробвам в R, трябва да използвам скорост*променлива (или каквито и да са примерните променливи...). Вижте цялото обучение~! хаха Благодаря отново за помощта. - person Travis; 18.12.2011
comment
Трябва да погледнете моя отговор, че създадох за вас друг подобен въпрос. Обърнах се към това как да преминете към нефакторно кодиране, така че да избегнете този проблем с насищането на вашия модел с параметри. - person IRTFM; 18.12.2011