多时点DID实证流程笔记(Aggregate Effects from Public Works: Evidence from India)

news2024/10/7 20:28:45
  • 文章、数据及stata代码来源:
链接:https://pan.baidu.com/s/1nBvlYGXkV7ednEx93ge1ZQ 
提取码:vs5q
  • 本文进行的平行趋势检验、异质性检验均与大部分中文文献的处理方式不同,以及Bacon分解的方法对交叠did的潜在偏误进行诊断的做法也是比较新颖的。
  • 另外,我也是才接触多时点did模型,大家可以对这篇笔记继续补充,如果能将补充或发现错误的地方告诉我,那就更好了!!!!

前言

  • 文章选题大致背景:评估2006-2008年分三批实施的NREGS政策效应。
  • 在看这篇文章之前,最好先下载:王锋,葛星.低碳转型冲击就业吗——来自低碳城市试点的经验证据[J].中国工业经济,2022,(05):81-99.这篇工业经济的文章运用的也是多时点DID模型,但是在模型的处理上与这篇英文文章存在较大差异。
  • 数据结构:这里的政策变量是nregs,如果某个街区受到受到了政策影响,则取值为1,否则取值为0;nr06表示街区是否受到06年政策影响的二值虚拟变量,nr07表示是否受到07年政策影响的二值虚拟变量,nr08表示是否受到08年政策影响的二值虚拟变量。
    在这里插入图片描述

对三组处理组的描述性统计分析

  • On average, wave one and two districts are poorer than wave three districts, meaning earlier districts are poorer.

表格呈现

  • 由附录表1知,
