欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Stata命令自查2.0

发布时间:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Stata命令自查2.0 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

stata中如何先生成一个变量的中值,再根据这个中值进行分组生成虚拟变量,大于等于中值的取值为1,否

//第一反应代码如下:egen loan_ratio_med = medium(loan_ratio)//但是这样做会报错: unknown egen function medium()//正确的做法是:egen x_p50 = pctile(x), p(50)

stata怎么求指定时间段的均值

bysort Stkcd: egen mean5_loan = mean(loan_ratio) if Year>=2000 & Year <=2006

面板数据向下填充——参考:stata面板数据向下填充_大太阳小白的博客-CSDN博客_stata填充数据)

//在用stata处理数据的时候,经常需要按条件进行计算,此时用到if命令,但是我们希望赋值的时候不要按条件赋值,此时需进行缺失值的填充 ​bysort Stkcd: egen mean5_loan = mean(loan_ratio) if Year>=2000 & Year <=2006​ bys Stkcd (Year):replace mean5_loan = mean5_loan[_n-1] if mean5_loan[_n-1]!=.

Stata怎么实现平行趋势检验?参考:DID大法:如何用Stata做平行趋势检验 - 知乎 (zhihu.com)

DID的使用前提是满足平行性趋势假设,即在没有外生政策冲击的情况下, 实验组和对照组的结果的变化趋势应该近似一致。

第一种方法就是绘制处理组和控制组的时间趋势图。从图中可以看出,在政策时点之前,处理组和控制组还是具有那么一丢丢的相似性,y都保持着相似的增长趋势,当然这种趋势也只能说有一点相似不能说相同,可能是构造出来的数据的效果不是特别好。总之,这种方法仅凭肉眼观察较为粗糙,想要得到更为准确、科学的结论还是应该使用事件研究法。

egen mean_y=mean(y), by(year treat) graph twoway (connect mean_y year if treat==1,sort) (connect mean_y year if treat==0,sort lpattern(dash)), /// xline(1994,lpattern(dash) lcolor(gray)) /// ytitle("y") xtitle("年度") /// ylabel(,labsize(*0.75)) xlabel(,labsize(*0.75)) /// legend(label(1 "处理组") label( 2 "控制组")) ///图例 xlabel(1990 (1) 1999) graphregion(color(white)) //白底

第二种方法就是事件研究法,我们首先生成年份虚拟变量与处理组虚拟变量的交互项,将这些交互项作为解释变量进行回归。交互项的系数反映的就是特定年份处理组和控制组之间的差异,我们特别希望看到的就是政策时点前的虚拟变量与处理组虚拟变量的交互项的系数不显著。不过,在这里要特别注意是我们需要选择一期作为参照组,否则会有完全共线性问题(一般都是drop掉-1期)。

gen policy = year - 1994 tab policy replace policy = -3 if policy < -3 replace policy = 3 if policy > 3 //首先生成年份虚拟变量与实验组虚拟变量的交互项 forvalues i = 3(-1)1{gen pre_`i' = (policy == -`i' & treat == 1) }gen current = (policy == 0 & treat == 1)forvalues j = 1(1)3{gen post_`j' = (policy == `j' & treat == 1) }drop pre_1 //将政策前第一期作为基准组,很重要!!!xtreg y pre_* current post_* i.year, fe r //将这些交互项作为解释变量进行回归

 

总结

以上是生活随笔为你收集整理的Stata命令自查2.0的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。