pdwtest из plm с неправильным значением p (и статистикой?) для панельных моделей и объединенных OLS (тест Дарбина Уотсона для автокорреляции)?

Мне было интересно, почему pdwtest() выводит очень разные p-значения по сравнению с тестами Дурбина Уотсона lmtest и car (dwtest() и dwt() соответственно). Пожалуйста, найдите документацию о различиях ниже. После этого я предоставляю код, взятый из исходников plm для pdwtest(), и пытаюсь решить проблему. Может кто-нибудь посмотреть на это? Тем не менее, значения p не совпадают, но очень близки. Я подозреваю, что это связано с числовой точностью? Кроме того, я не совсем уверен в p-значении для модели случайных эффектов, но это статистический вопрос, а не вопрос программирования (оставить перехват для теста?).

EDIT 2019-01-04: обобщенная статистика Дурбина-Уотсона Bhargava et al. (1982) и статистика LBI Baltagi/Wu теперь реализованы в последней версии (1.7-0) plm как pbnftest().

Я думаю, мы должны различать вещи, происходящие здесь:

1) p-значение: p-значение кажется отключенным, так как дополнительный перехват передается в lmtest::dwtest(). Я предполагаю, что это, в свою очередь, приводит к неправильному вычислению степеней свободы и, следовательно, к подозрительному p-значению.

См. упомянутые ниже документы и http://www.stata.com/manuals14/xtxtregar.pdf< /а>

Бхаргава, Франзини, Нарендранатан, Серийная корреляция и модель фиксированных эффектов, Обзор экономических исследований (1982), XLIX, стр. 533-549.

Baltagi, BH, и P.X.Wu. 1999. Неравномерно распределенные регрессии панельных данных с возмущениями AR(1). Эконометрическая теория 15, стр. 814–823.

Версии: R 3.1.3 plm_1.4-0 lmtest_0.9-34

require(plm)
require(lmtest)
require(car)

data("Grunfeld")

# Use lm() for pooled OLS and fixed effects
lm_pool <- lm(inv ~ value + capital, data = Grunfeld)
lm_fe   <- lm(inv ~ value + capital + factor(firm), data = Grunfeld)

# Use plm() for pooled OLS and fixed effects
plm_pool <- plm(inv ~ value + capital, data=Grunfeld, model = "pooling")
plm_fe   <- plm(inv ~ value + capital, data=Grunfeld, model = "within")
plm_re   <- plm(inv ~ value + capital, data=Grunfeld, model = "random")

# Are the estimated residuals for the pooled OLS and fixed effects model by plm() and lm() the same? => yes
all(abs(residuals(plm_pool) - residuals(lm_pool)) < 0.00000000001)
## [1] TRUE
all(abs(residuals(plm_fe)   - residuals(lm_fe))   < 0.00000000001)
## [1] TRUE

# Results match of lmtest's and car's durbin watson test match
lmtest::dwtest(lm_pool)
##  Durbin-Watson test
## 
## data:  lm_pool
## DW = 0.3582, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0

car::dwt(lm_pool)
##  lag Autocorrelation D-W Statistic p-value
##    1       0.8204959     0.3581853       0
##  Alternative hypothesis: rho != 0

lmtest::dwtest(lm_fe)
##  Durbin-Watson test
## 
## data:  lm_fe
## DW = 1.0789, p-value = 1.561e-13
## alternative hypothesis: true autocorrelation is greater than 0

car::dwt(lm_fe)
##  lag Autocorrelation D-W Statistic p-value
##    1       0.4583415      1.078912       0
##  Alternative hypothesis: rho != 0

# plm's dw statistic matches but p-value is very different (plm_pool) and slightly different (plm_fe)
pdwtest(plm_pool)
##  Durbin-Watson test for serial correlation in panel models
## 
## data:  inv ~ value + capital
## DW = 0.3582, p-value = 0.7619
## alternative hypothesis: serial correlation in idiosyncratic errors

pdwtest(plm_fe)
##  Durbin-Watson test for serial correlation in panel models
## 
## data:  inv ~ value + capital
## DW = 1.0789, p-value = 3.184e-11
## alternative hypothesis: serial correlation in idiosyncratic errors

person Helix123    schedule 08.08.2015    source источник


Ответы (1)


разработчик 'plm' здесь. Странные p-значения заслуживают изучения (обратите внимание, что pdwtest — это просто оболочка для dwtest из пакета lmtest), спасибо за сообщение.

Об эконометрике, стоящей за этим: Bharghava et al. test - это в основном то, что делает pdwtest(); тест Дурбина-Уотсона в целом является субоптимальной процедурой во многих отношениях, так что большинство современных учебников скорее предлагают Брейша-Годфри (см. pbgtest() в 'plm' для панельной версии). RE в порядке, потому что преобразованные остатки белые под H0. К FE следует относиться с осторожностью из-за последовательной корреляции, вызванной унижением, поэтому тесты DW и BG обычно неуместны, за исключением очень длинных панелей: см. мои комментарии в JStatSoft 27/2, 2008 г., стр.26. Лучшими альтернативами, особенно для широких панелей, являются тесты Вулдриджа: тест первой разности (pwfdtest() в «plm», также в Stata, см. статью Друккера) и тест, реализованный в «plm» как pwartest(), см. снова JStatSoft 27/. 2, 6.4.

person Giovanni Millo    schedule 11.08.2015
comment
Спасибо, что нашли время, пожалуйста, посмотрите мои правки к исходному сообщению. - person Helix123; 13.08.2015
comment
Ошибка исправлена ​​заменой auxformula ‹- demy ~ demX - 1 на любой случай, а не только на model=within. На самом деле матрица проектирования demX поставляется с перехватом, если это необходимо (объединенный, RE, FD) или без него (FE). Должен был быть нерелевантным (перехват опущен из-за коллинеарности), но якобы не имеет значения. Скоро будет на R-forge, но вы можете легко сделать временную функцию как pdwtest2 с этим модом. PS пожалуйста, прислушайтесь к моему предыдущему совету: pbgtest() обычно предпочтительнее pdwtest(), оба не подходят для FE, если только ваша панель не длинная: вместо этого вы предпочтете pwartest() или pwfdtest(). - person Giovanni Millo; 13.08.2015
comment
обобщенная статистика Дарбина-Уотсона Bhargava et al. (1982) и статистика LBI Baltagi/Wu теперь реализованы в последней разрабатываемой версии plm как pbnftest(). - person Helix123; 16.06.2018