查看原文
其他

广义倾向得分匹配GPSM实证数据, 代码和相关解读结果公开!

计量经济社群整理 计量经济圈 2022-05-11

凡是搞计量经济的,都关注这个号了

稿件:econometrics666@126.com

所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.

之前,引荐过“广义PSM,连续政策变量因果识别的不二利器”,并且在里面附上了代码和相关解读。不过,要更好地理解GPSM的识别流程和回归结果,还需要结合相关文章和现实数据去操作。基于此,今天为大家推荐一篇使用GPSM的实证文章(在文后),并附上了数据、代码等全套资料供下载使用。

广义倾向得分匹配的代码如下:

**********************************************************************

/*Basic Analysis: Save the observations both in 2010  2012 and 2013*/

**********************************************************************

clear all

set memory 4g

cd C:\Users\fu64\Desktop\广义倾向得分匹配\data

use basic_2010.dta,clear

/*Samples Cleaning*/

keep if export_1!=. & export_2!=. & export_3!=.

gen export_avg=(export_1+export_2+export_3)/3

/*Key Varable: size as treatment var*/

/*Find 99% of size and use it for standardization*/

gen treat=size/gross_value

drop if treat==.

replace treat=1 if treat>1

/*Cutpoints*/

gen cut=0.031 if treat<=0.031

replace cut=0.068 if treat>0.031 & treat<=0.068

replace cut=0.124 if treat>0.068 & treat<=0.124

replace cut=0.440 if treat>0.124 & treat<=0.440

replace cut=1 if treat>0.440 & treat<=1 

/*Next choose represantitive treatment-level*/

matrix tp=J(101,1,0)

scalar j=0

