2015-08-13 1 views
1

J'ai regardé comment plm (paquet R pour les modèles de panneaux) implémente le test de Breusch-Pagan pour les effets aléatoires et a remarqué qu'il ne tient pas compte des panneaux déséquilibrésMise en œuvre du test de Breusch-Pagan pour les effets aléatoires en PLM avec panneaux non équilibrés

plmtest() ne vous met pas en garde à ce sujet. Pour les panels non équilibrés, nous avons besoin d'une autre version du test de Breusch-Pagan pour les effets aléatoires, comme l'indique Baltagi/Li (1990): Test de multiplicateur de lagrange pour le modèle des composants d'erreur avec panneaux incomplets, Revues économétriques, 9: 1, 103 -107, DOI: 10.1080/07474939008800180. Comme ce document est un peu difficile à lire, vous pouvez aussi regarder comment le fait STATA: http://www.stata.com/manuals13/xtxtregpostestimation.pdf

EDIT Le test modifié permettant des panneaux asymétriques est maintenant dans le paquet sur CRAN (depuis la version 1.6-4) .

Répondre

0

Modifier: la version de plm CRAN 1.6-4 le à partir (Décembre 2016) comporte également les statistiques de test asymétriques dans plmtest().

Puisque ceci est résolu maintenant, je posterai une réponse ici. Le code est maintenant dans la version de développement de v1.15-16 plm sur r-forge: https://r-forge.r-project.org/projects/plm/ et https://r-forge.r-project.org/R/?group_id=406

Voici comment reproduire un exemple de la documentation de Stata:

# get data set from STATA's webpage 
# It is an unbalanced panel 
require(haven) # required to read STATA data file 
nlswork <- read_dta("http://www.stata-press.com/data/r14/nlswork.dta") 
nlswork$race <- factor(nlswork$race) # fix data 
nlswork$race2 <- factor(ifelse(nlswork$race == 2, 1, 0)) # need this variable for example 
pnlswork <- pdata.frame(nlswork, index=c("idcode", "year"), drop.index=F) 

# note STATA 14 uses by default a different method compared to plm's Swamy–Arora variance component estimator 
# This is why in comparison with web examples from STATA the random effects coefficients slightly differ 
plm_re_nlswork <- plm(ln_wage ~ grade + age + I(age^2) + ttl_exp + I(ttl_exp^2) + tenure + I(tenure^2) + race2 + not_smsa + south 
         , data = pnlswork, model = "random") 

# reassembles the FE estimation by STATA in Example 2 of http://www.stata.com/manuals13/xtxtreg.pdf 
plm_fe_nlswork <- plm(ln_wage ~ grade + age + I(age^2) + ttl_exp + I(ttl_exp^2) + tenure + I(tenure^2) + race2 + not_smsa + south 
         , data = pnlswork, model = "within") 

plm_pool_nlswork <- plm(ln_wage ~ grade + age + I(age^2) + ttl_exp + I(ttl_exp^2) + tenure + I(tenure^2) + race2 + not_smsa + south 
         , data = pnlswork, model = "pooling") 


# Run Breusch-Pagan test with modification for unbalanced panels of Baltahi/Li (1990) 
# Reassembles Exmaple 1 in http://www.stata.com/manuals13/xtxtregpostestimation.pdf 

plmtest(plm_pool_nlswork)  
## Lagrange Multiplier Test - individual effects - Breusch-Pagan Test for unbalanced Panels as in Baltagi/Li (1990) 
## data: ln_wage ~ grade + age + I(age^2) + ttl_exp + I(ttl_exp^2) + tenure + ... 
## BP_unbalanced = 14779.98, df = 1, p-value < 0.00000000000000022 
## alternative hypothesis: significant effects