提纲:
1.传统双重差分法:普通最小二乘法 regress指令+ diff指令
2.多时点双重差分法(处理行为发生时间相同)指令
3.多期双重差分法(处理行为发生时间不同)指令 (CSDID)
1.OLS和DIFF的具体步骤
步骤 | 软件 | 操作 | 含义 | ||||
1 | excel | control+A | 全选 | ||||
2 | excel | control+C | 复制 | ||||
3 | stata | edit | 将会打开一个类似于excel表格的可编辑的表格 | ||||
4 | stata | control+V | 选中表格总第一个格子,粘贴数据 | ||||
5 | stata | 同意则选择”variable names“,中文的话选择第一个“变量名”。 | 将会出现一个小窗口如下,问是否要将第一行作为变量名。![]() | ||||
6 | stata | 5后,将会出现一个简短的变量描述 | ![]() | ||||
7 | stata | generate interaction_term=time*treatmentgroup | 生成一个名叫“interaction_term”的变量,在上述例子中我们需要的“交乘项”。 且该“交乘项”=time变量✖treatmentgroup变量 | ||||
8 | stata | (本个指令与下一个指令效果相同):reg weight i.time##i.treatmentgroup | time##treatmentgroup:将这两个变量包含在回归中,且,将这两个变量的交乘项也包含在回归中。即,新增交乘项 | ||||
8 | stata | regress weight time treatmentgroup interaction_term | 双重差分指令与最小二乘回归分析指令相同“reg";后面依次是 :因变量、(等式右侧的内容,分别是:)时间变量、分组变量、交乘项 | ||||
9 | stata | 解释处理行为效应,关注交乘项系数,也就是红框中的内容,如下所示👇: |
|
上图👆是最小二乘法回归
下图👇是Diff法
步骤 | 软件 | 操作 | 含义 |
9 | stata | diff 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”代表处理行为发生的时间点。
1 | ssc install csdid,all replace | 更新替换已经存在的相关指令。若第一次安装,可以不加“all replace"。 |
(1) | ssc install drdid,all replace | 安装drdid |
2 | csdid weight control_1 control_2 control_3,ivar(uid) time(month) gvar( treatment_time) | ivar():面板数据中个体识别变量,如果是重复截面数据,可以不加此选项。 在本例子中,uid是每一个看过小周视频人的id,若是企业的,则可能是企业的股票代码。 |
面板数据:针对同一个对象在不同时间点上的数。 vs 重复截面数据:在不同时间点上选择相同数量的对象数据,但是每个时间点上所收集的具体个体是不相同的。 |
3.2. 计算处理行为效果
3.2.1. 整体处理行为效果
计算所有小模块的加权平均数 | 先算出日历时期的处理行为效果,然后再计算整体处理行为效果 | Caverage | estat simple |
按照事件时期计算处理行为效果,然后再通过事件时期来计算整体处理行为效果 | post_average、pre_average | ||
先算出每个组的平均处理行为效果,然后再通过组平均处理行为效果计算整体处理行为效果 | Gaverage | ||
不同时期的处理行为效果 | 日历时期 | estat calendar | |
事件时期(按照每个模块所对应的处理行为发生后的期数) | estat event | ||
不同组别的处理行为效果 | estat group |
3.2.2. csdid指令有三种估计小模块处理行为效果的方法
方法 | 指令 |
Double Robust | csdid默认 |
Outcome Regression | 在最后加上method(reg) |
Inverse Probability Weighting | 在最后加上method(ipw) |
3.2.3. csdid对照组选择
从未处理过的个体 | csdid默认 |
尚未处理过的个体 | 在最后加上notyet |
默认 (if数据中没有从未处理个体,或者我们的数据中所有个体或早或晚都最终接受了处理行为) |
资料来源:up主“小周同学慢慢学”。讲的超好!!!强推!!