forvalues i=1/101{

mat tp[`i',1]=j

scalar j=j+0.01

}

*************************************************

xi i.ind_code2d i.area 

*************************************************

doseresponse2 lgross_value lnk tfp finan age ex RD subsidy NZ _I*, outcome(export_avg) ///

              t(treat) gpscore(gps) predict(t_hat) sigma(sd) cutpoints(cut) index(mean) ///

  nq_gps(4) flag_b(0) dose_response(dose_res) reg_type_t(cubic) reg_type_gps(cubic) ///

  family(bin) link(logit) tpoints(tp) bootstrap(yes) boot_reps(100) analysis(yes) ///

  analysis_level(0.95) filename("output_avg_cubic_boostap_2010") ///

  graph("graph_avg_cubic_boostrap_2010") 

******************************************************

/*Case 1:Lage 1 period */

******************************************************

clear all

set memory 4g

use basic_2010.dta,clear

/*Samples Cleaning*/

keep if export_1!=.

/*Key Varable: size as treatment var*/

/*Find 99% of size and use it for standardization*/

gen treat=size/gross_value

drop if treat==.

replace treat=1 if treat>1

/*Cutpoints*/

gen cut=0.0316 if treat<=0.0316

replace cut=1 if treat>0.0316 & treat<=1 

/*Next choose represantitive treatment-level*/

matrix tp=J(101,1,0)

scalar j=0

forvalues i=1/101{

mat tp[`i',1]=j

scalar j=j+0.01

}

*************************************************

xi i.ind_code2d i.area 

*************************************************

doseresponse2 lgross_value lnk tfp finan age ex RD subsidy NZ _I*, outcome(export_1)///

              t(treat) gpscore(gps) predict(t_hat) sigma(sd) cutpoints(cut) index(mean) ///

  nq_gps(8) flag_b(0) dose_response(dose_res) reg_type_t(cubic) reg_type_gps(cubic)///

  family(bin) link(logit) tpoints(tp) filename("output_lag1_cubic_2010")///

  graph("graph_lag1_cubic_2010") 

*************************************************

/*Case 2: lage 2 period */

clear all

set memory 4g

use basic_2010.dta,clear

/*Samples Cleaning*/

keep if export_2!=.

/*Key Varable: size as treatment var*/

/*Find 99% of size and use it for standardization*/

gen treat=size/gross_value

drop if treat==.

replace treat=1 if treat>1

/*Cutpoints*/

gen cut=0.0095 if treat<=0.0095

replace cut=1 if treat>0.0095 & treat<=1 

/*Next choose represantitive treatment-level*/

matrix tp=J(101,1,0)

scalar j=0

forvalues i=1/101{

mat tp[`i',1]=j

scalar j=j+0.01

}

*************************************************

xi i.ind_code2d i.area 

*************************************************

doseresponse2 lgross_value lnk tfp finan age ex RD subsidy NZ _I*, outcome(export_2)///

              t(treat) gpscore(gps) predict(t_hat) sigma(sd) cutpoints(cut) index(mean)///

  nq_gps(8) flag_b(0) dose_response(dose_res) reg_type_t(cubic) reg_type_gps(cubic)///

  family(bin) link(logit) tpoints(tp) filename("output_lag2_cubic_2010") ///

  graph("graph_lag2_cubic_2010")

*************************************************

/*Case 3: Lag 3 period*/

clear all

set memory 4g

use basic_2010.dta,clear

/*Samples Cleaning*/

keep if export_3!=.

/*Key Varable: size as treatment var*/

/*Find 99% of size and use it for standardization*/

gen treat=size/gross_value

drop if treat==.

replace treat=1 if treat>1

/*Cutpoints*/

gen cut=0.0295 if treat<=0.0295

replace cut=1 if treat>0.0295 & treat<=1 

/*Next choose represantitive treatment-level*/

matrix tp=J(101,1,0)

scalar j=0

forvalues i=1/101{

mat tp[`i',1]=j

scalar j=j+0.01

}

*************************************************

xi i.ind_code2d i.area 

*************************************************

doseresponse2 lgross_value lnk tfp finan age ex RD subsidy NZ _I*, outcome(export_3)///

              t(treat) gpscore(gps) predict(t_hat) sigma(sd) cutpoints(cut) index(mean)///

  nq_gps(8) flag_b(0) dose_response(dose_res) reg_type_t(cubic)///

  reg_type_gps(cubic) family(bin) link(logit) tpoints(tp)///

  filename("output_lag3_cubic_2010") graph("graph_lag3_cubic_2010")

****************************************************************************************

/*Rgmediation Regression: Mechanism Check */

clear all

set memory 4g

use Check_2010.dta,clear 

/*Samples Cleaning*/

keep if export_1!=. & export_2!=. & export_3!=.

gen export_avg=(export_1+export_2+export_3)/3

********************************************

/*Using tfp_1 as Innovation Proxy*/

sgmediation export_avg if treat<=0.6,mv(tfp_1)iv(treat) cv(lgross_value lnk tfp finan age EX RD Sub NZ _I*) 


长按以上二维码即可提取广义倾向得分匹配的文章、数据和代码

Source:康志勇,张宁,汤学良,刘馨.“减碳”政策制约了中国企业出口吗[J].中国工业经济,2018(09):117-135.
关于PSM及matching方法

1. PSM倾向匹配Stata操作详细步骤和代码,干货十足,2.处理效应模型选择标准,NNM和PSM,赠书活动,3.PSM和马氏匹配已淘汰, '遗传匹配'成因果推断匹配之王,4.PSM, RDD, Heckman, Panel模型的操作程序, selective文章精华系列,5.广义PSM,连续政策变量因果识别的不二利器,6.PSM-DID, DID, RDD, Stata程序百科全书式的宝典,7.在教育领域使用IV, RDD, DID, PSM多吗? 使用具体References,8.分位数DID, PSMDID, 政策前协变量平衡性检验操作步骤和案例,9.逐年匹配的PSM-DID操作策略, 多时点panel政策评估利器,10.执行PSM的标准操作步骤, 不要再被误导了,11.PSM匹配后如何保留配对样本? 1:1, 1:4或更多情况呢?12.逐年PSM匹配后再DID识别因果的实证范文, 这就是逐年PSM-DID的操作范式!13.英诺丁汉大学校长为你讲解逐年PSM匹配-DID方法的操作, 并配上自己写的一篇范文!14.内生性问题和倾向得分匹配, 献给准自然试验的厚礼,15.粗化精确匹配CEM文献推荐, 程序步骤可复制,16.DID, 合成控制, 匹配, RDD四种方法比较, 适用范围和特征,17.匹配方法(matching)操作指南, 值得收藏的16篇文章,18.中国工业企业数据库匹配160大步骤的完整程序和相应数据,19.Match匹配估计做敏感性检验的最新方法, 让不可观测变量基础上的选择无处遁形,20.无需检查协变量平衡性的CEM匹配, 到底有多神气和与众不同,21.因果推断中的匹配方法:最全回顾和前景展望,22.内生性问题和倾向得分匹配, 献给准自然试验的厚礼,23.倾向值匹配与因果推论,史上最全面精妙的锦囊,24.匹配还是不匹配?这真是个值得考虑的问题,25.匹配比OLS究竟好在哪里?这是一个问题,26.倾向匹配分析深度(Propsensity matching analysis)

下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。

2.5年,计量经济圈近1000篇不重类计量文章,

可直接在公众号菜单栏搜索任何计量相关问题,

Econometrics Circle




数据系列空间矩阵 | 工企数据 | PM2.5 | 市场化指数 | CO2数据 |  夜间灯光 | 官员方言  | 微观数据 | 内部数据计量系列匹配方法 | 内生性 | 工具变量 | DID | 面板数据 | 常用TOOL | 中介调节 | 时间序列 | RDD断点 | 合成控制 | 200篇合辑 | 因果识别 | 社会网络 | 空间DID数据处理Stata | R | Python | 缺失值 | CHIP/ CHNS/CHARLS/CFPS/CGSS等 |干货系列能源环境 | 效率研究 | 空间计量 | 国际经贸 | 计量软件 | 商科研究 | 机器学习 | SSCI | CSSCI | SSCI查询 | 名家经验计量经济圈组织了一个计量社群,有如下特征:热情互助最多前沿趋势最多、社科资料最多、社科数据最多、科研牛人最多、海外名校最多。因此,建议积极进取和有强烈研习激情的中青年学者到社群交流探讨,始终坚信优秀是通过感染优秀而互相成就彼此的。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存