ANOVA в моделях линейной регрессии эквивалентен критерию Вальда (и критерию отношения правдоподобия) соответствующих вложенных моделей. Поэтому, если вы хотите провести соответствующий тест с использованием стандартных ошибок гетероскедастичности (HC), его нельзя получить из разложения сумм квадратов, но вы можете выполнить тест Вальда, используя ковариационную оценку HC. Эта идея используется в обоих Anova()
и linearHypothesis()
от car
упаковки и coeftest()
и waldtest()
из lmtest
пакета. Последние три также могут быть использованы с plm
объектами.
Простой (хотя и не очень интересный / значимый) пример заключается в следующем. Мы используем стандартную модель со ?plm
страницы руководства и хотим провести тест Вальда на предмет значимости и того, log(pcap)
и другого unemp
. Нам нужны эти пакеты:
library("plm")
library("sandwich")
library("car")
library("lmtest")
Модель (под альтернативой):
data("Produc", package = "plm")
mod <- plm(log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp,
data = Produc, index = c("state", "year"))
Во-первых, давайте посмотрим на маргинальные тесты Вальда со стандартными ошибками HC для всех отдельных коэффициентов:
coeftest(mod, vcov = vcovHC)
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
log(pc) 0.2920069 0.0617425 4.7294 2.681e-06 ***
log(emp) 0.7681595 0.0816652 9.4062 < 2.2e-16 ***
log(pcap) -0.0261497 0.0603262 -0.4335 0.66480
unemp -0.0052977 0.0024958 -2.1226 0.03411 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
И затем мы проводим тест Вальда для обоих log(pcap)
и unemp
:
linearHypothesis(mod, c("log(pcap)", "unemp"), vcov = vcovHC)
Linear hypothesis test
Hypothesis:
log(pcap) = 0
unemp = 0
Model 1: restricted model
Model 2: log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp
Note: Coefficient covariance matrix supplied.
Res.Df Df Chisq Pr(>Chisq)
1 766
2 764 2 7.2934 0.02608 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
В качестве альтернативы, мы можем также подогнать модель под нулевой гипотезой ( mod0
скажем) без двух коэффициентов и затем вызвать waldtest()
:
mod0 <- plm(log(gsp) ~ log(pc) + log(emp),
data = Produc, index = c("state", "year"))
waldtest(mod0, mod, vcov = vcovHC)
Wald test
Model 1: log(gsp) ~ log(pc) + log(emp)
Model 2: log(gsp) ~ log(pc) + log(emp) + log(pcap) + unemp
Res.Df Df Chisq Pr(>Chisq)
1 766
2 764 2 7.2934 0.02608 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Тестовая статистика и p-значение вычисляются linearHypothesis()
и waldtest()
являются абсолютно одинаковыми. Просто интерфейс и форматирование вывода несколько отличаются. В некоторых случаях один или другой является более простым или более интуитивным.
Примечание. Если вы предоставляете оценку ковариационной матрицы (т. Е. Матрицы vocvHC(mod)
) вместо оценки ковариационной матрицы (т. Е. Функции vocvHC
), убедитесь, что вы предоставили оценку ковариационной матрицы HC модели в соответствии с альтернативой, т. Е. Неограниченная модель.