Різниця повідомлених p-значень між lm та aov в R


12

Чим пояснюються відмінності р-значень у наступних aovта lmвикликах? Чи різниця лише через різні типи обчислень сум квадратів?

set.seed(10)
data=rnorm(12)
f1=rep(c(1,2),6)
f2=c(rep(1,6),rep(2,6))
summary(aov(data~f1*f2))
summary(lm(data~f1*f2))$coeff

Відповіді:


13

summary(aov)використовує так звані типи I (послідовних) сум квадратів. summary(lm)використовує так звані суми квадратів типу III, які не є послідовними. Див відповіді Гун ігровий для деталей.


Зверніть увагу, що вам потрібно зателефонувати lm(data ~ factor(f1) * factor(2))( aov()автоматично перетворює RHS формули у фактори). Потім відзначте знаменник загальної -статистики в лінійній регресії (див. Цю відповідь для подальших пояснень):t

t=ψ^ψ0σ^c(XX)1c

β c Fc(XX)1c відрізняється для кожного тестованого коефіцієнта, оскільки вектор змінюється. На відміну від цього, знаменником тесту ANOVA завжди є MSE.βcF


1
Я думаю, що перше речення цієї відповіді неправильне. Різниця , як видається, саме з - за різних типів суми квадратів , а саме: тип I від типу II / III. Тип I є послідовним, про що lmповідомляють, тоді як тип II / III - ні. Це пояснюється досить докладно у відповіді @ gung, до якої ви посилаєтесь.
амеба каже, що повернеться до Моніки

@amoeba Що ви пропонуєте виправити відповідь?
каракал

Я відредагував перший абзац, побачив, чи ви добре з редагуванням, і сміливо міняйте його, як вам подобається.
амеба каже, що відбудеться Моніка

2
set.seed(10)
data=rnorm(12)
f1=rep(c(1,2),6)
f2=c(rep(1,6),rep(2,6))
summary(aov(data~f1*f2))
            Df Sum Sq Mean Sq F value Pr(>F)
f1           1  0.535  0.5347   0.597  0.462
f2           1  0.002  0.0018   0.002  0.966
f1:f2        1  0.121  0.1208   0.135  0.723
Residuals    8  7.169  0.8962               
summary(lm(data~f1*f2))$coeff
               Estimate Std. Error    t value  Pr(>|t|)
(Intercept)  0.05222024   2.732756  0.0191090 0.9852221
f1          -0.17992329   1.728346 -0.1041014 0.9196514
f2          -0.62637109   1.728346 -0.3624106 0.7264325
f1:f2        0.40139439   1.093102  0.3672066 0.7229887

Це два різних коди. від моделі Lm потрібні коефіцієнти. тоді як з моделі aov ви просто табулюєте джерела варіації. Спробуйте код

anova(lm(data~f1*f2))
Analysis of Variance Table

Response: data
          Df Sum Sq Mean Sq F value Pr(>F)
f1         1 0.5347 0.53468  0.5966 0.4621
f2         1 0.0018 0.00177  0.0020 0.9657
f1:f2      1 0.1208 0.12084  0.1348 0.7230
Residuals  8 7.1692 0.89615   

Це дає підрахунок варіацій джерел, що призводить до однакових результатів.


2
Здається, це не дає відповіді на запитання, яке задає, чому p-значення для f1та f2відрізняються у двох підсумках верхньої панелі. Схоже , ви тільки показує , що summary(aov(...))і anova(lm(...))в Rмають однакову продуктивність.
whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.