DID模型

2023-10-27

政策评估 (Policy Evaluation) 是当前公共经济学和劳动经济学中最常用的实证方法。其目的在于评价一项既有政策的效果,此类研究关注的是该政策的处理效应 (Treatment Effect)。由于政策往往是对一类特定的人群起作用,政策评估的基本思想是将这类人群与其他人群进行比较。目前,双重差分模型 (Difference-in-Differences) 是用于政策评估的常用模型。

1.1 因果识别思路

  • 对特定个体iD_{i,j}=1  表示第j  期的个体i  受到政策影响 (处理组),D_{i,j}=0 表示第j    期的个体i  不受政策影响 (控制组);

  •  Y^{_{i,j}^{1}}为个体 i 受政策影响时的结果 (outcome), Y^{_{i,j}^{0}}为不受政策影响时的结果;

  • 虽然个体i  不可能同时属于处理组和控制组,不可能同时观测到Y^{_{i,j}^{1}}  与 Y^{_{i,j}^{0}},但双重差分模型用同一个体不同时期处理状态相反的结果来构造反事实,进而估计出某一政策的实施结果。

图片

图片

双重差分需满足共同趋势这一前提假设,也就是说实验组和控制组在政策施行之前并不存在显著差异,因此使用 DID 方法时需要进行平行趋势检验,即对政策施行之前的实验组和控制组特征是否相似进行检验。 

1.2 截面数据 vs 面板数据

  • DID的数据结构:面板数据最佳,重复截面数据也可以;

  • 重复截面数据:数据组成必须是稳定的:

    • 不同时点上的数据都是总体的代表性样本;

    • 可以允许组别固定效应;

  • 面板数据:可以使用个体固定效应,更加稳健。

1.3 常见计量模型设定

政策施行时间一致:

政策逐步施行:

当政策逐步推进时,不存在明确的实验组和控制组划分,此时回归模型保留了时间固定效应T_{t}  以及交乘项 D_{i}xT_{t}  估计政策实行效果。同样可以加入一系列控制变量X_{it}  控制可能干扰政策施行的影响因素。

平行趋势检验:

该模型中包括了政策之前和之后若干期的虚拟变量D_{t}  ,即可用于检验平行趋势是否成立,也可估计政策施行每一期效果具体大小,\lambda _{t}代表时间固定效应。系数\delta _{t}  用于检验平行趋势是否成立,若系数不显著则平行趋势成立;系数\gamma _{t}  度量的是政策实行后每一期的效果大小,若显著则说明该期政策效应存在。

2. Stata实现

2.1 政策施行时间一致

keep if inlist(Year,2002,2003)  //保留政策施行时间一致的观测值
reg y Treat##After

2.2 政策逐渐施行

eststo m1: reg y  i.id i.Year Treat_x_After  //混合OLS回归
xtset id Year
eststo m2: xtreg y i.Year Treat_x_After, fe  //面板固定效应
local m "m1 m2"
esttab `m', nogap  replace not b(%4.2f) s(N r2_a) //输出回归结果

2.3 平行趋势检验

以 nlswork.dta 数据为例,假定一项外生政策在 78 年实施,试点组由 idcode 大于 2604 的观测值构成:

webuse nlswork, clear 
xtset idcode year, delta(1)  //设置成面板数据

gen post = (year >= 78) 
gen treated = (idcode > 2604)
levelsof year, local(localyear) //判断年份的情况
return list
qui sum year 
return list

进一步,生成政策之前和之后每一期的虚拟变量 coeff69 - coeff88

local yearmin = r(min) 
foreach i of local localyear {   
  local j = `i' - 78   
  if `i' > `yearmin'{   
    gen coeff`i' = (year == `i' & treated == 1)   
    label var coeff`i' "`j'"   
    if `i' <= 78 {   
      local countsmall78 = `countsmall78' + 1   
    }   
  }  
}

利用面板固定效应估计回归结果:

. global controlx "c.age##c.age c.ttl_exp##c.ttl_exp i.south i.race i.year" //设定控制变量
. xtreg ln_w coeff* $controlx, fe robust 
. est store dynamic

