Як отримати таблицю ANOVA з надійними стандартними помилками?


10

Я запускаю об'єднану регресію OLS, використовуючи пакет PLM в Р. Хоча, моє запитання стосується основної статистики, тому спершу я спробую опублікувати її;)

Оскільки мої результати регресії дають гетероскедастичні залишки, я б спробував використати стійкі стандартні помилки гетерокедастичності. В результаті coeftest(mod, vcov.=vcovHC(mod, type="HC0"))я отримую таблицю, що містить оцінки, стандартні помилки, t-значення та p-значення для кожної незалежної змінної, які в основному є моїми "надійними" результатами регресії.

Для обговорення важливості різних змінних я хотів би побудувати частку дисперсії, пояснену кожною незалежною змінною, тому мені потрібна відповідна сума квадратів. Однак, використовуючи функцію aov(), я не знаю, як сказати R використовувати надійні стандартні помилки.

Тепер моє запитання таке: як мені отримати таблицю / суму квадратів ANOVA, що стосується надійних стандартних помилок? Чи можна обчислити його на основі таблиці ANOVA з регресії з нормальними стандартними помилками?

Редагувати:

Іншими словами, ігнорування моїх R-проблем:

Якщо R не впливає за допомогою надійних стандартних помилок, чи не зміниться також відповідний внесок у пояснену дисперсію різними пояснювальними змінними?2

Редагувати:

В R, чи aov(mod)дійсно дає правильну таблицю ANOVA для панельної моделі (PLM)?

Відповіді:


12

ANOVA в лінійних регресійних моделях еквівалентний тесту Вальда (і тесту відношення ймовірності) відповідних вкладених моделей. Отже, коли ви хочете провести відповідний тест, використовуючи стандартні помилки, відповідні гетерокедастичності (HC), цього неможливо отримати при розкладанні сум квадратів, але ви можете провести тест Wald, використовуючи оцінку коефіцієнта HC. Ця ідея використовується в обох Anova()і linearHypothesis()від carупаковки і coeftest()і waldtest()з lmtestпакета. Останні три також можна використовувати з plmпредметами.

Простий (хоч і не дуже цікавий / змістовний) приклад - наступний. Ми використовуємо стандартну модель на ?plmсторінці керівництва і хочемо провести тест Wald на значення обох 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

А потім ми проводимо тест Wald для обох 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 моделі в альтернативному варіанті, тобто не обмежена модель.


1
Якщо я правильно це розумію, тест Wald показує, чи є включення певних змінних значним чи ні. Але чи є міра, наскільки вони насправді вдосконалюють модель, як, наприклад, сума квадратів?
Акі

Як я можу реалізувати стандартні помилки HAC? Я спробував coeftest (mod, vcov = vcovHAC), але отримав повідомлення про помилку, в якому сказано: "не застосовується метод для 'estfun', застосований до об'єкта класу" c ('plm', 'panelmodel') ". Схоже, мені потрібно обчислити ваги або спочатку функцію оцінювання. Який метод ви б порекомендували?
Aki

Хоча plmпакет має методи для vcovHC()загального з sandwichпакету, він не забезпечує методів для vcovHAC(). Натомість plmпоставляється із власними спеціалізованими функціями для обчислення коваріаційних матриць у панельних моделях, які також можуть включати послідовну кореляцію. Дивіться vcovNW()або vcovSCC()в упаковці plm.
Ахім Цейлей

Дякую! Наскільки я розумію, обидві функції стосуються автокореляційної стійкої SE. Чи є якась функція, яка може бути використана як для гетероцедастичності, так і для стійкої до автокореляції SE?
Акі

Всі три функції ( vcovHAC, vcovNW, vcovSCC) є _H_eteroskedasticity і _A_utocorrelation _C_onsistent ... ось що HAC варто.
Ахім Зейлейз

2

Це можна зробити за допомогою Anovaфункції в carпакеті. Дивіться цю відмінну відповідь для більш детальної інформації та огляд інших методик боротьби з гетероскледастичністю в ANOVA.


Дякую. Проблема полягає в тому, що Anova (), здається, не працює з моделями типу plm (panelmodel).
Акі

@Aki, якщо я не помиляюся, об'єднаний OLS еквівалентний звичайному OLS, виходячи з того, що написано у віньєтці: cran.r-project.org/web/packages/plm/vignettes/plm.pdf
shadowtalker

@Aki, однак, це здається, що вас може зацікавити багатша модель ANOVA. Тут є кілька прикладів R: stats.stackexchange.com/questions/3874/…
shadowtalker
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.