运行 固定效应 plm R - 城市、年份、季度数据
running fixed effects plm R - city, year, quarterly data
我正在尝试使用 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 命令合并公司、城市但在公式中明确控制四分之一(如 factor(quarter))吗?
只是想更清楚地了解扩展 plm 以估计固定效应,而不仅仅是使用时间维度。我已经看过小插图,但还不是很清楚。所以任何信息都会很棒。
我觉得你在这里有点困惑。
数据集中的分析单位是每年的季度(我们称之为 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)
此模型为您提供时间固定效应(年度季度)以及公司固定效应。请注意,在您的示例数据 'city' 中不会随时间变化。所以它会被公司固定效应所消耗(城市位置是一个固定的公司特征!)。
(注意:你有一些公司多年的数据吗?你的示例数据没有这个。你会想将你的示例数据压缩为四波设计并且只将四分之一作为时间维度,因为这个数据结构有效地保持了每家公司的年份不变。)
我建议使用 felm
作为 plm
的替代方法。您可以在公式中的 |
之后指定您想要的所有变量作为固定效应。
model <- felm(income ~ sales | cityid + fid + qtr)
您应该注意,当公司仅位于一个独特的城市时,不需要城市固定效应。原因是公司的固定效应已经使公司内不随时间变化的一切保持不变,即它们的地理位置。从数学上讲,固定效应变换从数据中减去公司层面的平均值,得到的平均值为零。如果您然后从所有公司中形成城市级别的平均值,那么从数据中减去该平均值不会做任何事情。
我正在尝试使用 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 命令合并公司、城市但在公式中明确控制四分之一(如 factor(quarter))吗?
只是想更清楚地了解扩展 plm 以估计固定效应,而不仅仅是使用时间维度。我已经看过小插图,但还不是很清楚。所以任何信息都会很棒。
我觉得你在这里有点困惑。 数据集中的分析单位是每年的季度(我们称之为 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)
此模型为您提供时间固定效应(年度季度)以及公司固定效应。请注意,在您的示例数据 'city' 中不会随时间变化。所以它会被公司固定效应所消耗(城市位置是一个固定的公司特征!)。
(注意:你有一些公司多年的数据吗?你的示例数据没有这个。你会想将你的示例数据压缩为四波设计并且只将四分之一作为时间维度,因为这个数据结构有效地保持了每家公司的年份不变。)
我建议使用 felm
作为 plm
的替代方法。您可以在公式中的 |
之后指定您想要的所有变量作为固定效应。
model <- felm(income ~ sales | cityid + fid + qtr)
您应该注意,当公司仅位于一个独特的城市时,不需要城市固定效应。原因是公司的固定效应已经使公司内不随时间变化的一切保持不变,即它们的地理位置。从数学上讲,固定效应变换从数据中减去公司层面的平均值,得到的平均值为零。如果您然后从所有公司中形成城市级别的平均值,那么从数据中减去该平均值不会做任何事情。