/*** APPENDIX ***
*********************
*** Summary Stats ***
*********************
*full sample
sum avglt
sum avglt if year<2006
sum avglt if year>=2006
sum nr06 nr07 nr08 if year==2006

*restricted sample
sum avglt if wage!=.
sum avglt if year<2006 & wage!=.
sum avglt if year>=2006 & wage!=.
sum nr06 nr07 nr08 if year==2006 & wage!=.

sum rggvy wage outputwage state_frac if year==2006
sum wage outputwage state_frac if nr06==1 & year==2006
sum wage outputwage state_frac if nr07==1 & year==2006
sum wage outputwage state_frac if nr08==1 & year==2006
  • 上面的代码,笔者不知道怎么能够得出wave3的平均的经济发展水平高于wave1和wave2的。
  • 笔者认为应该用下面代码来得出此结论,在政策开始实施时(2006年),平均来看,wave3确实比wave1和wave2的经济发展水平(这里用街区夜间平均灯光数来表示)。

在这里插入图片描述

图表呈现

*** Fig. 1a: Mean by Wave ***
*****************************
set scheme s1mono //设置图片的主题

bysort year: egen avglt_06 = mean(avglt) if year>=2000 & nr06==1
bysort year: egen avglt_07 = mean(avglt) if year>=2000 & nr07==1
bysort year: egen avglt_08 = mean(avglt) if year>=2000 & nr08==1

label var avglt_06 "Wave 1"
label var avglt_07 "Wave 2"
label var avglt_08 "Wave 3"

twoway (scatter avglt_06 year) (scatter avglt_07 year) (scatter avglt_08 year), xtitle(Year) ytitle(Avg. Night-time Light Index) ylabel(0(2)10) xlabel(2000(2)2014) xline(2006)

在这里插入图片描述

  • 从上图可以清晰的看到在样本期间,wave3每一年的街区平均灯光数都高于wave1和wave2,证实了前面的表格得出的结论。

基准回归模型

在这里插入图片描述

  • 上述多时点DID模型与一般文章中的模型不同之处体现在如下地方:
  • 1.在固定效应的控制上:一般文章控制的固定效应都是个体固定效应和时间固定效应,即双向固定效应,但是这里每个模型控制的个体固定效应(街区(sno)层面)和州层面(st)*year的双向交互固定效应;关于双向交互固定效应,参考文章:
    【香樟推文2497】交叠DID偏误的原因、诊断和解决?你感兴趣的都在这
  • 2.在控制变量的处理上:一般文章都是将控制变量本身作为控制变量,这里选择将这些变量与年度/季度变量的交互项作为控制变量。
  • 具体变化如Table1所示:
local pre "i.year#c.wage i.year#c.outputwage i.year#c.state_frac"
***********************************************
*** Table 1, Panel A. Base Analysis: Lights ***
***********************************************

*col. 1
reghdfe std_lt nregs , absorb(sno year#st) cluster(sno)
local b1 = _b[nregs]

*col. 2
reghdfe std_lt nregs i.year#c.dlt00_05 i.year#i.rggvy , absorb(sno year#st) cluster(sno)
local b2 = _b[nregs]

*col. 3
reghdfe std_lt nregs if wage!=., absorb(sno year#st) cluster(sno)
local b3 = _b[nregs]

*col. 4
reghdfe std_lt nregs i.year#c.dlt00_05 i.year#i.rggvy if  wage!=., absorb(sno year#st) cluster(sno)
local b4 = _b[nregs]

*col. 5
reghdfe std_lt nregs i.year#c.dlt00_05 i.year#i.rggvy `pre', absorb(sno year#st) cluster(sno)
local b5 = _b[nregs]

在这里插入图片描述
在这里插入图片描述

关于代码中#的含义,参考:https://blog.csdn.net/arlionn/article/details/80818984

平行趋势检验1

观察法。

  • 首先查看了受到不同时间影响的街区的yit在样本期间的平均变化趋势,结果表明,在06年之前,三组不同样本的变化趋势没有显著变化,从直观上看是满足平行趋势假设的。
local pre "i.year#c.wage i.year#c.outputwage i.year#c.state_frac"


*****************************
*** Fig. 1a: Mean by Wave ***
*****************************
set scheme s1mono

bysort year: egen avglt_06 = mean(avglt) if year>=2000 & nr06==1
bysort year: egen avglt_07 = mean(avglt) if year>=2000 & nr07==1
bysort year: egen avglt_08 = mean(avglt) if year>=2000 & nr08==1

label var avglt_06 "Wave 1"
label var avglt_07 "Wave 2"
label var avglt_08 "Wave 3"

twoway (scatter avglt_06 year) (scatter avglt_07 year) (scatter avglt_08 year), xtitle(Year) ytitle(Avg. Night-time Light Index) ylabel(0(2)10) xlabel(2000(2)2014) xline(2006)

在这里插入图片描述

系数法。

在这里插入图片描述
在这里插入图片描述

将第三批试点政策确定的街区作为对照组

*** Fig. 2a: Event Figure, Early Waves ***
******************************************
gen wave1=nr06
gen wave2=nr07
gen wave3=nr08
tab year, gen(yr)

*store wave 1 results
forvalues i=1/14{
gen w`i'=0 if wave1~=.
	replace w`i'=1 if wave1==1 & yr`i'==1
	
gen x`i'=0 if wave2~=.
	replace x`i'=1 if wave2==1 & yr`i'==1
}

*omit 2006
replace w6=0 if wave1~=.
replace x6=0 if wave2~=.


*estimation
reghdfe std_lt w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14, absorb(sno year#st) cluster(sno)

*store
estadd ysumm
eststo lights_w1

drop w1-w14 x1-x14


*store wave 2 results
forvalues i=1/14{
gen w`i'=0 if wave2~=.
	replace w`i'=1 if wave2==1 & yr`i'==1
	
gen x`i'=0 if wave1~=.
	replace x`i'=1 if wave1==1 & yr`i'==1
}

*omit 2006
replace w6=0 if wave2~=.
replace x6=0 if wave1~=.


*estimation
reghdfe std_lt  w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14, absorb(sno year#st) cluster(sno)

*store
estadd ysumm
eststo lights_w2



*label years
forvalue i=1/14{
local j = 1999+`i'
label var w`i' "`j'"
}


set scheme s1mono //设置绘图模板https://blog.csdn.net/weixin_39611308/article/details/111373344
coefplot (lights_w1, label("Wave 1")) (lights_w2, label("Wave 2")), keep(w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14) vertical ytitle(Coefficient on Wave*Year)   ylabel(-.5(.1).5) xlabel(,labsize(small)) yline(0) levels(95) ciopts(lpattern(dash)) omitted baselevels ///
     groups(w1 w2 w3 w4 w5 w6 = `""{bf:Pre-Rollout}" "(No Districts)""'        ///
            w7 w8 w9 = `""{bf:Rollout}" "(Early Districts)""'                      ///
            w10 w11 w12 w13 w14    = `""{bf:Post-Rollout}" "(All Districts)""')

在这里插入图片描述

将一二批街区作为对照组

drop w1-w14 x1-x14

forvalues i=1/14{
gen w`i'=0 if wave3~=.
	replace w`i'=1 if wave3==1 & yr`i'==1
}

*omit 2005
replace w6=0 if wave3~=.


reghdfe std_lt  w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14   , absorb(sno year#st) cluster(sno)

estadd ysumm
eststo lights_w3

*label years
forvalue i=1/14{
local j = 1999+`i'
label var w`i' "`j'"
}

*figure output
coefplot (lights_w3, label("Wave 3")) , keep(w*) vertical ytitle(Coefficient on Wave*Year)  ylabel(-.5(.1).5) xlabel(,labsize(small)) yline(0) levels(95) ciopts(lpattern(dash)) omitted baselevels ///
     groups(w1 w2 w3 w4 w5 w6 = `""{bf:Pre-Rollout}" "(No Districts)""'        ///
            w7 w8 w9 = `""{bf:Rollout}" "(Early Dist.)""'                      ///
            w10 w11 w12 w13 w14   = `""{bf:Post-Rollout}" "(All Districts)""') 

在这里插入图片描述

  • 上面的结果表明,
    在这里插入图片描述

平行趋势检验2

  • 观察政策实施前(2000-2005)的平均街区灯光的增长速度nr08和nr07\nr06之间有无显著差别:
  • 结果表明虽然nr08组在2000-2005之间的平均夜间灯光数量显著高于其他两个组别,但是夜间灯光数量增长速度无显著差别,满足平行趋势检验。
*** App Table 2, Panel A.  Association with levels, not trend ***
*****************************************************************
egen std_premean_lt = std(pre_meanlt) //取标准误的意义何在呢
egen std_pregrowth_lt = std(dlt00_05)
**pre-period mean
*col. 1
reghdfe std_premean_lt nr08 if year==2000, absorb(st) cluster(st)
*col. 2
reghdfe std_premean_lt nr08 if year==2000 & wage!=., absorb(st) cluster(st)
**pre-period growth
*col. 3
reghdfe std_pregrowth_lt nr08 if year==2000, absorb(st) cluster(st)
*col. 4
reghdfe std_pregrowth_lt nr08 if year==2000 & wage!=., absorb(st) cluster(st)

异质性检验

  • 这篇论文做异质性检验主要是为了验证这项政策的政策效果在更贫困的街区是否效果更糟?
  • 这篇论文并不是进行分样本(将样本分为nr06,nr07,nr08)回归来进行异质性检验,而是通过nr06,nr07,nr08样本对nreg的政策效果的调节作用来实现的。
    在这里插入图片描述
    在这里插入图片描述

稳健性检验

缩短样本区间

在这里插入图片描述

剔除其他政策的影响

  • 将受到其他政策影响的样本剔除,再进行基准回归和异质性分析。

Bacon分解

  • 暂时未看懂如何得出的如下结论。
    在这里插入图片描述
*** Appendix Figures: Goodman-Bacon Decompositions ***
******************************************************
xtset sno year
*App Fig. 1: GB Decomposition, All Waves
bacondecomp std_lt nregs, ddetail
*App. Fig. 2a: GB Decomposition: 2006 & 2007
preserve 
drop if nr08==1
bacondecomp std_lt nregs, ddetail
restore

**App. Fig. 2b: GB Decomposition: 2007 & 2008
preserve 
drop if nr06==1
bacondecomp std_lt nregs, ddetail
restore

*App. Fig. 2c: GB Decomposition: 2006 & 2008
preserve 
drop if nr07==1
bacondecomp std_lt nregs, ddetail
restore
  • 进一步学习的参考网址:https://zhuanlan.zhihu.com/p/442004803

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

林业数字孪生打造实时树木“管家”

数字孪生是物联网、人工智能、虚拟现实、云计算等技术高度融合的综合性集成技术&#xff0c;主要目的是进行数字模型的智能分析、预测&#xff0c;为实体提供决策支持。林业数字孪生应用是智慧林业的具体实现手段&#xff0c;服务于智慧林草的业务需求&#xff0c;从而实现实体…

C语言#include的用法详解(文件包含命令)

#include叫做文件包含命令&#xff0c;用来引入对应的头文件&#xff08;.h文件&#xff09;。#include 也是C语言预处理命令的一种。 #include 的处理过程很简单&#xff0c;就是将头文件的内容插入到该命令所在的位置&#xff0c;从而把头文件和当前源文件连接成一个源文件&…

AI-多模态-2021:FILIP【一种基于交互的细粒度图文预训练模型】

前言 FILIP&#xff08;Fine-grained Interactive Language-Image Pretrain&#xff09;是一种基于交互的细粒度图文预训练模型&#xff0c;用于解决图文双塔匹配模型中的细粒度匹配问题。本文对该论文进行阅读笔记&#xff0c; 论文&#xff1a;https://arxiv.org/abs/2111.…

【C#基础教程】第二十章、事件

目录 事件 1.事件 2.扩展EventArgs类 事件 1.事件 事件的组成&#xff1a;事件由事件发布者和事件订阅者组成。事件内包含一个私有委托。 当事件发布时&#xff0c;事件发布者会发布消息、而事件订阅者会接受到事件已发生的通知&#xff0c;并作出相应的处理。 其中&#xf…

计算机研究生就业方向之考编

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么&#xff0c;如果你只是转码&#xff0c;那么你不一定要考研&#xff0c;至少以下几个职位研究生是没有啥优势的&#xff1a; 1&#xff0c;软件测试工程师&#xff08;培训一下就行&#xff09; 2&#xff0c;前…

MyBatis的缓存机制

文章目录1 MyBatis的一级缓存1.1 演示1.2 使一级缓存失效的四种情况2 MyBatis的二级缓存2.1 演示2.2 使二级缓存失效的情况&#xff1a;2.3 二级缓存的相关配置&#xff08;了解即可&#xff09;3 MyBatis缓存查询的顺序1 MyBatis的一级缓存 一级缓存是SqlSession级别的&#…

【vue加载16秒优化到2秒】Vue3加载慢的性能优化,打包后页面静态资源chunk-vendors文件过大加载慢响应慢

【写在前面】基于自己之前做vue3项目的时候发现了一个致命的问题&#xff0c;项目部署好了&#xff0c;但是加载起来反应慢半天&#xff0c;控制台一看才发现&#xff0c;有个chunk-vendors的js文件加载了十几秒&#xff0c;这无非是页面体验差到爆炸。今天就针对打包后静态资源…

【密码学基础】混淆电路(Garbled Circuit)

1 概念 混淆电路是一种密码学协议&#xff0c;以实现安全多方计算&#xff08;MPC&#xff09;。场景是当多个通信方需要共同输入数据&#xff0c;然后通过同一个函数计算出一个结果&#xff0c;但是&#xff0c;各个通信方都不允许其他人知道自己的输入是什么。混淆电路就能很…

MySQL错误码大全

MySQL的所有错误码可以从MySQL官网查看。 1.MySQL地址 首页网址 2.文档地址 以此点击如下标志。 MySQL8.0文档地址 3.错误码地址 服务码官网地址 点进去之后&#xff0c;可以看到&#xff1a; 分为三大类&#xff1a; Server Error Message ReferenceClient Error Mes…

Java大型建筑建设综合工程项目管理系统源码带原生APP源码 工程管理系统源码 Java手机端工程项目管理系统源码带客户端操作手册

客户端下载&#xff1a; 1、安卓手机端 先下载“PP助手”应用商店&#xff0c;再在PP助手中搜索“star工程”下载安装。 2、苹果手机端 苹果手机APPstore中搜索“star工程”下载安装。 建设综合工程项目管理系统&#xff0c;让公司业务管理实现可记录&#xff0c;可追踪&#…

数字图像处理(入门篇)七 图像数据预处理之灰度变化

目录 一 常用操作 1 反转 2 对比度增强 3 对比度压缩 4 伽马矫正 二 实践 1 反转、对比度增强和对比度压缩 (1) 代码 (2) 结果图 2 伽马矫正 (1) 代码 (2) 结果图 (3) 结论 (4) np.power函数 图像灰度变换&#xff1a;将原始图像中的每一个点的灰度值&#xff0c…

尚医通 (三十三) -------- 阿里云OSS、用户认证与就诊人

目录一、阿里云 oss1. 开通 对象存储 OSS 服务2. 使用 SDK 文档3. 文件服务实现搭建 service-oss 模块测试SDK封装 service 接口封装 controller 接口二、用户认证1. 需求分析2. api 接口3. 前端4. 预约挂号页面调整三、就诊人管理1. 需求分析2. api 接口3. 前端四、平台用户管…

最新阿里云服务器和GPU服务器长期优惠活动价格表

阿里云服务器优惠活动是长期的&#xff0c;在12月优惠活动大促期间云服务器价格会有所调整&#xff0c;主机教程网现在给大家分享最新的阿里云服务器优惠活动价格表。现在阿里云双十一优惠活动刚刚结束&#xff0c;随之而来的就是双12优惠活动&#xff0c;关于阿里云服务器、对…

camunda入门教程及实现原理

1、camunda简介 1、介绍&#xff1a; Camunda是一种工作流引擎。 Camunda BPM 是一个轻量级、开源灵活的工作流框架&#xff0c;是由Java开发的一个纯Java库。它的核心是一个在Java虚拟机内部运行的原生BPMN 2.0流程引擎&#xff0c;因此它可以嵌入到任何Java应用程序或运行时…

Linux 添加环境变量的两种方法 exprot 临时法 vi /etc/profile永久法

编写一个shell脚本之后&#xff0c;怎么可在任意目录运行改脚本呢&#xff1f;为什么别人写的脚本可以直接运行&#xff0c;自己写的脚本就会出现 -bash: XXXXX.sh: command not found 这样的错误呢&#xff1f; 1、举例验证&#xff0c;先新建一个HelloWorld的shell脚本&…

Alibaba 工具型技术系列,实战技术针对于项目中常用的 Excel 操作指南

ExcelIgnoreUnannotated 默认不加 ExcelProperty 的注解的都会参与读写&#xff0c;加了不会参与 通用参数 ReadWorkbook,ReadSheet 都会有的参数&#xff0c;如果为空&#xff0c;默认使用上级。 converter 转换器&#xff0c;默认加载了很多转换器。也可以自定义。 rea…

emlog模板开发基础2022最新指南

emlog模板的开发基础指南,如果想要开发emlog的模板,你必须知道那些开发内容呢&#xff1f;下面将介绍分析emlog5下的模板基本结构以及基本变量、函数的作用。 首先我们用该知道emlog的模板是位于根目录content\templates\文件夹下,每个模板都是一个单独的文件夹,文件夹以模板名…

[附源码]JAVA毕业设计-英杰学堂网上教学平台-(系统+LW)

[附源码]JAVA毕业设计-英杰学堂网上教学平台-&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项…

一道关于Vue的数据绑定和依赖收集的面试题

概要 分享一道Vue的面试题&#xff0c;该题涉及Vue的响应式数据绑定和依赖收集&#xff0c;希望可以加深大家对Vue原理的理解。 题面 有如下html和JS&#xff0c;要求使用Vue的响应式数据原理和依赖收集原理&#xff0c;实现createApps和ref方法。只能使用原生JS&#xff0c…

教育的本质——采用不同学习方式,学习者在两周后还能记住的内容有多少

目录 一、学习金字塔模型 二、学习曲线 三、左右脑交替学习法 一、学习金字塔模型 “学习金字塔模型”&#xff0c;人们学习的效率一共分为七个层次&#xff1a; 第一层 ~ 第四层&#xff1a;这是我们最熟悉不过的形式&#xff0c;在学生时代&#xff0c;老师在上面讲课、…