更新后的提示:
请下载zh_select_v3版本的附件
更新后可以使用诸如reghdfe ,xtreg等常见的回归命令,相比之前有了更多支持。使用方法为: zh_select y x1 x2 x3。。。,cmd(回归命令) others(absorb(,后面的语句)),比如我正常使用reghdfe的回归命令为:reghdfe mpg headroom weight, absorb(gear_ratio foreign ) ,等价的命令为zh_select mpg headroom weight,cmd(reghdfe) others(absorb( gear_ratio foreign )) 。再比如xtset id year 后,常用的固定效应命令为 xtreg y x1 x2 x3,fe r .等价的命令为zh_select y x1 x2 x3,cmd(xtreg) others(fe r) 请下载zh_select_v3版本的附件。
提示,虽然标注的是stata14程序版本,但由于我编程和测试使用的是stata17,根据@msh420的反馈,stata15下该程序会报错,16尚未测试。建议大家使用stata17版本。我另一个帖子里有stata17的下载和安装链接。 大家好,这里因为看到宝气老师的stata一键显著程序,让我有了极大的学习兴趣,也确实因为有时候为了变量的显著性而不停试验变量组合。所以花了一周多的业余时间学习加写代码,最终有了这份简易版的stata回归一键显著程序,其功能和宝气老师的一键显著命令是一样的,当然功能上简化了很多。希望可以帮助到大家。
首先,这只是一份简易程序,我的思路是利用组合算法求出变量的所有可能的子集,并一个个循环回归得到关键变量的p值,如果满足要求就保存下来这个变量组合并打印在屏幕上。具体组合思路是参考了这个链接:
https://zhuanlan.zhihu.com/p/62027511。关于程序的编写则是参考了连老师发布的编程经验分享:
https://www.bilibili.com/video/BV1XQ4y117Xa?p=8。由于主要目的是帮助大家得到可能的变量组合,所以我并没有过多进行程序bug检测,当然因为我在编程过程中有取巧,只是把回归命令放在一起,所以如果大家严格按照我下面描述的语法敲命令,也不会有太多问题,如果有报错那一般都是回归命令或者变量本身的问题。当然如果确实有其他情况,可以留言说明我会解决。总体而言这只是一份简易程序,如果大家有更进阶的需求或更完善的服务,可以去购买宝气老师的stata回归一键显著命令:
https://bbs.pinggu.org/thread-10795595-1-1.html
接下来是对命令语法的介绍, 命令格式为:zh_select varlist,cmd(回归命令) 其他选项。比如我的被解释变量为y,关键变量是x1,其他控制变量为x2 x3,想要做普通最小二乘回归,那么命令为zh_select y x1 x2 x3,cmd(reg),命令同样支持稳健标准误及其他options选项,如zh_select y x1 x2 x3,cmd(reg) robust 是稳健标准误下的显著变量筛选。命令运行后会自动输出一星显著组合(p值小于0.1),二星显著组合(p值小于0.05),三星显著组合(p值小于0.01),含义是在一星显著组合下,x1的显著性是一星,二三星同理。以下述代码演示
输出结果为

说明weight为因变量,mpg为解释变量,控制变量为 rep78 headroom 或headroom或rep78时,mpg在1%显著性水平下显著,没有可以让mpg在5%或10%下显著的变量组合。
要注意的是程序仅支持简单的横截面及面板回归等,对于工具变量如ivregress 2sls等这种变量列表里包含括号的复杂回归是无能为力的,并且只能保证显著性,对正负号及输出结果到word无能为力
关于程序的使用:下载压缩包后解压后将zh_select.ado文件放在stata的ado文件夹下即可,建议路径为"...\stata17\ado\personal"。建议最好重启一下stata再使用。 程序设定版本为stata14.0,所以请在14.0及以上版本使用。注意:请大家下载我下述这个链接,932byte这个,不要下920byte那个。