实证论文复刻|stata安慰剂检验

这篇具有很好参考价值的文章主要介绍了实证论文复刻|stata安慰剂检验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章及代码来源:中国工业经济《税收征管数字化与企业内部薪酬差距》

目录

随机抽取对照组和实验组

随机设定政策时点

先po完整代码

*随机抽取对照组和控制组
forvalue i=1/500{
    sysuse 数据1.dta, clear 
    g obs_id= _n //初始样本序号
    gen random_digit= runiform() //生成随机数
    sort random_digit  //按新生成的随机数排序
    g random_id= _n  //产生随机序号
    preserve
        keep random_id gtp //保留虚拟的gtp
        rename gtp random_gtp
        rename random_id id //重命名为id,以备与其他变量合并(merge)
        label var id 原数据与虚拟处理变量的唯一匹配码
        save random_gtp, replace
    restore 
        drop random_digit random_id gtp //删除原来的gtp
        rename obs_id id //重命名为id,以备与random_rd合并(merge)
        label var id 原数据与虚拟处理变量的唯一匹配码
        save rawdata, replace 
    *- 合并,回归,提取系数
        use rawdata, clear
        merge 1:1 id using random_gtp,nogen
        xtreg gap random_gtp size lev roa labor age cash indratio top1 soe olddep avgwage lnpgdp i.year i.ind i.prov,fe vce(cluster code)
         g _b_random_gtp= _b[random_gtp]  //提取x的回归系数
        g _se_random_gtp= _se[random_gtp] //提取x的标准误
		gen pvalue=2*ttail(e(df_r), abs(_b[random_gtp]/_se[random_gtp]))
        keep _b_random_gtp _se_random_gtp pvalue
        duplicates drop _b_random_gtp, force
		drop if pvalue ==.
        save placebo`i', replace  //把第i次placebo检验的系数和标准误存起来				
}
*- 纵向合并500次的系数和标准误 
use placebo1, clear
forvalue i=2/500{
    append using placebo`i' //纵向合并500次回归的系数及标准误
    }
