毕业论文最头疼的就是辛辛苦苦找来数据发现结果不显著,然后就手动一个个调整变量,可能你有十几个变量,那么就有上百种可能,一个一个试的话,可能会很辛苦,我这里整理了一个可以帮你一次性做这些事的命令,你只要输入自己找的变量,然后执行命令,Stata就会自动执行所有组合,为你选择最为显著的模型。之前给的代码将结果保存在Excel中,虽然可以自行查看,但当模型个数成百上千时,可能挑选起来依然很费力,于是我对之前的代码进行了进一步升级,你可以查看所有变量组合的系数、标准误及p值。下面的代码展示了Stata跑出来的的32个回归方程的结果,这只是简单的例子,你可以让它跑成百上千个回归方程。
- . list beta_mvalue beta_kstock p_m p_k
- +-------------------------------------------+
- | beta_m~e beta_k~k p_mvalue p_kstock |
- |-------------------------------------------|
- 1. | 0.1168 0.2197 0.0000 0.0002 |
- 2. | 0.1092 0.9592 0.0000 0.0026 |
- 3. | 0.0937 0.0121 0.0000 0.6642 |
- 4. | 0.1130 -0.0378 0.0000 0.3408 |
- 5. | 0.0861 0.1983 0.0010 0.0001 |
- |-------------------------------------------|
- 6. | 0.0816 0.2137 0.0121 0.0001 |
- 7. | 0.0930 0.3762 0.0000 0.2006 |
- 8. | 0.1097 0.4078 0.0000 0.1559 |
- 9. | 0.0966 -0.0028 0.0000 0.9568 |
- 10. | 0.0915 0.8979 0.0003 0.0031 |
- |-------------------------------------------|
- 11. | 0.1053 0.0060 0.0000 0.8181 |
- 12. | 0.1225 -0.0458 0.0000 0.2088 |
- 13. | 0.1019 0.9362 0.0001 0.0035 |
- 14. | 0.0555 0.0050 0.0197 0.8576 |
- 15. | 0.0776 -0.0452 0.0016 0.2405 |
- |-------------------------------------------|
- 16. | 0.0273 0.1848 0.5957 0.0000 |
- 17. | 0.0958 0.3631 0.0000 0.2207 |
- 18. | 0.1053 0.3728 0.0000 0.1961 |
- 19. | 0.1217 0.4034 0.0000 0.1545 |
- 20. | 0.1097 -0.0127 0.0000 0.7958 |
- |-------------------------------------------|
- 21. | 0.0646 0.2591 0.0075 0.4114 |
- 22. | 0.0874 0.3170 0.0002 0.3015 |
- 23. | 0.0580 -0.0062 0.0160 0.9003 |
- 24. | 0.0676 0.8219 0.1470 0.0077 |
- 25. | 0.0624 0.0028 0.1412 0.9133 |
- |-------------------------------------------|
- 26. | 0.0815 -0.0475 0.0653 0.1850 |
- 27. | 0.1099 0.3553 0.0000 0.2213 |
- 28. | 0.0673 0.2486 0.0066 0.4353 |
- 29. | 0.0755 0.2716 0.0876 0.3910 |
- 30. | 0.0978 0.3271 0.0277 0.2860 |
- |-------------------------------------------|
- 31. | 0.0665 -0.0106 0.1246 0.8216 |
- 32. | 0.0802 0.2603 0.0746 0.4131 |
- +-------------------------------------------+
也可以方便选择你所关心的变量在5%水平上显著(或其他水平)的模型,比如我想查看mvalue和kstock都在5%显著的模型:
- list beta_mvalue beta_kstock p_m p_k if p_m<0.05 & p_k<0.05 //筛选显著性水平在5%以上的模型
- +-------------------------------------------+
- | beta_m~e beta_k~k p_mvalue p_kstock |
- |-------------------------------------------|
- 1. | 0.1168 0.2197 0.0000 0.0002 |
- 2. | 0.1092 0.9592 0.0000 0.0026 |
- 5. | 0.0861 0.1983 0.0010 0.0001 |
- 6. | 0.0816 0.2137 0.0121 0.0001 |
- 10. | 0.0915 0.8979 0.0003 0.0031 |
- |-------------------------------------------|
- 13. | 0.1019 0.9362 0.0001 0.0035 |
- +-------------------------------------------+
- . list beta_mvalue beta_kstock p_m p_k if p_k<0.05 &beta_kstock>0
- +-------------------------------------------+
- | beta_m~e beta_k~k p_mvalue p_kstock |
- |-------------------------------------------|
- 1. | 0.1168 0.2197 0.0000 0.0002 |
- 2. | 0.1092 0.9592 0.0000 0.0026 |
- 5. | 0.0861 0.1983 0.0010 0.0001 |
- 6. | 0.0816 0.2137 0.0121 0.0001 |
- 10. | 0.0915 0.8979 0.0003 0.0031 |
- |-------------------------------------------|
- 13. | 0.1019 0.9362 0.0001 0.0035 |
- 16. | 0.0273 0.1848 0.5957 0.0000 |
- 24. | 0.0676 0.8219 0.1470 0.0077 |
- +-------------------------------------------+
此版本相对于之前的版本更方便,不需要手动去一个一个查看所有模型的显著性,可以让Stata帮你挑选变量。目前该代码已经适用于reg/xtreg/reghdfe/logit/probit/xtscc等等。
另外应坛友要求,最近也新增了面板门槛模型xthreg以及xtabond2的模型筛选,但由于面板门槛模型需要进行bootstrap,所以跑起来会很慢,如果你的bootstrap次数设的比较大,跑的时间更长。不过没关系,别管它,让电脑跑去吧。
如有需要请购买下方的“让你的回归跑起来(最新版包括面板门槛模型)”,该版本写了详细的操作说明。
注意:2021年10月已经将此代码封装成ado命令,并且提供了中文版帮助文件。让大家能更加方便使用此代码。具体使用方法可以参看我的另一个帖子https://bbs.pinggu.org/forum.php?mod=viewthread&tid=10695347。