plm()
Formun sabit efekt modellerini tahmin etmek için kullanıyorum
y ~ x + time + time:fixed_trait
burada fixed_trait
bireyler arasında değişen ancak bireyler içinde sabit olan bir değişkendir.
Etkileşim noktası time
ile fixed_trait
etkisini imkan vermek için fixed_trait
zaman 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.plm
sorunu daha net hale getirir. R ^ 2 plm
değerini hesaplamak için şunu yapmaya çalışır:
beta <- coef(fe2)
X <- model.matrix(fe2)
crossprod(t(X), beta)
Bunun nedeni çalışmaz beta
sadece tahminler içerir year1
ve year0:const
süre, X
ayrıca için bir sütun içeriyor year1:const
. Başka bir deyişle, X
her ikisi için de sütunlar içerir year0:const
ve year1:const
bu 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.plm
modellerle ç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.
plm
leştirilmiş katsayıları sadece bırakılan olarak sürümü 1,6-4, bu artık bir sorun değildir.