rename  _b_random_gtp coef1
twoway (kdensity coef1,yaxis(1)) (scatter pvalue coef1, msymbol(smcircle_hollow) yaxis(2)  mcolor(blue)), ///
title(Placebo Test) ///
xlabel(-0.13(0.05)0.06) ylabel(,axis(1) angle(0)) ylabel(0(1)5,axis(2)) ///
xline(-0.1152, lwidth(vthin) lp(shortdash)) xtitle(估计系数) ///
xline(0,lwidth(vthin) lp(shortdash)) ///
yline(0.1,lwidth(vthin) lp(dash)) ytitle(p value) ///
legend(label(1 'kdensity of estimates') label( 2 'p value')) ///
plotregion(style(none)) ///无边框
graphregion(color(white)) //白底
*-删除临时文件
forvalue i=1/500{
    erase  placebo`i'.dta 
} 

*随机设定政策时点
mat b = J(500,1,0)
mat se = J(500,1,0)
mat p = J(500,1,0)
forvalues i = 1/500{
	use 数据1.dta, clear
	xtset code year
	bsample 1, strata(province) //根据**id**分组,每组随机抽取一个年份
	keep year
	save matchyear.dta, replace
	mkmat year, matrix(sampleyear)
	use 数据1.dta, clear
	xtset code year
	gen DID = 0
	foreach j of numlist 1/36 {
		replace DID = 1 if (province== `j' & year >= sampleyear[`j',1])
	}
	qui xtreg gap DID size lev roa labor age cash indratio top1 soe olddep avgwage lnpgdp i.year i.ind i.prov,fe vce(cluster code)
	mat b[`i',1] = _b[DID]
	mat se[`i',1] = _se[DID]
	scalar df_r = e(N) - e(df_m) -1
	mat p[`i',1] = 2*ttail(df_r,abs(_b[DID]/_se[DID]))
}
svmat b, names(coef)
svmat se, names(se)
svmat p, names(pvalue)

drop if pvalue1 == .
label var pvalue1 p值
label var coef1 估计系数
twoway (kdensity coef1,yaxis(1)) (scatter pvalue1 coef1, msymbol(smcircle_hollow) yaxis(2)  mcolor(blue)), ///
title(Placebo Test) ///
xlabel(-0.2(0.05)0.2) ylabel(,axis(1) angle(0)) ylabel(0(1)5,axis(2)) ///
xline(-0.1152, lwidth(vthin) lp(shortdash)) xtitle(估计系数) ///
xline(0,lwidth(vthin) lp(shortdash)) ///
yline(0.1,lwidth(vthin) lp(dash)) ytitle(p value) ///
legend(label(1 'kdensity of estimates') label( 2 'p value')) ///
plotregion(style(none)) ///无边框
graphregion(color(white)) //白底

随机抽取对照组和实验组

接下来逐一解读:

forvalue表示循环

sysuse表示使用xx数据,和use区别参考stata中 sysuse和use区别 - 知乎

简单来说use调用数据时,需要加上路径,而sysuse不用。

 g obs_id= _n //初始样本序号

 表示生成序号,按照列表依次递增,如图:

stata安慰剂检验,stata论文复刻笔记,python,人工智能,算法

gen random_digit= runiform() //生成随机数

每一列随机生成,如图 

stata安慰剂检验,stata论文复刻笔记,python,人工智能,算法

sort random_digit  //按新生成的随机数排序

 结果如图:

stata安慰剂检验,stata论文复刻笔记,python,人工智能,算法

 g random_id= _n  //产生随机序号

stata安慰剂检验,stata论文复刻笔记,python,人工智能,算法

 preserve
        keep random_id gtp //保留虚拟的gtp
        rename gtp random_gtp
        rename random_id id //重命名为id,以备与其他变量合并(merge)
        label var id 原数据与虚拟处理变量的唯一匹配码
        save random_gtp, replace
    restore

 preserve……restore

详细可参考:preserve restore——stata的起死回生之术

preserve 命令可以把之前的内容保存在一个临时内存空间中,这样保存的文件,无论 preserve 以后我们对文件进行什么操作,都可以随时通过restore将preserve命令之前的文件恢复到内存中,继续使用。

keep random_id gtp //保留虚拟的gtp

keep表示保留变量

stata安慰剂检验,stata论文复刻笔记,python,人工智能,算法

merge 1:1 id using random_gtp,nogen

merge1:1(merge1:m或merge m:1或merge m:n) 变量 using 数据集2

如果两个数据中的某变量的数据都是唯一的,则用1:1,;

如果数据1中某变量的数据有多个,而数据2中某变量的数据是唯一的,则用merge m:1;

如果数据1中某变量的数据是唯一的,而数据2中某变量的数据有多个,则用merge 1:m;

如果数据1和2中某变量的数据均有多个,则用merge m:n

nogen的含义就是不生成 _merge这个变量

twoway (kdensity coef1,yaxis(1)) (scatter pvalue coef1, msymbol(smcircle_hollow) yaxis(2)  mcolor(blue)), ///
title("安慰剂检验") ///
xlabel(-0.13(0.05)0.06) ylabel(,axis(1) angle(0)) ylabel(0(1)5,axis(2)) ///
xline(-0.1152, lwidth(vthin) lp(shortdash)) xtitle(估计系数) ///
xline(0,lwidth(vthin) lp(shortdash)) ///
yline(0.1,lwidth(vthin) lp(dash)) ytitle(估计系数密度分布) ///
legend(label(1 "核密度") label( 2 "P值")) ///
plotregion(style(none)) ///无边框
graphregion(color(white)) //白底

Kdensity命令是对变量未知密度函数分布时的一种估计,不是一种标准的密度分布函数(比如t分布、正态分布)

msymbol() 调整标记符号的形状。msymbol(S)中的 S 是 square 的缩写,表示方块。msymbol(t) 对应的标记符号为小三角形;msymbol(sh) 对应的标记符号为小的空心方块,括号的的 h 对应 hollow,表示空心的意思;msymbol(X) 对应的标记符号为大的叉号;msymbol(+) 对应的标记符号为十字号;msymbol(p) 对应的标记符号为小点。

随机设定政策时点

mat b = J(500,1,0)//系数矩阵
mat se = J(500,1,0)//标准误矩阵
mat p = J(500,1,0)//P值矩阵

生成备用矩阵

使用mat list b可以查看矩阵,可以看出生成500行,一列,值为0的矩阵

stata安慰剂检验,stata论文复刻笔记,python,人工智能,算法

bsample 1, strata(province) 

这里首先将数据按照省份分组,然后在每个省份组内的 year 变量中随机抽取一个年份作为其政策时间

   bsample [exp] [if] [in] [, options]

其中,if代表条件语句,in代表范围语句,options代表其他选项。exp为表达式,用于指定抽取的样本个数。

需要说明的是,对于样本容量exp,如果进行简单分层抽样,就要求样本规模小于等于数据的观测值个数;如果进行分层抽样,exp就不能超过各层中的观测值个数;如果设定选项cluster(),exp就不能超过组的个数;如果同时设定选项cluster()和strata(),exp就不能超过各层内组的个数。

mkmat:将数值型变量中的观测值转变为矩阵

foreach j of numlist 3/30 {
		replace DID = 1 if (prov== `j' & year >= sampleyear[`j',1])
	}

