Разница в сообщаемых значениях p между lm и aov в R


12

Чем объясняются различия в p-значениях в следующих 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 -test всегда 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
Похоже, это не отвечает на вопрос, который спрашивает, почему значения р f1и f2отличаются в двух сводках вашей верхней панели. Похоже, вы только показываете, summary(aov(...))и anova(lm(...))у Rвас есть аналогичные результаты.
whuber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.