PSM+DID

2023-11-15

PSM-DID 模型是由倾向得分匹配模型 (Propensity Score Matching,以下简称 PSM) 和双重差分模型 (Differences-in-Differences,以下简称 DID) 结合而成。其中,PSM 负责为受处理的个体筛选对照个体,DID 负责识别政策冲击所产生的影响。

PSM 适用于截面数据,而 DID 适用于面板数据。针对二者适用范围不同的问题,学者们一般有两种解决方案:

  • 一是将面板数据直接转化为截面数据进行处理;

  • 二是在面板数据的每期截面上进行逐期匹配

1.  “自匹配” 问题

将面板数据直接转化为截面数据处理,会产生不同期样本匹配的问题,这使得最终的识别结果中掺杂了大量时间趋势信息。而且,匹配变量 x  越多,给予的约束越强,发生 “自匹配” 的概率就越大。

2. 逐期匹配的不足

如果选择逐期匹配的方案,即在每期截面上都进行一次匹配,虽较好地解决了样本不同期匹配的问题,但可能还会受到其他问题的困扰。

首先是特殊类变量的错配。特殊类变量 (x) 是指包含众多不可观测信息,在实际研究中需要对照组与处理组在该变量上保持相同的种类变量。比如研究产品质量时,需要保证处理组与其对照企业在行业上相同 (产品种类相同)。然而 PSM 模型采用估计的倾向得分值 p 做配对时,对照组中可能存在一个与 i 不同种类的个体l ,且l  与i  在 p 值上的间距小于s  类中所有个体,按照 “1:1 最近邻” 的匹配原则,l 便与 i 成功配对,尽管它们属于不同种类。

其次,当数据类型为非平衡面板数据时,逐期匹配会因数据缺失而产生一定的缺失偏误。例如如图 3 中 (a) 所示,最优的匹配对象是数据出现了缺失,因此识别结果中可能包含因数据缺失而造成的匹配偏误,且偏误随数据缺失程度的增加而增大。

此外,对照组的不稳定性 (处理组个体的匹配对象在冲击前后发生了变化) 也会产生部分匹配偏误。对照对象在冲击前后同样发生了较大改变。

3.  解决方法

如果 PSM 模型筛选所得的对照组兼具可比性和稳定性,则 PSM-DID 模型的识别结果将更加稳健可靠。

可以看出,改进方法中的关键点如下:

  • 首先,匹配变量搜寻完毕后,还要从中判断是否存在特殊类变量 x ;

  • 其次,在面板数据的每个截面上进行逐期回归,计算每个个体每一期的ps  值;

  • 最后,对样本个体在ps   值序列间进行匹配。

据此,我们便可得到具有可比性和稳定性的对照组 (种类相同并且状况相似,且冲击前后为相同个体),从而保证了 DID 模型分析的有效性。

4. stata代码

webuse nlswork  //使用系统自带数据库
xtset idcode year, delta(1)  //设置面板
xtdescribe   //描述一下这个面板数据情况

gen age2= age^2
gen ttl_exp2=ttl_exp^2
gen tenure2=tenure^2

global xlist "grade age age2 ttl_exp ttl_exp2 tenure tenure2 not_smsa south race"
sum ln_w $xlist  //统计描述相关变量

**DID方法
gen time = (year >= 77) & !missing(year)  //政策执行时间为1977年
gen treated = (idcode >2000)&!missing(idcode) //政策执行地方为idcode大于2000的地方
gen did = time*treated  //这就是需要估计的DID,也就所交叉项

reg ln_w did time treated $xlist //这就是一个OLS回归,也可以用diff命令
xtreg ln_w did time treated $xlist i.year, fe //也可以这去做,会省略掉一个虚拟变量

**PSM-DID方法
** PSM的部分
set seed 0001 //定义种子
gen tmp = runiform() //生成随机数
sort tmp //把数据库随机整理
psmatch2 treated $xlist, out(ln_w) logit ate neighbor(1) common caliper(.05) ties //通过近邻匹配,这里可以要outcome,也可以不要它
pstest $xlist, both graph  //检验协变量在处理组与控制组之间是否平衡
gen common=_support
drop if common == 0  //去掉不满足共同区域假定的观测值
*drop _weight ==0  //也有情况是把没有匹配的直接删除

