首页 > 其他分享 >政策评价模型——双重差分DID模型

政策评价模型——双重差分DID模型

时间:2024-11-01 11:59:06浏览次数:1  
标签:对照组 DID 政策 模型 差分 处理 delta

政策评估(Policy Evaluation)在公共经济学和劳动经济学中广泛应用,主要用于评价已实施政策的效果。其核心目的是评估政策的处理效应(Treatment Effect),即该政策对特定目标人群的实际影响。通常情况下,政策的实施往往仅针对特定人群,如低收入家庭、特定行业或区域。为了评估政策的影响,政策评估的基本方法是将接受政策的处理组与未受影响的对照组进行比较,从而揭示政策带来的变化与影响。
在政策评估中,双重差分模型(Difference-in-Differences, DiD)是最常用的实证方法之一。双重差分方法通过比较政策实施前后处理组和对照组的变化,剔除掉那些非政策因素的共同变化,从而提取出纯粹由政策产生的处理效应。具体而言,双重差分模型首先计算政策实施前后处理组和对照组的平均变化,然后通过两者之间的差异评估政策效应。这一方法的核心假设是“平行趋势假设”,即在没有政策的情况下,处理组和对照组的趋势应保持一致。随着政策评估需求的增加,双重差分模型也逐渐得到拓展和改进。研究人员引入了一些更为复杂的工具和模型,如多期双重差分模型、多层面双重差分等,以应对更复杂的政策情境和数据结构,从而提高政策评估的准确性和可靠性。

一、双重差分法(DID)的原理

DID模型的核心思想是通过政策实施前后处理组与对照组的差异,推断出该政策的净效应。其基本逻辑在于,通过对比两组数据在政策实施前后的变化,可以有效控制掉政策实施前后两组共同存在的时间趋势及潜在干扰,从而使估计更为准确。DID方法的基本假设是“平行趋势假设”,即假设在没有政策干预的情况下,处理组与对照组在观察期内的变化趋势相同。如果这一假设成立,则可以将对照组在政策实施前后的变化作为处理组在无政策情况下的反事实(Counterfactual)预测,从而将处理组的变化归因于政策的处理效应。DID双重差分的简单模型如下:

\[Y_{it} = \alpha + \beta D_i + \gamma T_t + \delta (D_i \times T_t) + \epsilon_{it} \]

其中:

  • $ Y_{it} $ 是个体 $ i $ 在时间 $ t $ 的观测值。
  • $ D_i $ 是个体是否在处理组的指示变量,处理组取值为1,对照组为0。
  • $ T_t $ 是时间的指示变量,政策实施后为1,政策实施前为0。
  • $ D_i \times T_t $ 是交互项,表示个体同时处于处理组且政策已实施的情境。
  • $ \alpha $ 是截距项。
  • $ \beta $ 代表处理组和对照组之间的初始差异。
  • $ \gamma $ 代表政策实施前后的平均变化。
  • $ \delta $ 是关键参数,表示双重差分估计的处理效应。
  • DID估计值 $ \delta $ 即为政策的处理效应,表示由于政策实施导致的额外影响。

二、DID模型的检验过程和方法

2.1 检验过程

  • 样本选择和划分
    DID模型的第一步是选择适当的样本并将其划分为处理组和对照组。处理组是政策实施对象,即受政策影响的群体;对照组则是未受政策影响的相似群体。两组的选择应满足“可比性”原则,以便在政策实施前保持相似的趋势,确保平行趋势假设的有效性。

  • 数据收集和变量定义
    需要收集足够的纵向数据,包括政策实施前后处理组和对照组的相关变量,以便进行差分计算。一般来说,变量的定义应包括:

    • 被解释变量(因变量):通常是政策希望影响的目标变量,如就业率、收入水平等。
    • 时间变量:用于划分政策前后时间的二元变量。
    • 处理组变量:用于区分处理组和对照组的二元变量。
  • 模型设定和估计
    建立双重差分模型,通常采用线性回归方法估计。通过OLS估计模型参数,得出处理效应 $ \delta $ 的值。模型中交互项 $ D_i \times T_t $ 的系数 $ \delta $ 即为DID估计的处理效应,反映政策实施的净效应。

  • 结果解释
    估计出双重差分的系数 $ \delta $ 后,对结果进行解释。通常,若 $ \delta $ 为正值,表明政策对处理组产生了积极影响;若为负值,则可能意味着政策效果不理想或产生负面影响。DID模型的估计结果常需结合实际政策背景和其他外部信息,以便得出科学的结论。

