Estoy usando plm()para estimar modelos de efectos fijos de la forma
y ~ x + time + time:fixed_trait
donde fixed_traites una variable que varía entre individuos pero es constante dentro de los individuos.
El punto de interactuar timecon fixed_traites permitir que el efecto fixed_traitvaríe a lo largo del tiempo. (Estoy trabajando aquí desde el reciente folleto de Paul Allison sobre efectos fijos. Cita adjunta).
plm()no tiene problemas para estimar coeficientes y errores estándar para tales modelos. Pero summary.plm()no puedo calcular R ^ 2 para estos modelos. Este es el problema que me gustaría solucionar.
Aquí hay un ejemplo mínimo:
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
Profundizar en plm:::summary.plmaclara el problema. Para calcular R ^ 2, plmintenta hacer esto:
beta <- coef(fe2)
X <- model.matrix(fe2)
crossprod(t(X), beta)
Esto no funciona porque betasolo incluye estimaciones para year1y year0:const, mientras que Xtambién incluye una columna para year1:const. En otras palabras, Xincluye columnas para ambos year0:consty year1:const, y es imposible estimar ambos coeficientes.
Una solución alternativa es crear el término de interacción "a mano" antes de ingresarlo en la fórmula:
tmp$yearXconst <- tmp$year*tmp$const
fe3 <- plm(y ~ year + yearXconst, index=c('ID', 'year'), data=tmp)
summary(fe3) # works fine
Pero esto es engorroso. A falta de esto, ¿hay algo que pueda hacer para summary.plmtrabajar con estos modelos?
===
Allison, Paul D. 2009. Modelos de regresión de efectos fijos. Los Ángeles, CA: Sage. Ver especialmente las páginas 19-21.

plmversión 1.6-4, esto ya no es un problema ya que los coeficientes aumentados simplemente se eliminan.Respuestas:
Intenta usar
en lugar. Incluso funciona si incluye efectos fijos de tiempo de forma redundante en la
*interacción (porque el tiempo se está solucionando):fuente
*debe usarse en lugar de:, ¿hay alguna forma de suprimir la salida de coeficientes de no interacción?