Мне было интересно, почему 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