2.2 检验方法

为保证DID模型的估计效果可靠,模型在使用过程中需进行一系列检验,包括平行趋势检验、假设检验、稳健性检验等。

平行趋势检验
平行趋势假设是DID模型的关键前提,若处理组与对照组在政策实施前存在明显的不同变化趋势,则DID估计的处理效应会产生偏误。平行趋势检验通常有两种方法。图形检验:将政策实施前的数据绘制成趋势图,观察处理组和对照组在政策实施前的趋势是否一致。如果两组在政策实施前表现出相似的变化趋势,则可以认为平行趋势假设成立。回归检验:将政策实施前的不同时间段作为变量,回归计算时间与处理组的交互项,检验其系数是否显著。若结果不显著,则表明平行趋势假设基本成立。
稳健性检验
稳健性检验主要是为确保DID模型估计的稳定性和准确性。常见的稳健性检验方法包括伪政策检验:在政策实施之前,假设一个伪政策的时间点,进行DID估计,若在该伪政策点上未发现显著的处理效应,则表明模型稳健。其他控制变量加入:在DID模型中加入额外的控制变量,如个体固定效应、时间固定效应等,以控制潜在的干扰因素,观察估计结果的变化是否显著。
异质性分析
异质性分析可以进一步考察政策对不同群体的影响是否存在差异。例如,若政策对不同年龄、收入水平或地域的人群效果不同,可以通过分组回归来估计政策在不同子群体上的处理效应。这种分析可以为政策制定提供更为细致的指导。
反事实检验
在一些DID模型应用中,研究人员会采用类似于合成控制法(Synthetic Control Method)的反事实检验方法,构造一个与处理组相似的反事实群体,进一步确保模型估计的可靠性。

参看上图示例,如果使用数学表达式,可以描述为:

\[Y_{it} = \alpha + \beta D_i + \gamma T_t + \delta (D_i \times T_t) + \epsilon_{it} \]

其中,\(Y_{it}\) 为 \(J\) 变量;\(\alpha\)为截距;$\delta、\gamma 和 \beta $ 为系数值;\(D_i\) 为算法 \(B\),干预前为 0,干预后为 1;$T_t $ 为时间,干预前为 0,干预后为 1;$ D_i \times T_t $ 为交叉项;$ \epsilon_{it} $ 为随机项。

