Używam plm()
do oszacowania modeli formy z efektami stałymi
y ~ x + time + time:fixed_trait
gdzie fixed_trait
jest zmienną, która różni się u poszczególnych osób, ale jest stała w obrębie poszczególnych osób.
Punkt interakcji time
ze fixed_trait
jest umożliwienie efekt fixed_trait
zmieniać w czasie. (Pracuję tutaj z ostatniej broszury Paula Allisona na temat ustalonych efektów. Cytowanie dołączone).
plm()
nie ma problemów z oszacowaniem współczynników i standardowych błędów dla takich modeli. Ale summary.plm()
nie można obliczyć R ^ 2 dla tych modeli. To jest problem, który chciałbym naprawić.
Oto minimalny przykład:
library(plm)
tmp <- data.frame(ID=rep(1:3, 2), year=rep(0:1, each=3),
y=rnorm(6), const=rep(1:3, 2))
fe1 <- plm(y ~ year, index=c('ID', 'year'), data=tmp)
fe2 <- plm(y ~ year + year:const, index=c('ID', 'year'), data=tmp)
summary(fe1) # works fine
summary(fe2) # Error in crossprod(t(X), beta) : non-conformable arguments
Zagłębianie się plm:::summary.plm
sprawia, że problem jest jaśniejszy. Aby obliczyć R ^ 2, plm
próbuje to zrobić:
beta <- coef(fe2)
X <- model.matrix(fe2)
crossprod(t(X), beta)
To nie działa, ponieważ beta
zawiera tylko szacunki dla year1
i year0:const
, a X
jednocześnie zawiera kolumnę dla year1:const
. Innymi słowy, X
zawiera kolumny dla obu year0:const
i year1:const
, i niemożliwe jest oszacowanie obu tych współczynników.
Obejściem tego problemu jest utworzenie terminu interakcji „ręcznie” przed wprowadzeniem go do formuły:
tmp$yearXconst <- tmp$year*tmp$const
fe3 <- plm(y ~ year + yearXconst, index=c('ID', 'year'), data=tmp)
summary(fe3) # works fine
Ale to jest kłopotliwe. Krótko mówiąc, czy jest coś, co mogę zrobić, aby summary.plm
pracować z takimi modelami?
===
Allison, Paul D. 2009. Modele regresji z efektami stałymi. Los Angeles, Kalifornia: Sage. Zobacz zwłaszcza strony 19–21.
plm
wersji 1.6-4, nie jest to już problemem, ponieważ alised współczynniki są po prostu pomijane.Odpowiedzi:
Spróbuj użyć
zamiast. Działa nawet, jeśli nadmiarowo włączasz efekty
*
interakcji w czasie (ponieważ czas jest usuwany w celu wyeliminowania efektu):źródło
*
należy to zastosować zamiast:
, czy istnieje sposób na stłumienie wyników współczynników braku interakcji?