2

次のように、さまざまな国ごとに、さまざまな製品の販売による収益を毎週観察しています。

df <- data.frame(year=rep(c(2002,2003), each=16),
             week=rep(1:4,4),
             product=rep(c('A','B'), each=8, times=2),
             country=rep(c('usa','germany'), each=4, times=4),
             revenue=abs(rnorm(32)))

つまり、収益の観察は、次の組み合わせに対してのみ一意であることを意味しますyear- week- country-product

countryyearと の交互作用の固定効果を含むモデルを推定したいとproduct思いますが、これを行う方法がわかりません。

  • 私のデータセットは上記の例よりもかなり大きいため、メモリ不足のために経由での推定はsummary(lm(revenue~factor(paste(country,year)) + factor(product) + ..., data=df))失敗します。つまり、1000 の固定効果のオーダーで何かを推定する必要があります。
  • 私が理解している限り、パネルはplmパッケージを使用してより適切に推定されますが、私のケースは、観察がそれぞれ1つの時間と1つの断面次元でのみ異なり、固定効果が推定されるパネルの標準フレームワーク内にうまく収まるようには見えませんそれぞれのために。yearとから時間インデックスを生成することはできますweekが、(a) 2 つの断面次元が残り、(b) それぞれの相互作用に固定効果が得yearられweekます。

これを推定する方法はありますか、plmまたはこの種のことを行う他のパッケージはありますか? 上記のグループ内のデータを侮辱し、推定してから自由度lm補正を行うことができることはわかっていますが、これは避けたいと思います。

4

1 に答える 1

1

まず、国、年、製品の一意の組み合わせを識別する変数「fe」を作成します。

library(data.table)
# convert data.frame to data.table
setDT(df)
# create a new group variable
df[, fe := .GRP, by = list(country, year, product)]
head(df)
   year week product country    revenue fe
1: 2002    1       A     usa 0.84131750  1
2: 2002    2       A     usa 0.07530538  1
3: 2002    3       A     usa 0.56183346  1
4: 2002    4       A     usa 0.80720792  1
5: 2002    1       A germany 1.25329883  2
6: 2002    2       A germany 0.44860296  2

plmまたはを使用しますfelmfelm複数の固定効果とインタラクティブな固定効果でも動作するので気に入っています

library(lfe)
felm(revenue ~ week | fe, df)
于 2014-10-21T17:52:12.373 に答える