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但我的案例似乎并不完全适合面板的标准框架,其中观察仅在一次和一个横截面维度上有所不同,并且估计了固定效应对于每个。我可以从中生成一个时间索引yearweek但是(a)仍然给我留下两个横截面维度,并且(b)会给我每个交互的固定效果yearweek这比我想要的要好得多。

是否有任何方法可以估计这一点,plm或者是否有其他软件包可以做这种事情?我知道我可以贬低上述组中的数据,通过估计lm然后进行 df 校正,但我宁愿避免这种情况。

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

现在使用plmfelm。我喜欢felm,因为它也适用于多种固定效果和交互式固定效果

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