可以看出,在政策实行之前的系数 coeff69 - coeff77 基本不显著,政策实行之后的系数 coeff78coeff80 和 coeff82 显著异于0。

做图:可以使用 coefplot 命令将平行趋势检验和各期政策效果以图形的形式表示出来。

coefplot dynamic, keep(coeff*) vertical recast(connect) yline(0) ///
>     xline(`countsmall78') ciopts(recast( > rline) lpattern(dash))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DID模型 的相关文章

  • 如何解决stata数据管理器中变量变红的问题

    目标 解决open变量变红的问题 网上说可以通过以下代码解决 实际上是缘木求鱼 encode encode 红色数字的变量名 gen 新产生的变量名 自己尝试用这个代码之后 发现对应变量不是红色了 但变成了蓝色 我开始以为问题已经解决了 但
  • 1024,干程序才懂得节日!

    1024程序员节 1024程序员节是广大程序员的共同节日 1024是2的十次方 二进制计数的基本计量单位之一 针对程序员经常周末加班与工作日熬夜的情况 部分互联网机构倡议每年的10月24日为1024程序员节 在这一天建议程序员拒绝加班 程序
  • DES加密算法详解——看这一篇就够了!

    目录 一 DES简介 二 DES算法入参 三 DES加密算法步骤解析 1 IP置换 M gt M0 2 密钥K控制的16轮运算 M0 K1 K16 gt M16 2 1 子密钥Kn的计算 2 1 1 PC 1置换 2 1 2 循环左移运算
  • C规范编辑笔记(四)

    往期文章 C规范编辑笔记 一 C规范编辑笔记 二 C规范编辑笔记 三 正文 大家好 今天来给大家分享一下C规范编辑笔记第四篇 距离我们C规范编辑笔记第三篇也快过去了一个月 这次继续分享一波 1 以大写形式声明常量 为避免误解 常量值必须根据
  • Maven进阶-配置仓库

    1 1maven介绍 Maven是一个项目管理和综合工具 Maven提供了开发人员构建一个完整的生命周期框架 开发团队可以自动完成项目的基础工具建设 Maven使用标准的目录结构和默认构建生命周期 主要服务于基于Java平台的项目构建 依赖
  • Java 实现令牌桶限流算法 原生极简实现 包括单机和多线程版本

    文章目录 令牌桶算法简介 令牌桶算法限流范围 单机版实现 多线程版实现 令牌桶算法简介 令牌桶是指一个限流容器 容器有最大容量 每秒或每100ms产生一个令牌 具体取决于机器每秒处理的请求数 当容量中令牌数量达到最大容量时 令牌数量也不会改
  • Deque接口简介说明

    转自 Deque接口简介说明 下文笔者讲述Deque接口的简介说明 如下所示 Deque简介 Deque接口是一个双端队列 可以对队列的头尾进行操作 所以也可以当做栈来使用 Queue和Deque接口的相对应方法 Queue方法 Deque
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • 是否有与 Stata“order”命令等效的 R 函数?

    R 中的 顺序 类似于 Stata 中的 排序 例如 这是一个数据集 仅列出变量名称 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 这是我期望的输出 v1 v2
  • 如何在 R 中识别/删除非 UTF-8 字符

    当我在 R 中导入 Stata 数据集时 使用foreign包 导入有时包含无效字符UTF 8 这本身就已经够令人不快的了 但是当我尝试将对象转换为JSON 使用rjson包裹 如何识别字符串中无效的 UTF 8 字符并在之后将其删除 另一
  • R 子集的回归

    我想对不同国家 即我的数据的子集 运行相同的回归 我确实弄清楚了如何在 R 中执行此操作 但是在 Stata 中更轻松地完成相同的操作之后 我想知道 R 中是否有更好的方法 在 Stata 中你会做这样的事情 foreach country
  • 当轴标签分成多条线时会偏离中心

    我在用graph twoway scatter并添加我自己的ylabels 我经常有很长的标签并将它们分成多行 然而当我想要破解的时候却遇到了问题some标签超过两行 但不超过两行 当我这样做时 单行标签相对于它们的中心是偏离的tick标记
  • 显示迄今为止记录的另一个变量随时间推移获得的最高值的变量

    我有一个患者数据集及其随时间 以年为单位 与酒精相关的患者数据 如下所示 clear input long patid float year cohort 1051 1994 1 2051 1972 1 2051 1989 2 2051 1
  • 熊猫由长到宽的重塑,通过两个变量

    我有长格式的数据 并且正在尝试将其重塑为宽格式 但似乎没有一种简单的方法可以使用熔化 堆叠 取消堆叠来执行此操作 Salesman Height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6
  • d3dcompiler_43.dll丢失怎么修复?怎么解决

    在计算机使用过程中 我们经常会遇到一些错误提示 其中之一就是 找不到d3dcompiler 43 dll文件 那么 d3dcompiler 43 dll是什么文件 它的作用是什么 如果缺失了该如何修复呢 本文将详细介绍d3dcompiler
  • 在 Stata 中进行加权热甲板插补的简单方法?

    我想在 Stata 中进行简单的加权热甲板插补 在 SAS 中 等效命令如下 请注意 这是一个较新的 SAS 功能 从 2015 年左右的 SAS STAT 14 1 开始 proc surveyimpute method hotdeck
  • Stata 的替代 IDE [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 I am used to R studio for R which has some features
  • 将外语从csv文件导入到Stata

    我正在使用Stata 12 我遇到了以下问题 我正在使用以下命令将一堆 csv 文件导入到 Statainsheet命令 数据集可能包括俄语 克罗地亚语 土耳其语等 我认为它们是用 UTF 8 编码的 在 csv 文件中 它们是正确的 我把
  • 如何让Stata在表格中报告零

    我正在尝试使用tabulateStata 中的命令创建频率时间序列 当我尝试合并输出时 问题就出现了tabulate运行完每个日期后 tabulate当相关变量的值不存在观察值时 不会将 0 作为条目包含在内 例如 如果我想在三年内统计一个
  • 如何获取完整的子目录列表(包括子目录的子目录)?

    我有数千个城市文件夹 例如city1 city2等等 但实际上命名为NewYork Boston ETC 每个文件夹还包含两个子文件夹 land and house 所以目录结构是这样的 current dictionary city1 h

随机推荐

  • Android Studio中的mavenCentral、jcenter、google仓库

    一 Android Studio中依赖是从哪里得到 是从工程的build gradle里面定义的Maven仓库服务器去下载library的 总的来说 只有两个标准的Android library文件服务器 mavenCentral和jcen
  • AES加密和解密详解

    本文使用的是cyrpto js库 以AES CBC为例 先安装cyrpto js cyrpto js是js专门用来加密和解密用到的一个库 第一步 先确认一下电脑是否有node和npm 输入node version显示 v 版本号就可以下一步
  • RPMB分区介绍

    RPMB Replay Protected Memory Block重放保护内存块 Partition 是 eMMC 中的一个具有安全特性的分区 eMMC 在写入数据到 RPMB 时 会校验数据的合法性 只有指定的 Host 才能够写入 同
  • Java之解压Tar.gz和Gz文件到指定的目录下

    工作中的需求 需要读取指定路径下的压缩文件 然后解压到指定的目录下 引入maven依赖
  • msvcp140.dll丢失的4个解决方法,msvcp140.dll丢失的常见原因

    msvcp140 dll是Windows操作系统中的一个动态链接库文件 由Microsoft Visual C 程序库所提供 它包含了许多C 函数和类的定义 可以为应用程序提供一些基本服务 比如内存管理 文件输入 输出和网络连接等功能 我们
  • phpstorm表单递交post出错get正确的解决方法

    好吧 这是我第二次因为这个问题搞得凌晨才睡觉 这次一定要记录下来 phpstorm版本2016 1 1 问题详细描述 在html写好表单之后以post方式递交给php文件 返回结果在谷歌浏览器是 Automatically populati
  • Allegro如何做镂空丝印操作指导

    Allegro如何做镂空丝印操作指导 在PCB设计丝印的时候 会需要画镂空的丝印 Allegro升级到了172版本的时候 可以画镂空的丝印 如下图 具体操作如下 选择Shape Add Rect命令 Options选择需要画到的层面 比如S
  • nginx文档合集

    1 nginx documentation 2 14个Nginx的核心功能点 建议收藏 3 Nginx之负载均衡模块 ngx http upstream module 途径日暮不赏丶的博客 CSDN博客 4 tomcat redis ses
  • 华为OD机试 - 完美走位(Python)

    完美走位 题目描述 输入一个长度为4的倍数的字符串 字符串中仅包含WASD四个字母 将这个字符串中的连续子串用同等长度的仅包含WASD的字符串替换Q 如果替换后整个字符串中WASD四个字母出现的频数相同 那么我们称替换后的字符串是 完美走位
  • Android Studio 快捷键盘

    Alt 回车 导入包 自动修正 Crtl X 剪贴 删除本行 之前用Eclipse Ctrl D 就是删除 在AndroidStudio 中是复制本行到下一行 找了好久都没找到删除本行快捷键的 汗 Ctrl N 查找类 Ctrl Shift
  • CTO、技术总监、首席架构师的区别

    一 高级程序员 如果你是一个刚刚创业的公司 公司没有专职产品经理和项目经理 你就是公司的产品经理 你如果对你现在的开发员能力不满 那么你只需要的是一个高级程序员 你定义功能 你做计划推进和管理 他可以带1 2个副手把你规划的功能实现了 他是
  • PostgresSQL 用linux命令重启时出错:pg_ctl: server does not shut down

    出错原因 在建一个新的数据库 然后restore好久都没成功 就把服务器直接关掉重启了 然后通过linux去重启数据库就一直不成功 下面是出错信息和解决步骤 用service postgresql restart去重启数据库 总是报以下错误
  • 长/短 链接/轮询 和websocket

    短连接和长连接 短连接 http协议底层基于socket的tcp协议 每次通信都会新建一个TCP连接 即每次请求和响应过程都经历 三次握手 四次挥手 优点 方便管理 缺点 频繁的建立和销毁连接占用资源 长连接 客户端和服务端之间只有一条TC
  • 链表的有序构建和查找

    题目描述 单链表结点的存储结构包含两部分 数据 下一结点指针 默认为空 单链表包含头结点 存储实际数据的结点位置从1开始 现输入一批无序的整数队列 编写程序完成以下要求 1 构建单链表并且把数据按递增顺序插入到链表中 并且统计非空指针发生变
  • vuex有哪几种属性?

    一 vuex是什么 vuex 是 Vue 配套的 公共数据管理工具 它可以把一些共享的数据 保存到 vuex 中 方便整个程序中的任何组件直接获取或修改我们的公共数据 注意点 只有需要共享的才放到vuex上 不需要共享的数据依然放到组件自身
  • Acwing-4455. 出行计划

    暴力解法TLE了 过了70 的数据 include
  • 【计算机视觉】直接线性变换(DLT)求解P矩阵(附C++和MATLAB代码)

    引言 本科阶段学习计算机视觉的时候也写过相机检校的程序 里面求解相机变换矩阵的时候使用的就是DLT算法 但这一次的作业只是要求计算投影矩阵 即P矩阵 原理 讲解DLT算法的原理的帖子已经很多了 推荐下面这个链接 双目视觉算法研究 二 相机模
  • java的动态代理无法获取实现类上的注解(问题解决记录)

    java的动态代理无法获取实现类上的注解 问题解决记录 问题描述 使用 Proxy newProxyInstance ClassLoader loader Class
  • npm包 指定对应的包从私人仓库下载

    创建 npmrc strict peer dependencies false registry https registry npmjs org 自定义包名 registry http npm 私人仓库名字 com 自定义包名2 regi
  • DID模型

    政策评估 Policy Evaluation 是当前公共经济学和劳动经济学中最常用的实证方法 其目的在于评价一项既有政策的效果 此类研究关注的是该政策的处理效应 Treatment Effect 由于政策往往是对一类特定的人群起作用 政策评