DID; PSM; DID-PSM

一:关于DID

DID即diff in diff,

DID主要应用场景是:研究某项政策或策略实施后是否有效果;涉及时间前后某经济指标的比较,即存在时间维度的比较;

DID应用的局限性: 首先是对数据的要求,可以获得政策执行前的数据以及政策执行后的数据;其次要求可以找到好的对照组(即除了是否实施该政策有有差异外,其余的个体差异应当控制住并保持不变)

DID易错:关于核心的解释变量是“时间t”还是 “是否执行政策treat”呢?由于我们研究的对象是 “这项政策执行后是否有效果”,主要针对政策执行前后是否要显著差异,因此我们的核心解释变量是t而不是是否实施这项政策treat。

DID基本程序:

cd "D:\stata15\data\practice\cause and effect data"

log using"D:\stata15\log\PSM and DID.log",replace

use cardkrueger1994.dta,clear

des

*对数据的描述

//研究提高最低工资标准后对雇佣数量的影响;

//treated即是否实施了提高工资标准,1代表实施,即新泽西州;0代表未实施,即宾夕法尼亚州;

//研究政策实施前后的雇佣数量的变化,t对比1992年2月的雇佣数量和1992年11月的差异;

//fte即y,雇佣数量;bk kfc roys wendys都是控制变量

gen gd=t*treated //生成交互项

reg fte gd treated t,r

diff fte,treat(tr

### PSM-DID 方法实现详解 #### 一、PSM-DID 的基本概念 倾向得分匹配 (Propensity Score Matching, PSM) 和双重差分法 (Difference-in-Differences, DID) 是两种常用的因果推断方法。PSM 主要用于解决处理组和对照组之间的协变量不平衡问题,而 DID 则通过比较政策实施前后实验组与控制组的变化来估计政策效应[^2]。 当两者结合时,PSM 被用来筛选出更具有可比性的对照组个体,从而提高 DID 结果的可靠性。这种方法特别适用于存在明显选择偏差的情况,在经济学研究中被广泛应用于评估政策干预的效果[^4]。 #### 二、PSM-DID 的实现流程 以下是 PSM-DID 方法的具体实现过程: 1. **构建数据集** 数据应包含实验组和对照组的相关信息,以及政策实施前后的观测值。通常需要定义以下变量: - 处理变量 \(T\):表示某观察单位是否受到政策影响。 - 时间变量 \(Post\):指示时间点是在政策实施之前还是之后。 - 协变量 \(X\):可能影响政策分配的因素集合。 - 因变量 \(Y\):衡量政策效果的目标指标。 2. **计算倾向得分** 使用逻辑回归模型估算每个样本属于实验组的概率(即倾向得分)。假设协变量为 \(X_1, X_2,...,X_k\) ,则有如下形式化表达式: \[ P(T=1|X)=\frac{exp(\beta_0+\sum_{i=1}^{k}\beta_i*X_i)}{1+exp(\beta_0+\sum_{i=1}^{k}\beta_i*X_i)} \] 这一步可以通过 Stata 中 `logit` 或 R 中 `glm()` 函数完成[^5]。 3. **执行匹配** 倾向得分计算完成后,采用最近邻匹配或其他匹配策略找到最接近的对照组成员。常用的方法包括一对一匹配、多对一匹配等,并可以选择卡尺距离进一步缩小误差范围[^3]。 4. **应用 DID 模型** 对经过 PSM 匹配的数据运行标准 DID 方程: \[ Y=\alpha+\tau*T*Post+\gamma_1*T+\gamma_2*Post+\delta'X+\epsilon \] 其中,\(T * Post\) 表示交互项系数 \(\tau\) 就是我们感兴趣的平均处理效应 ATET (Average Treatment Effect on the Treated)。 5. **检验平行趋势假定** 平行趋势是 DID 成立的关键前提条件之一。需验证在政策生效之前的若干时期内,两组因变量变化轨迹无显著差异。 6. **稳健性测试** 可尝试不同的带宽设定或者替换其他类型的匹配算法重新分析结果的一致性和稳定性。 7. **报告最终结论** 明确指出所得到的政策净效益及其统计学意义水平。 #### 三、代码实例 下面提供一段简单的 Stata 实现代码作为参考: ```stata // Step 1: Estimate propensity scores using logistic regression. logit treatment_var covariate1 covariate2 ... covariaten predict pscore // Predicted probabilities. // Step 2: Perform matching based on estimated PScores. psmatch2 treatment_var, neighbor(1) kernel caliper(.05) gen weight=_weight // Save weights from matched sample. // Step 3: Run difference-in-differences estimation with weighted data. reg outcome_variable post##treatment [aweight=weight], robust cluster(cluster_id) ``` 上述脚本展示了如何利用 psmatch2 插件来进行近邻匹配并加权回归以得出 DID 效应。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值