plm()Formun sabit efekt modellerini tahmin etmek için kullanıyorum
y ~ x + time + time:fixed_trait
burada fixed_traitbireyler arasında değişen ancak bireyler içinde sabit olan bir değişkendir.
Etkileşim noktası timeile fixed_traitetkisini imkan vermek için fixed_traitzaman içinde değişir. (Burada Paul Allison'ın sabit etkilerle ilgili son kitapçığında çalışıyorum. Alıntı eklenmiştir.)
plm()bu tür modeller için katsayıları ve standart hataları tahmin etmekte sorun yaşamaz. Ancak summary.plm()bu modeller için R ^ 2 hesaplanamıyor. Düzeltmek istediğim sorun bu.
İşte minimal bir örnek:
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
İncelemek plm:::summary.plmsorunu daha net hale getirir. R ^ 2 plmdeğerini hesaplamak için şunu yapmaya çalışır:
beta <- coef(fe2)
X <- model.matrix(fe2)
crossprod(t(X), beta)
Bunun nedeni çalışmaz betasadece tahminler içerir year1ve year0:constsüre, Xayrıca için bir sütun içeriyor year1:const. Başka bir deyişle, Xher ikisi için de sütunlar içerir year0:constve year1:constbu katsayıların her ikisini de tahmin etmek imkansızdır.
Çözüm, formüle girmeden önce "el ile" etkileşim terimini oluşturmaktır:
tmp$yearXconst <- tmp$year*tmp$const
fe3 <- plm(y ~ year + yearXconst, index=c('ID', 'year'), data=tmp)
summary(fe3) # works fine
Ama bu hantal. Kısacası, bu summary.plmmodellerle çalışmak için yapabileceğim bir şey var mı?
===
Allison, Paul D. 2009. Sabit Etkiler Regresyon Modelleri. Los Angeles, CA: Adaçayı. Bkz. Özellikle sayfa 19-21.
plmleştirilmiş katsayıları sadece bırakılan olarak sürümü 1,6-4, bu artık bir sorun değildir.