我正在尝试使用plm包在R中使用固定效果来估计模型。我的数据如下所示,它是公司,城市,年份,季度级别。我按照年度和季度的公司和城市水平观察销售额和收入。我的回归是收入〜销售额。这是对收入的销售,但希望控制公司和城市特定的不可观察的。我的实际数据集中有1000多家公司。
fid = c(1,1,1,1,
2,2,2,2,
3,3,3,3,3,3,3,3,
4,4,4,4,5,5,5,5,
5,5,5,5)
cityid = c(101,101,101,101,
102,102,102,102,102,102,102,102,103,103,103,103,
103,103,103,103,
104,104,104,104,
104,104,104,104)
year = c(2000, 2000, 2000, 2000,2000,2000, 2000,2000,2001,2001,2001,2001,2002,2002,2002,2002,
2001,2001,2001,2001,2001,2001,2001,2001,2002,2002,2002,2002)
qtr = c(1,2,3,4,1,2,3,4,1,2,3,
4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4)
df = data.frame(fid, cityid,year,qtr,sales = sample(1:4,7, replace=T),income=30:57)
我看到plm函数接受个人时间指定的面板。也就是说,在不同的时间间隔内观察每个人。现在我怎么能用plm包来运行: 1.)坚定的固定效应 2.)坚定和城市固定的影响 3.)坚定,城市,季度固定效应。
你能分辨出来吗?我对时间成分感到困惑,并想知道我是否也可以使用公司和城市固定效果?在运行公司和城市固定效应时,我的小组将使每个公司城市在本季度重复4次,而每个城市可能有多个公司。对于3.)我可以使用plm命令组合公司,城市,但明确控制公式中的季度(如因子(季度))?
只是希望更清楚地了解扩展plm以估算固定效果,而不仅仅是使用时间维度。我已经看过了小插曲,但还不完全清楚。所以任何信息都会很棒。
答案 0 :(得分:1)
我觉得你在这里有点困惑。 数据集中的分析单位是年度季度(我们称之为q_year,编码为例如2000_1,2000_2等)。所以你想要生成这样一个变量并用它来索引时间维度。
然后您可以指定如下:
model <- plm(income ~ sales + as.factor(q_year), data= df, index=c("fid", "q_year"),
model="within")
summary(model)
此模型为您提供时间固定效果(每季度)以及固定效果。请注意,在您的示例中,“城市”数据不会随时间变化。因此,它将被固定的固定效应消耗(城市位置是固定的公司特征!)。
(注意:您是否拥有多年来一些公司的数据?您的示例数据没有这个。您可能希望将您的示例数据缩小为四波设计,并将该季度作为时间维度,因为这数据结构有效地保持了每家公司的年份。)
答案 1 :(得分:0)
我建议使用 felm
代替 plm
。您可以在公式中的 |
后指定您想要的所有变量作为固定效应。
model <- felm(income ~ sales | cityid + fid + qtr)
您应该注意,当公司仅位于一个独特的城市时,不需要城市固定效应。原因是公司的固定效应已经使公司内所有不随时间变化的东西保持不变,即它们的地理位置。从数学上讲,固定效应转换从数据中减去公司层面的均值,得出的均值为零。如果您随后形成所有公司的城市级平均值,那么从数据中减去该平均值没有任何作用。