对上述式取条件期望后,算法增量(上图中的 B')为 \(\delta\),计算过程如下表所示。

\(E(Y|D, T)\) \(T = 0\) \(T = 1\) \(\Delta\)
\(D = 0\) $ \alpha $ $ \alpha + \gamma $ $ \gamma $
$$D = 1$$ $ \alpha + \beta $ $$ \alpha + \delta + \gamma + \beta $$ $\gamma + \delta $
$$\Delta$$ \(\beta\) $\delta + \beta $ \(\delta\)

显然,如果 \(\delta>0\),则认为算法 \(B\) 对指标 \(J\) 有正向促进作用;如果 \(\delta<0\),则认为算法 \(B\) 对指标 \(J\) 有负向促进作用;其它则认为没有抑制作用。

\(P\) > 0.05 \(P\) < 0.05
\(\delta\)> 0 无显著效果 显著正向效果
\(\delta\) < 0 无显著效果 显著负向效果

三、案例分析

A和B为历史指标的变化保持一致的两个地区,在1994年,B区实行了一项新政策,目标是评估新政策对指标y的影响。相关数据如下。

Country Year y Country Year y
A 1990 1342787840 A 1995 3229574144
A 1991 -1899660544 A 1996 2756754176
A 1992 -11234363 A 1997 2771810560
A 1993 2645775360 A 1998 3397338880
A 1994 3008334848 A 1999 39770336
B 1990 1342787840 B 1995 1323696384
B 1991 -1518985728 B 1996 254524176
B 1992 1912769920 B 1997 3297033216
B 1993 1345690240 B 1998 3011820800
B 1994 2793515008 B 1999 3296283392

在该实例中,关注以下变量:

  • D (treat):政策变量,B地区为1,A地区为0。
  • T (period):时间变量,1994-1999年为1,1990-1993年为0。
  • D_i × T_t (did):交叉项,用于估计政策效应。
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf

# 构造数据
data = {
    'Country': ['A'] * 10 + ['B'] * 10,
    'Year': [1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999] * 2,
    'y': [
        1342787840, -1899660544, -11234363, 2645775360, 3008334848, 
        3229574144, 2756754176, 2771810560, 3397338880, 39770336,
        1342787840, -1518985728, 1912769920, 1345690240, 2793515008,
        1323696384, 254524176, 3297033216, 3011820800, 3296283392
    ]
}

# 创建DataFrame
df = pd.DataFrame(data)

# 创建DID分析所需变量
df['post_treatment'] = (df['Year'] >= 1994).astype(int)  # 1994年及以后为1,否则为0
df['treated'] = (df['Country'] == 'B').astype(int)       # B区为1,A区为0
df['DID'] = df['post_treatment'] * df['treated']         # 交互项

# 构建DID模型
model = smf.ols('y ~ treated + post_treatment + DID', data=df).fit()

# 输出回归结果
print("====================================")
print("Dependent Variable: y")
print("Model: OLS")
print("====================================")
print(model.summary2().tables[1])  # 仅输出类似Eviews的结果表

# 提取双重差分系数的p值和t值
did_coef = model.params['DID']
did_pval = model.pvalues['DID']
did_tval = model.tvalues['DID']

# 判断结果
if did_pval < 0.05:
    conclusion = f"新政策对指标y有显著影响 (DID系数 = {did_coef:.2f}, p值 = {did_pval:.4f}, t值 = {did_tval:.2f})。"
else:
    conclusion = f"新政策对指标y没有显著影响 (DID系数 = {did_coef:.2f}, p值 = {did_pval:.4f}, t值 = {did_tval:.2f})。"

print("====================================")
print("结论:")
print(conclusion)
====================================
Dependent Variable: y
Model: OLS
====================================
                       Coef.      Std.Err.  ...        [0.025        0.975]
Intercept       5.194171e+08  7.308824e+08  ... -1.029984e+09  2.068819e+09
treated         2.511485e+08  1.033624e+09  ... -1.940036e+09  2.442333e+09
post_treatment  2.014513e+09  9.435651e+08  ...  1.424467e+07  4.014782e+09
DID            -4.556002e+08  1.334403e+09  ... -3.284407e+09  2.373207e+09

[4 rows x 6 columns]
====================================

#新政策对指标y没有显著影响 (DID系数 = -455600156.08, p值 = 0.7372, t值 = -0.34)。

总结

双重差分模型作为一种常用的政策评估方法,通过对比处理组和对照组在政策实施前后的差异,能够较为准确地估计政策的处理效应。尽管DID模型有一定的假设前提和局限性,但其在控制时间不变因素、适应多期数据方面具有明显优势,是政策评估中重要的实证方法。通过合理选择样本、检验平行趋势、进行稳健性检验,DID模型可以有效评估政策的实际效果,并为政策制定者提供可靠的依据。

参考资料

  1. 双重差分法(DID):算法策略效果评估的利器
  2. DID模型

标签:对照组,DID,政策,模型,差分,处理,delta
From: https://www.cnblogs.com/haohai9309/p/18519256

相关文章

  • 8类个性天赋认知工具:MBTI、盖洛普优势、命理工具、玛雅历、九大天赋模型....
    认识你自己,从来不是一个哲学问题,它是一个非常实用的生命答案。知道“我是谁”,就能知道“我要往哪里去”。一旦懂得了自我的天赋、性格和挑战,人就走出了生命的迷茫,知道此生应该选择怎样的事业,怎样的生活,怎样的情感。推荐几个自我认知工具。 一、各种性格分析工具:九型人格、性......
  • 生产者消费者模型
         线程同步互斥锁(互斥量)条件变量生产/消费者模型一、互斥锁C++11提供了四种互斥锁:mutex:互斥锁。timed_mutex:带超时机制的互斥锁。recursive_mutex:递归互斥锁。recursive_timed_mutex:带超时机制的递归互斥锁。包含头文件:#include<mutex>1、mutex类1)加锁lock()......
  • 浙江大学强势出品!《大模型基础》教材已开源!附PDF文档
    这本浙大出品的大模型基础入门书籍:《大模型基础》你绝对不能错过!本书包含语言模型基础、大语言模型架构演化、Prompt工程、参数高效微调、模型编辑、检索增强生成等六部分内容。本书共9章,深入探讨了大模型的工作原理和使用方法-一提示工程,并研究了提示工程在电子商务、创......
  • 大模型的表征学习方法简介
    表征学习是大模型应用中非常重要的一个方向,其实在深度学习中已经有众多的深入研究。表征学习本质上就是一个空间映射,把文本、图像、声音等不同模态的数据映射到一个高维空间,表示为向量,进而作为模型的输入。比如,针对文本中的词、图像中的不同颜色、纹理或者卷积等,以及视频、......
  • R语言贝叶斯分层、层次Hierarchical Bayesian模型的房价数据空间分析
    原文链接:https://tecdat.cn/?p=38077原文出处:拓端数据部落公众号本文主要探讨了贝叶斯分层模型在分析区域数据方面的应用,以房价数据为例,详细阐述了如何利用R帮助客户进行模型拟合、分析及结果解读,展示了该方法在处理空间相关数据时的灵活性和有效性。一、贝叶斯分层模型概述贝......
  • LLM | 论文精读 | 地学视觉语言大模型:Towards Vision-Language Geo-Foundation Model:
    论文标题:TowardsVision-LanguageGeo-FoundationModel:ASurvey作者:YueZhou,LitongFeng,YipingKe,XueJiang,JunchiYan,XueYang,WayneZhang期刊:未提供DOI:https://arxiv.org/abs/2406.09385email:[email protected]创作不易,恳请大家点赞收藏支持:)论......
  • 大模型算法面试题总结
    更多面试题总结,请移步至​https://i.afbcs.cn/naPbNY​1.什么是大型语言模型(LLMs)以及它们的工作原理是什么?大型语言模型(LLMs)是设计用来理解、处理和生成类似人类文本的高级人工智能系统。例子包括GPT(生成预训练变换器)、BERT(来自变换器的双向编码器表示)、Claude和Llama。这些......
  • 模型的中间失忆特性是什么;有位置信息嵌入,为什么还会中间失意;模型中间失意怎么解决
    目录模型的中间失忆特性是什么有位置信息嵌入,为什么还会中间失意模型中间失意怎么解决模型的中间失忆特性是什么定义中间失忆特性模型的中间失忆特性是指在深度学习模型(如循环神经网络RNN、长短期记忆网络LSTM等序列模型)处理长序列数据时,随着序列长度的增加,模型会......
  • Python基于TensorFlow实现卷积神经网络-双向长短时记忆循环神经网络加注意力机制回归
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景随着大数据时代的到来,对复杂数据结构的理解和预测成为许多领域的重要课题。在这些领域中,无论是视频分析、语音识别还是自然语言处理,都面临着需......
  • 论文阅读Nature:Detecting hallucinations in large language models using semantic e
    论文阅读-Nature:Detectinghallucinationsinlargelanguagemodelsusingsemanticentropy(使用语义熵来检测大模型中的幻觉)作者:SebastianFarquhar,JannikKossen,LorenzKuhn&YarinGal单位:牛津大学,计算机科学学院,OATML实验室期刊:Nature时间线:2023年7月提交→......