2015-04-13 2 views
8

Mon trame de données ressemble à quelque chose comme suit:Poids avec le paquet plm

unique.groups<- letters[1:5] 
unique_timez<- 1:20 
groups<- rep(unique.groups, each=20) 
my.times<-rep(unique_timez, 5) 

play.data<- data.frame(groups, my.times, y= rnorm(100), x=rnorm(100), POP= 1:100) 

Je voudrais lancer la régression pondérée suivante:

plm(y~x + factor(my.times) , 
data=play.data, 
index=c('groups','my.times'), model='within', weights= POP) 

Mais je ne crois pas que le paquet plm permet poids. La réponse que je suis à la recherche du coefficient du modèle ci-dessous:

fit.regular<- lm(y~x + factor(my.times) + factor(my.groups), 
weights= POP, data= play.data) 
desired.answer<- coefficients(fit.regular) 

Cependant, je cherche une réponse avec le paquet plm car il est beaucoup plus rapide pour obtenir le coefficient de l'estimateur within avec plm avec plus jeux de données et de nombreux groupes.

+0

La version de développement de 'plm' comporte maintenant un argument' weights' pour 'plm()'. – Helix123

Répondre

1

Même si je ne connais pas de solution avec le paquet plm, la fonction felm correctement dans le poids des poignées emballage lfe dans le contexte des effets fixes (qui semble ce que vous avez besoin de la syntaxe de votre code par exemple). Il est particulièrement écrit en mettant l'accent sur la vitesse en présence de nombreuses observations et groupes. Le package lfe ne se concentre que sur les effets fixes, donc si vous avez besoin d'effets aléatoires, le package lme4 peut répondre à vos besoins en termes de be more suited.