5

ダミー変数の数がRの最大ベクトル長を超えるモデル行列につながる場合、Rで固定効果回帰を行う簡単な方法はありますか?例えば、

> m <- lm(log(bid) ~ after + I(after*score) + id, data = data)
Error in model.matrix.default(mt, mf, contrasts) : 
cannot allocate vector of length 905986769

ここで、idは係数です(そして、上記の問題を引き起こしている変数です)。

私はすべてのデータを調べて平均を下げることができることを知っていますが、これは標準誤差を捨てます(はい、DF調整を使用してSEを「手動で」計算できますが、私が新しいエラーが発生しています)。私はplmパッケージを見てきましたが、それは私のデータの構造ではなく、時間コンポーネントを含む古典的なパネルデータ用にのみ設計されているようです。

4

2 に答える 2

8

Plmは、この種のデータに対して正常に機能します。時間コンポーネントは必要ありません。

> library(plm)
> data("Produc", package="plm")
> zz <- plm(log(gsp)~log(pcap)+log(pc)+log(emp)+unemp, data=Produc, index=c("state"))
> zz2 <- lm(log(gsp)~log(pcap)+log(pc)+log(emp)+unemp+factor(state), data=Produc)
> summary(zz)$coefficients[,1:3]
              Estimate   Std. Error    t-value
log(pcap) -0.026149654 0.0290015755 -0.9016632
log(pc)    0.292006925 0.0251196728 11.6246309
log(emp)   0.768159473 0.0300917394 25.5272539
unemp     -0.005297741 0.0009887257 -5.3581508
> summary(zz2)$coefficients[1:5,1:3]
                Estimate   Std. Error    t value
(Intercept)  2.201617056 0.1760038727 12.5089126
log(pcap)   -0.026149654 0.0290015755 -0.9016632
log(pc)      0.292006925 0.0251196728 11.6246309
log(emp)     0.768159473 0.0300917394 25.5272539
unemp       -0.005297741 0.0009887257 -5.3581508
于 2010-03-01T14:03:28.397 に答える
0

ここでは、fixst()パッケージが役立ちます。たとえば、次のような要因を効率的に評価できます。

library(fixest)
feols(log(bid) ~ after + I(after*score) | id, data = data)

大規模なデータセットの場合、これはplm()よりもはるかに高速です。私の知る限り、lfeパッケージはもうサポートされていませんか?ここで警告を参照してください:https ://cran.r-project.org/web/packages/lfe/index.html

于 2021-11-02T15:59:37.770 に答える