次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ページを参照してください。
plm
alised係数は単純にドロップされるようバージョン1.6から4、これはもはや問題ではありません。