次plm()の形式の固定効果モデルを推定するために使用しています
y ~ x + time + time:fixed_trait
where fixed_traitは、個人間で異なる変数ですが、個人内では一定です。
相互作用の点timeでは、fixed_trait作用可能にすることであるfixed_trait時間にわたって変化するが。(私はここで固定効果に関するポールアリソンの最近の小冊子から作業をしています。引用を追加しました。)
plm()そのようなモデルの係数と標準誤差の推定に問題はありません。しかしsummary.plm()、これらのモデルのR ^ 2を計算することはできません。これは私が修正したい問題です。
最小限の例を次に示します。
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
深く掘り下げるplm:::summary.plmと、問題がより明確になります。R ^ 2を計算plmするには、次のことを試みます。
beta <- coef(fe2)
X <- model.matrix(fe2)
crossprod(t(X), beta)
これは動作しませんbetaのみの推定値を含んyear1とyear0:constしながら、Xまたの列を含んでいますyear1:const。換言すれば、X両方の列を含み、year0:constそしてyear1:const、それはこれらの係数の両方を推定することは不可能です。
回避策は、式に入力する前に「手動」で相互作用用語を作成することです。
tmp$yearXconst <- tmp$year*tmp$const
fe3 <- plm(y ~ year + yearXconst, index=c('ID', 'year'), data=tmp)
summary(fe3) # works fine
しかし、これは面倒です。これ以外に、そのsummary.plmようなモデルで作業するためにできることはありますか?
===
アリソン、ポールD.2009。固定効果回帰モデル。カリフォルニア州ロサンゼルス:セージ。特に19〜21ページを参照してください。
plmalised係数は単純にドロップされるようバージョン1.6から4、これはもはや問題ではありません。