foreach详细参考:foreach的五个小秘密文章来源地址https://www.toymoban.com/news/detail-558659.html

到了这里,关于实证论文复刻|stata安慰剂检验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 空间权重矩阵与相关性检验(Stata)

    由于窗口限制,不能很好显示完整。 1.1 全局空间相关性检验 数据集test01是关于美国俄亥俄州哥伦布市的截面数据,hoval是房价,income表示收入,crime为犯罪率。下面进行全局空间自相关检验 1.2 局部空间自相关检验 1.3 散点图 2.1 截断距离权重矩阵 部分数据结构 转化的矩阵后

    2024年02月05日
    浏览(45)
  • 【论文速读】| 对大语言模型解决攻击性安全挑战的实证评估

    本次分享论文为:An Empirical Evaluation of LLMs for Solving Offensive Security Challenges 原文作者: Minghao Shao, Boyuan Chen, Sofija Jancheska, Brendan Dolan-Gavitt, Siddharth Garg, Ramesh Karri, Muhammad Shafique 作者单位: 纽约大学、纽约大学阿布扎比分校 : 大语言模型,网络安全,攻击性挑战,CTF竞赛

    2024年04月10日
    浏览(80)
  • stata学习笔记(一)stata入门与基本操作

    这里开个新坑,主题有关stata使用以及定量分析入门,主要内容来自于之前与之后的课程学习、作业以及资料查询整理,主要目的是对个人学习过程的一个记录,方便日后回顾。 方法1:点击文件选项,选择导入,根据数据类型选择即可; 方法2::点击进入数据编辑器界面,点

    2024年02月21日
    浏览(40)
  • stata学习笔记|异方差问题

    异方差无法用OLS进行估计的根源问题:方差较大的数据包含的信息量较小,但OLS是对所有数据进行相同的处理。异方差的问题并不会影响估计量的无偏性、一致性、渐近正态性,只是效率较低使得t检验和F检验失效。 说白了就是回归出来的系数不会改变,只是可能会导致显著

    2024年02月10日
    浏览(41)
  • 笔记检验(一):笔记检验概述

    《刑事科学技术(第二版)》,主编 单大国,高等教育出版社,ISBN: 978-7-04-057361-9 (一) 笔迹的概念 笔迹是通过书写活动形成的具有个人特点的文字、符号的形象系统。笔迹具体表现为书写的字迹、符号的组合系统,它的本质是人的书写技能与书写习惯。人的书写习惯是经

    2024年02月08日
    浏览(54)
  • 毕业论文使用的卡方检验该如何分析?

    有时,在研究中某个随机变量是否服从某种特定的分布是需要进行检验的。可以根据以往的经验或者实际的观测数据分布情况,推测总体可能服从某种分布函数F(x)。卡方检验就是这样一种用来检验给定的概率值下数据来自同一总体的无效假设方法。通常的卡方检验可以用

    2024年02月01日
    浏览(39)
  • 数学建模论文写作方法之一(模型分析/检验)

    一、模型的分析 灵敏度分析:步骤:控制其他参数不变的情况下,改变某个重要参数的值,观察模型结果的变化情况。以折线图的形式体现改变参数对结果的影响。如,变量向上向下数据波动x%,结果曲线变化趋势。 误差分析:指分析模型中的误差来源,或者估算模型中存在

    2024年02月11日
    浏览(45)
  • R语言绘图丨论文中最常用箱线图绘制教程,自动进行显著性检验和误差线标注

    在科研论文绘图中,对于多组数据进行比较一般采用箱线图的方法,今天分享一下这个经典数据可视化方法,从零开始绘制一张带 误差棒 并自动计算 显著性 比较结果的 箱线图 。 数据分布信息: 箱线图能够直观地展示数据的分布情况,包括数据的中位数、上下四分位数和

    2024年02月12日
    浏览(50)
  • 清风学习笔记—层次分析法—matlab对判断矩阵的一致性检验

    在判断矩阵是否为正互反矩阵这块,我写了两种代码,改进前很麻烦且有错误,改进后简洁多了,改进前的代码还有错误,忽略了对角线的值必须都是1,只考虑了除开对角线的元素相乘为1。  下面是全部代码

    2024年02月06日
    浏览(49)
  • 【数学建模笔记】【第七讲】多元线性回归分析(二):虚拟变量的设置以及交互项的解释,以及基于Stata的普通回归与标准化回归分析实例

    温馨提示: 本文共有9683字,阅读并理解全文需要半小时左右 书接上文,上文谈到内生性的解决之后,我们对回归问题的探究还没有完。 比如下面这个问题: 我们说线性回归他的表达式可以是广义的,可以含有二次项,可以含有对数项,那么含有对数项的模型中的β怎么解释

    2023年04月25日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包