在R中自动构建年份-国家交互固定效应模型的方法
在R中实现年份-国家交互固定效应回归
方法1:基础lm()函数
如果数据里的Year和Country是数值型变量,直接在公式里转成因子并使用:表示交互项,就能自动生成所有年份-国家组合的虚拟变量,完全不用手动创建:
# 假设你的数据框名为df lm(y ~ x + z + factor(Year):factor(Country), data = df)
要是Year和Country已经是因子类型,简化成下面的写法就行:
lm(y ~ x + z + Year:Country, data = df)
如果需要同时保留年份、国家的主效应加上交互效应,把:换成*即可:
lm(y ~ x + z + Year*Country, data = df) # 等价于 y ~ x + z + Year + Country + Year:Country
方法2:用fixest包(推荐大面板数据)
面对26个国家+8个年份的面板数据,lm()效率会偏低,专门处理固定效应的fixest包更合适——它不仅计算更快,语法也更简洁:用|分隔核心自变量和固定效应部分,直接指定Year:Country作为交互固定效应。
先安装并加载包:
install.packages("fixest") library(fixest)
然后运行回归:
feols(y ~ x + z | Year:Country, data = df)
这个命令会自动处理所有年份-国家的交互固定效应,不用手动生成任何虚拟变量。还能一键添加聚类标准误,比如按国家聚类:
feols(y ~ x + z | Year:Country, data = df, vcov = ~Country)
内容的提问来源于stack exchange,提问作者Andrea Brama
相关产品推荐
相关产品推荐

