esttab功能挖掘:“Yes”or“No”

2016-09-14 周鹏 爬虫俱乐部 爬虫俱乐部

在实证研究中,回归结果输出的标准化是十分重要的。一个完美的输出程序,能为你省下很多不必要的手工调整的麻烦。在原公众号中,我们推送过一篇关于esttab输出回归结果的命令,今天我们再来补充一下esttabestout系列命令的其他用法:如何在回归结果表格输出时加入一行,备注是否控制时间固定效应、行业固定效应或者个体效应等。

首先我们调用一个网络面板数据(nlswork),并进行三个回归

clear

set more off

webuse nlswork,clear

xtset idcode year    //设置面板标识

tab year,gen(yd)     //生成年份虚拟变量


*回归1未控制年份的OLS,对标准误进行聚类修正

reg ln_w age ttl_exp tenure not_smsa south, vce(cluster idcode)

est store m1


*回归2控制年份的OLS,对标准误进行聚类修正

reg ln_w age ttl_exp tenure not_smsa south yd*, vce(cluster idcode)

est store m2


*回归3控制年份的面板固定效应模型,对标准误进行聚类修正

xtreg ln_w age ttl_exp tenure not_smsa south yd*, fe vce(cluster idcode)

est store m3


esttab m1 m2 m3, star(* 0.1 ** 0.05 *** 0.01) b(%6.3f) t(%6.3f) compress nogap ///

drop(yd*) stats(N r2_a, fmt(%12.0f  %9.3f)) varwidth(20) ///

title("Table1 Wage") mtitle("OLS" "OLS" "FE")

  • 1star选项可以对显著性进行调整,此处*表示10%**表示5%***表示1%。

  • 2b()t()选项分别为调整输出系数和t值的格式,%6.3f表示,长度为6,小数3位。

  • 3compressnogap选项可以压缩行距和列距。

  • 4:由于year是控制变量,我们也不想观察其系数,故在输出时使用drop()选项删除。

  • 5stats()选项可以在输出结果中增加行注释或者回归存储值;这里我们输出了观测值个数N和调整后的,并为其设置显示格式。

  • 6:为了避免输出时变量名缺省,我们使用varwidth()选项,设定输出变量名长度为20。

  • 7title()mtitle()选项可以设置表格标题以及模型的标题。

输出结果如下:


输出的表格很精美,然而仍有不足:1)没有显示是否控制年份;2)没有显示cluster3没有显示是否控制个体效应(Fixed Effect)

对于第一个问题,我们可以选择使用indicate()选项来解决,命令和输出结果如下:

esttab m1 m2 m3, star(* 0.1 ** 0.05 *** 0.01) b(%6.3f) t(%6.3f) compress nogap ///

stats(N r2_a, fmt(%12.0f  %9.3f)) varwidth(20) indicate("Year FE=yd*") ///

title("Table1 Wage") mtitle("OLS" "OLS" "FE")


对于第2和第3个问题,我们可以结合estadd命令来解决。其实esttabestout是一个很强大的结果输出命令系列,其选项是通用的,如果能够灵活的搭配使用则会事半功倍。使用estadd对以上程序进行修改,具体细节请help estadd,修改后的程序如下:

clear

set more off

webuse nlswork,clear

xtset idcode year  

tab year,gen(yd)     

reg ln_w age ttl_exp tenure not_smsa south, vce(cluster idcode)

estadd local Cluster "Yes",replace

estadd local Fixed_Effect "No",replace

est store m1

reg ln_w age ttl_exp tenure not_smsa south yd*, vce(cluster idcode)

estadd local Cluster "Yes",replace

estadd local Fixed_Effect "No",replace

est store m2

xtreg ln_w age ttl_exp tenure not_smsa south yd*, fe vce(cluster idcode)

estadd local Cluster "Yes",replace

estadd local Fixed_Effect "Yes",replace

est store m3

 

esttab m1 m2 m3, star(* 0.1 ** 0.05 *** 0.01) b(%6.3f) t(%6.3f) compress nogap ///

stats(Fixed_Effect Cluster N r2_a, fmt(%3s %3s %12.0f  %9.3f)) varwidth(20) ///

indicate("Year FE=yd*") title("Table1 Wage") mtitle("OLS" "OLS" "FE")


回归结果如下:


当然,我们也可以使用estaddYear FE标识调整到横线下面,程序修改如下:

reg ln_w age ttl_exp tenure not_smsa south, vce(cluster idcode)

estadd local Cluster "Yes",replace

estadd local Year_FE "No",replace

estadd local Fixed_Effect "No",replace

est store m1

 

reg ln_w age ttl_exp tenure not_smsa south yd*, vce(cluster idcode)

estadd local Cluster "Yes",replace

estadd local Year_FE "Yes",replace

estadd local Fixed_Effect "No",replace

est store m2

 

xtreg ln_w age ttl_exp tenure not_smsa south yd*, fe vce(cluster idcode)

estadd local Cluster "Yes",replace

estadd local Year_FE "Yes",replace

estadd local Fixed_Effect "Yes",replace

est store m3

 

esttab m1 m2 m3, star(* 0.1 ** 0.05 *** 0.01) b(%6.3f) t(%6.3f) compress nogap ///

drop(yd*) stats(Year_FE Fixed_Effect Cluster N r2_a, fmt(%3s %3s %3s %12.0f  %9.3f)) ///

varwidth(20) title("Table1 Wage") mtitle("OLS" "OLS" "FE")


输出结果如下:


esttab系列命令选项较多,功能强大,具体细节还需读者通过help学习。小编觉得自己的程序和大神的相比,之间差了好多好多个有用的命令,如果你也和小编一样,别担心,快来我们的公众号把这些好用的命令都收进你的程序里~

我们团队原来的微信公众号是“数据处理援助中心”,现在正式搬家到“爬虫俱乐部”,欢迎关注。新的公众号开始,我们推出有问必答栏目,对您提出的问题,我们会尽力回答,并通过推文的形式进行发布。我们也欢迎各位粉丝向公众号投稿。

(编辑 @徐苾雯)

欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:xueyuan19920310@163.com

投稿要求

1)必须原创,禁止抄袭;

2)必须准确,详细,有例子,有截图;

注意事项

1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名。

2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”

3)如果大家遇到关于stata处理分析数据的问题,也可以给该邮箱写邮件,邮件名称为“提问”+“问题名称或者关键词”,我们会在后期的推文里给予解答。


长按二维码关注公众号

微信扫一扫
关注该公众号