You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言回归中调整分组变量的基准组?

调整DID回归中处理组与对照组的基准设定

问题原因

R 中因子类型变量默认按字母顺序确定基准组,你的treated变量里,NJ(首字母N)排在PA(首字母P)前面,所以回归时默认把NJ当作基准组,PA被识别为处理组,这和你的设定完全相反。

两种调整方法

方法1:重新指定因子的基准水平

直接修改treated变量的基准为PA,让回归以PA(对照组)为基准,NJ作为处理组:

cardkruger = read.csv('https://raw.githubusercontent.com/bandcar/Examples/main/cardkruger.csv')
# 将treated转为因子,并指定PA为基准水平
cardkruger$treated = relevel(factor(cardkruger$treated), ref = "PA")
reg = lm(fte ~ t*treated, cardkruger)
summary(reg)

调整后,回归输出会出现treatedNJ项,代表处理组(NJ)相对于对照组(PA)的事前差异,交互项t:treatedNJ就是DID的核心政策效应估计量。

方法2:手动编码二元处理变量

直接创建新的二元变量,让NJ=1(处理组)、PA=0(对照组),回归时0自动作为基准(PA):

cardkruger = read.csv('https://raw.githubusercontent.com/bandcar/Examples/main/cardkruger.csv')
# 手动生成处理变量:NJ=1,PA=0
cardkruger$treat = ifelse(cardkruger$treated == "NJ", 1, 0)
reg = lm(fte ~ t*treat, cardkruger)
summary(reg)

这种方式下,treat的系数代表处理组与对照组的事前差异,t:treat的系数就是政策对处理组(NJ)的净效应,完全匹配你的设定。

调整后结果说明

调整后的回归截距项代表对照组(PA)在政策实施前(t=0)的平均fte值,t的系数是对照组随时间的自然变化,处理组的时间效应为t系数加交互项系数,核心的DID估计量就是交互项的系数。

内容的提问来源于stack exchange,提问作者bandcar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:15:57