首页 文章

面板回归与非个体特定的固定效应

提问于
浏览
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)会给我每个 year - week 交互的固定效果,这比我想要的更精细是 .

是否有任何方法可以用 plm 估算这个,还是有其他包来做这种事情?我知道我可以贬低上述组内的数据,通过 lm 估算然后进行df校正,但我宁愿避免这种情况 .

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)
    

相关问题