“傻瓜”学计量——双重差分DID 4(结束)

本文详细介绍了使用Stata进行传统、多时点和多期双重差分法的步骤,包括OLS和DIFF指令,以及CSDID的运用。重点讲解了如何处理行为发生时间不同的情景,以及如何通过交互项和控制变量来分析处理行为效应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提纲:

1.传统双重差分法:普通最小二乘法 regress指令+ diff指令

2.多时点双重差分法(处理行为发生时间相同)指令

3.多期双重差分法(处理行为发生时间不同)指令 (CSDID)

1.OLS和DIFF的具体步骤

步骤软件操作含义
1excelcontrol+A全选
2excelcontrol+C复制
3stataedit将会打开一个类似于excel表格的可编辑的表格
4statacontrol+V选中表格总第一个格子,粘贴数据
5stata

同意则选择”variable names“,中文的话选择第一个“变量名”。

将会出现一个小窗口如下,问是否要将第一行作为变量名。
6stata5后,将会出现一个简短的变量描述
7statagenerate interaction_term=time*treatmentgroup

生成一个名叫“interaction_term”的变量,在上述例子中我们需要的“交乘项”。

且该“交乘项”=time变量✖treatmentgroup变量

8stata(本个指令与下一个指令效果相同):reg weight i.time##i.treatmentgrouptime##treatmentgroup:将这两个变量包含在回归中,且,将这两个变量的交乘项也包含在回归中。即,新增交乘项
8stataregress weight time treatmentgroup interaction_term 双重差分指令与最小二乘回归分析指令相同“reg";后面依次是 :因变量、(等式右侧的内容,分别是:)时间变量、分组变量、交乘项
9stata解释处理行为效应,关注交乘项系数,也就是红框中的内容,如下所示👇:
交乘项系数  =2.90
t  =2.21 >1.96
p  =0.028 <0.05

结论:观看这个视频,在5%水平下显著地提高了 观众体重

上图👆是最小二乘法回归

下图👇是Diff法

步骤软件操作含义
9statadiff weight,treatment(treatmentgroup) p(time) cov(control_1 control_2 control_3)

diff指令

关注最后一行Diff-in-Diff的内容;cov后面可以加入控制变量

1.1. 为什么要用双重差分法?

有兴趣可以看看我的互联网老师欧~~讲的太好了,严谨的推理,强推~ 

双重差分法(八) 双重差分法的Stata操作(上集)/传统双重差分法、多时点双重差分法、多期双重差分法_哔哩哔哩_bilibili

2. 多时点双重差分法

注意:处理行为发生时间不同,关注的是处理行为发生时点前后若干时间点

reg weight i.month##i.treatmentgroup control_1 control_2 control_3

3. 多期双重差分法(处理行为发生时间不同)

3.1. 基本多期双重差分法stata指令

因为不同组处理时间不同,因此无法用同一个时间变量time代表处理前后,因此采用”处理时间变量“treatment time”代表处理行为发生的时间点。

1ssc install csdid,all replace   更新替换已经存在的相关指令。若第一次安装,可以不加“all replace"。
(1)ssc install drdid,all replace   安装drdid
2csdid weight control_1 control_2 control_3,ivar(uid) time(month) gvar( treatment_time)

ivar():面板数据中个体识别变量,如果是重复截面数据,可以不加此选项。

在本例子中,uid是每一个看过小周视频人的id,若是企业的,则可能是企业的股票代码。

面板数据:针对同一个对象在不同时间点上的数。

vs

重复截面数据:在不同时间点上选择相同数量的对象数据,但是每个时间点上所收集的具体个体是不相同的。

3.2. 计算处理行为效果

3.2.1. 整体处理行为效果

计算所有小模块的加权平均数

先算出日历时期的处理行为效果,然后再计算整体处理行为效果Caverageestat simple
按照事件时期计算处理行为效果,然后再通过事件时期来计算整体处理行为效果post_average、pre_average
先算出每个组的平均处理行为效果,然后再通过组平均处理行为效果计算整体处理行为效果Gaverage
不同时期的处理行为效果日历时期estat calendar
事件时期(按照每个模块所对应的处理行为发生后的期数)estat event
不同组别的处理行为效果estat group

3.2.2. csdid指令有三种估计小模块处理行为效果的方法

方法指令
Double Robustcsdid默认
Outcome Regression在最后加上method(reg)
Inverse Probability Weighting在最后加上method(ipw)

3.2.3. csdid对照组选择

从未处理过的个体csdid默认
尚未处理过的个体在最后加上notyet

默认

(if数据中没有从未处理个体,或者我们的数据中所有个体或早或晚都最终接受了处理行为)


资料来源:up主“小周同学慢慢学”。讲的超好!!!强推!!

### 多时点双重差分(DID) 的平行趋势检验及其在 Stata 中的实现 #### 一、理解平行趋势假设 双重差分法的核心在于**平行趋势假设**(Parallel Trends Assumption),即处理组和对照组在接受干预之前应具有相似的时间变化趋势。为了验证这一假设,通常会进行“平行趋势检验”。 #### 二、如何利用Stata进行平行趋势检验? 1. **数据准备** - 确保您的面板数据包含时间变量 (`year`) 和个体标识符(`id`), 并且有政策实施前后的观测值。 - 标记出是否属于处理组(如 `treated=1`, 对照组则为0) - 创建一个虚拟变量表示每个时期的交互项(年份×处理状态) 2. **回归分析** ```stata * 设定panel data格式 xtset id year * 构建基础模型并加入期前期后期虚拟变量及交乘项 gen post = year >= 政策开始年份 // 是否处于政策发生之后的一段时间内 foreach t of numlist -T(-1)(1)T{ // T为你想要考察的趋势窗口长度 gen pre`t'= treated*(year == policy_year + `t') } reg y i.year##c.treated , vce(cluster id) ``` 这里我们通过逐步引入早于事件发生的年度与处理状态之间的相互作用项来观察系数的变化情况。 3. **图形展示** 除了基于统计显著性的判断外,还可以绘制折线图直观地比较两组随时间发展的走势: ```stata twoway (line outcome time if group==0, sort lpattern(dash)) /// (line outcome time if group==1, sort), legend(order(1 "Control" 2 "Treatment")) ``` 该命令将分别画出控制组与实验组的结果指标随着时间推移的情况,并用虚实线加以区分。 4. **结果解释** 如果所有预先时间段内的估计效应均无明显差异,则表明满足了平行趋势的要求;反之若某些特定时期存在偏离,则需进一步探讨原因并对模型设定做出调整。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值