** DID的部分,根据上面匹配好的数据
reg ln_w did time treated $xlist 
xtreg ln_w did time treated $xlist i.year, fe

DID方法需要满足的五个条件检验

**1.共同趋势假设检验

tab year, gen(yrdum) //产生year dummy,即每一年一个dummy变量

forval v=1/7{gen treated`v'=yrdum`v'*treated}                    

 //这个相当于产生了政策实行前的那些年份与处理虚拟变量的交互项

xtreg ln_w did treated*  i.year ,fe  //这个没有加控制变量

xtreg ln_w did treated* $xlist i.year ,fe //如果did依然显著,且treated*这些政策施行前年份交互项并不显著,那就好

xtreg ln_w did treated* $xlist i.year if union!=1 ,fe //我们认为工会会影响这个处理组和控制组的共同趋势,因此我们看看union=0的情形


**2.政策干预时间的随机性

gen time1 = (year >= 75) & !missing(year)  //政策执行时间提前到1975年
gen treated1= (idcode >2000)&!missing(idcode) //政策执行地方为idcode大于2000的地方
gen did1 = time1*treated1  //这就是需要估计的DID,也就所交叉项

gen time2 = (year >= 76) & !missing(year)  //政策执行时间提前到1976年
gen treated2= (idcode >2000)&!missing(idcode) //政策执行地方为idcode大于2000的地方
gen did2 = time2*treated2  //这就是需要估计的DID,也就所交叉项

xtreg ln_w did1 $xlist i.year,fe 
xtreg ln_w did2 $xlist i.year,fe //看看这两式子里did1和did2显著不


**3.控制组将不受到政策的影响

gen time = (year >= 77) & !missing(year)  
gen treated3= (idcode<1600 & idcode>1000)&!missing(idcode) //我们考虑一个并没有受政策影响地方假设其受到政策影响
gen did3 = time*treated3  
xtreg ln_w did3 $xlist i.year,fe //最好的情况是did3不显著,证明控制组不受政策影响


**4.政策实施的唯一性,至少证明这个政策才是主要影响因素

gen time = (year >= 77) & !missing(year)  
gen treated4= (idcode<3000 & idcode>2300)&!missing(idcode) //我们寻找某些受到其他政策影响的地方
gen did4 = time*treated4  
xtreg ln_w did4 $xlist i.year,fe //did4可能依然显著,但是系数变小,证明还受到其他政策影响


**5.控制组和政策影响组的分组是随机的

xi:xtivreg2 ln_w (did=hours tenure) $xlist i.year,fe first 

//用工具变量来替代政策变量,解决因为分组非随机导致的内生性问题

**附加的,一般而言,我们需要看看这个政策的动态影响

forval v=8/15{gen treated`v'=yrdum`v'*treat  }               

//注意,这里yrdum8就相当于year=78
reg  ln_w treated* 

xtreg  ln_w treated*, fe

xtreg ln_w treated* i.year,fe

xtreg ln_w treated* $xlist i.year,fe  //一般而言上面这些式子里的treated*应该至少部分显著

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

PSM+DID 的相关文章

  • 代码评审工具Phabricator安装和部署

    1 安装 1 1 安装要求 Phabricator是一个LAMP应用套件 因此最基本的要求就是LAMP环境 Linux Linux的不同发行版及变种是必需的 MacOS X是一个可接受的Linux变种 Windows不是 Phabricat
  • 3个超好用的图片压缩软件,超高压缩比,保持图片清晰度

    分享3个好用的图片压缩工具 不仅可以大大压缩图片大小 还能保持图片分辨率 压缩后的图片画质也能保持清晰 1 一键抠图 一个智能抠图在线网站 支持人像抠图 物品抠图和证件照之外 除此之外 还有图片压缩 图片格式转换 图片编辑 照片修复等功能
  • WSL 2是什么

    Windows Subsystem for Linux WSL 适用于 Linux 的 Windows 子系统是微软在Windows 10上提供的一项供用户快速运行Linux命令和工具的功能 相比前一代的WSL WSL 2提供更全的兼容性
  • 虚拟化与网络存储技术

    虚拟化技术简介 一 常见的虚拟化技术分类 1 CPU虚拟化 CPU的虚拟化技术是一种硬件方案 支持虚拟化技术的CPU带有特别优化过的指令集来控制虚拟过程 通过这些指令集 VMM会很容易提高性能 2 服务器虚拟化 服务器虚拟化能够通过区分资源
  • 西门子S7-1200 PLC选型前这些要了解

    西门子S7 1200PLC是西门子S7系列PLC产品中一员 S7系列产品包含有 S7 200 Smart 200 S7 1200 S7 300 S7 1500 S7 400等系列PLC 其中S7 200 Smart 200 S7 1200系
  • 数据集下载OTB,VOT,UAV,鸢尾花

    OTB数据集下载百度网盘链接 链接 https pan baidu com s 1snsJF 7Sw EbKtzdvLO1nw 提取码 ls23 VOT数据集下载百度网盘链接 链接 https pan baidu com s 1UiTG1z
  • 10款Visual Studio实用插件

    目录 前言 Visual Studio插件搜索 Visual Studio插件市场 ReSharper 付费 GitHub Copilot 付费 CodeMaid 免费 CSharpier 免费 Visual Studio Theme Pa
  • 电源学习总结(六)——BUCK设计

    降压型开关电源 BUCK 是实际应用中较为广泛使用的电路 本文来详细说一说相关的设计细节 这里不考虑集成的开关电源 分控制和驱动 开关管 电感等部分讲 文章目录 基本结构 控制和驱动 开关管 自举电容 电感 电容 工作频率选择 其他注意事项
  • 原理图中的电阻旁边有个”NC“,什么意思?

    NC表示此处空贴 即此处不贴任何电子器件 如果安装的话 电路会有另外的功能 或许在性能上会有变化 常用于电路板贴装技术中 电路板贴装是回流焊中的一种工艺流程 回流焊也叫再流焊 是伴随微型化电子产品的出现而发展起来的焊接技术 主要应用于各类表
  • 第二届网刃杯--部分Re

    1 freestyle ida中分析有个两个fun atoi 将字符转换为整数 得到答案为3327105 MD5加密提交 2 Re function 没有提供密码 但是在右边看到熟悉的89 50 利用winhex保存出来 得到解压密码 解压
  • 不能安装64位office提示已安装32位的

    问题描述 安装64位office办公软件的时候提示已经安装32位的office办公软件所以无法继续安装 但实际上之前安装的32位的office办公软件已经卸载了 问题现象截图如下 解决办法 从问题描述中 我们其实已经能够看出问题原因了 类似
  • Ant-Maven-Gradle

    make Makefile学习 peterYong 博客园 ant ant 工具 milkty 博客园 maven 学习Maven这一篇就够了 轻松的小希的博客 CSDN博客 学Maven 这篇万余字的教程 真的够用了 江南一点雨 博客园
  • 查看apk签名,查看key签名,adb常用命令

    在使用第三方sdk时经常要求绑定签名 这里提供两种查看签名的方式 如果只是想查看一下手机上应用的签名 那么可以安装一个app直接输入包名即可查看该应用的签名 提供一个微信的签名查看apk 下载连接http download csdn net
  • 突发!ITELLYOU要改版了!

    微信公众号 网管小贾 个人博客 www sysadm cc 经常下载Windows系统镜像的老司机中 我敢保证十之八九对 MSDN 我告诉你 这个网站再熟悉不过 可是对于新手小白们来说 这个站TA究竟是个啥 其实 MSDN 我告诉你 是个名
  • TRMF 辅助论文:最小二乘法复现TRMF

    1 目标函数 总 论文笔记 Temporal Regularized Matrix Factorization forHigh dimensional Time Series Prediction UQI LIUWJ的博客 CSDN博客 1
  • GitHub Action入门简介

    1 What is GitHub Actions GItHub Actions是一个持续集成和持续交付的平台 能够让你自动化你的编译 测试和部署流程 GitHub 提供 Linux Windows 和 macOS 虚拟机来运行您的工作流程
  • Freertos 在contexM0芯片上的移植

    1 freertos源码 官网下载地址 https www freertos org 下载LTS长期支持版本 2 在工程目录下新建FreeRTOS文件夹 将FreeRTOS 的源码添加到这个文件夹中 portable 文件夹中只需要复制 k
  • B2B公司如何寻找意向客户的联系方式?

    在B2B公司的营销过程中 少不了寻找意向客户的阶段 这也是销售过程中非常重要的一步 很多新人都是拿到客户联系方式 就直接打电话拜访 俗话说不打没有准备的仗 因此在拜访客户之前就应该做好功课 充分了解客户 这也是B2B业务场景下必做的一环 通
  • CleanMyMac X2024值不值得下载?

    macOS已经成为最受欢迎的桌面操作系统之一 它提供了直观 简洁的用户界面 使用户可以轻松使用和管理系统 macOS拥有丰富的应用程序生态系统 还可以与其他苹果产品和服务紧密协作 如iPhone iPad 用户可以通过iCloud同步和共享
  • FL Studio21.2.2963水果音乐软件安装

    FL Studio是功能强大的音乐制作解决方案 使用旨在为用户提供一个友好完整的音乐创建环境 让您能够轻松创建 管理 编辑 混合具有专业品质的音乐 一切的一切都集中在一个软件中 只要您想 只要您需要 它总能满足您的音乐需求 工具方面 包括强

随机推荐

  • c++静态代码扫描工具clang-tidy详细介绍

    clang tidy 文章目录 clang tidy 1 什么是clang tidy 2 clang tidy可以解决什么问题 3 工作原理 4 如何使用clang tidy 4 总结 5 举例说明 1 什么是clang tidy Clan
  • 十五年学不会英语的原因

    学习前预热 轻松学英语第一步 建立英语思维 为什么大家学英语学得这么累 最后依然对英语糊糊涂涂 原因只有一个 就是我们的学习能力太差了 我们的老师太笨了 这篇文章主要是给大家讲英语的基本结构 看了这篇文章 你们会突然就明白 英语怎么会如此简
  • 第19章:python自动化——ChromeOptions与WebUI实操

    目录 一 ChromeOptions设置项 二 WebUI实操 一 ChromeOptions设置项 浏览器在启动之初 如果需要对浏览器进行一些特定内容的定义 可以直接通过浏览器的options类来实现相对应的配置内容 不同的浏览器有不同的
  • Vue中如何配置自定义路径别名

    Vue中如何配置自定义路径别名 在我们日常开发中 常常会导入一些模块或者组件 如果采用相对路径的方式 import uEditor from components tools 会显得臃肿 多余 如果引用稍有差错就会出现 404的报错 不优雅
  • A Survey on Large Language Model based Autonomous Agents

    本文是LLM系列的文章 针对 A Survey on Large Language Model based Autonomous Agents 的翻译 基于大模型的自动agents综述 摘要 1 引言 2 基于LLM的自动代理构建 3 基于
  • 学网络安全都是一群什么人?

    大家好呀 我是知了姐 又是一期学员故事栏目 3月下旬知了堂信安方向开新班 知了姐跟着去采访 了解到新学员们的求学故事 嘿你别说 虽然大家出身专业不同 经历背景不同 如今却在同一个地点相遇 加入到知了堂这个大家庭 不同专业 年龄的他们 为什么
  • 格式工厂5.10.0版本安装

    目前格式工厂有很多 大多都可以进行视频转换 之前遇到一个用ffmpeg拉流保存的MP4在vlc和迅雷都无法正常播放的问题 发现视频长度不对 声音也不对 最后换到了格式工厂的格式播放器是可以正常播放的 格式工厂下载之家的地址 https ww
  • OSG for Android新手教程系列(二)——项目配置

    在上一篇教程中 主要介绍了如何把OSG源代码编译成为能够在Android项目下使用的函数库 在这一篇教程中 我将针对如何在自己的Android项目中配置OSG函数库进行详细讲解 现阶段网上关于OSGfor Android的配置方式教程有很多
  • 用户登录的详细流程(二)JWT生成token登录

    JWT生成token登录 1 jwt的构成 1 header 2 payload 3 signature 2 token的登陆原理 3 在实际中如何应用token 1 设置token的生成代码 2 如何从token中获取有用的信息 3 验证
  • 汇编程序设计与计算机体系结构软件工程师教程笔记:总结

    汇编程序设计与计算机体系结构 软件工程师教程 这本书是由Brain R Hall和Kevin J Slonka著 由爱飞翔译 中文版是2019年出版的 个人感觉这本书真不错 书中介绍了三种汇编器GAS NASM MASM异同 全部示例代码都
  • EC11旋转编码器、stm32f103驱动程序

    1 EC11手册的要点 注意 旋转的速度 RC滤波 手册中推荐的电路 已含有RC滤波 输出波形特点 2 硬件电路 加上RC滤波电路 做法是两个端点都采用10pF电容接地 10K 电阻接VCC 实测100pF电容也行 用示波器看看波形有无噪声
  • 无向图的遍历-BFS与DFS

    一 理论部分 无向图的遍历可用深度搜索 DFS 与广度搜索 BFS 深度搜索的基本方式是由图的一个节点1出发然后随机选一个与其相邻的节点2 接着在选择一个与其相邻的节点3 当一条路遍历完后再选择最近一个遍历过的 且相邻节点有未遍历过的节点
  • Unhandled kernel unaligned access问题记录

    调试新驱动出现如下打印 内核未对齐访问 765 810527 Unhandled kernel unaligned access 1 765 815483 CPU 0 PID 120 Comm insmod Tainted G O 3 10
  • 实习需求-sessionStorage实现对话框只弹出一次

    文章目录 背景 实现思路 实现代码 背景 某功能页面下线 需要提供一个弹窗来提示用户该功能已下线 要求 弹窗只是在进入该页面的时候显示 切换其他的页面再回到该页面 弹窗不显示 即弹窗只在第一次点击该功能页面出现 实现思路 弹窗 elemen
  • QT实战——LCDNumber计数器

    需求 通过LCDNumber进行计数 间隔时间1s 可以重置 暂停 widget h ifndef WIDGET H define WIDGET H include
  • python自动点击小程序

    猜你感兴趣 使用Pyqt5玩转ChatGpt 内网文件共享服务 快速搭建私有pip镜像源 python设计模式 创建型模式 docker搭建私有git服务器 项目备份和迁移 redis持久化方案 被测点击界面 新建counter html添
  • 获取电商网站主图和详情图的浏览器插件

    介绍 搞图宝 专门获取各大电商平台详情页面主图和详情图的浏览器插件 现已支持京东 京东国际 淘宝 天猫 coupang 1688 naver gmarket alibaba 兰亭集势 谷歌浏览器下载地址 Google Chrome 网络浏览
  • SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式

    W25Q32芯片是一个可以通过SPI 串行外围设备接口 操作的flash存储器 这篇文章备忘和总结一下英文版数据手册的一些解读 有关时序及具体用STC单片机编写程序的内容等下一篇文章 一 芯片引脚功能 我买的是8引脚 SOIC封装的芯片 如
  • MyBatis框架从入门到精通(一)MyBatis概述

    mybatis做为目前国内最为流行的开源orm框架 我们平时在使用时会感受到其带来的诸多便利 但是很少去深入分析 mybatis源码代码量不多 功能丰富 是一个很好的学习样例 本系列文章就和大家一起来学习mybatis框架 本系列笔记根据动
  • PSM+DID

    PSM DID 模型是由倾向得分匹配模型 Propensity Score Matching 以下简称 PSM 和双重差分模型 Differences in Differences 以下简称 DID 结合而成 其中 PSM 负责为受处理的个