您的当前位置:首页正文

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

2020-08-20 来源:钮旅网
esttab功能挖掘:“Yes”or“No”

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

首先我们调用一个网络面板数据(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')

• 注

1:star选项可以对显著性进行调整,此处*表示10%,**表2:b(),t()选项分别为调整输出系数和t值的格式,%6.3f表3:compress和nogap选项可以压缩行距和列距。 4:由于year是控制变量,我们也不想观察其系数,故在输5:stats()选项可以在输出结果中增加行注释或者回归存储值;6:为了避免输出时变量名缺省,我们使用varwidth()选项,7:title()和mtitle()选项可以设置表格标题以及模型的标题。

示5%,***表示1%。

• 注

示,长度为6,小数3位。

• 注• 注

出时使用drop()选项删除。

• 注

这里我们输出了观测值个数N和调整后的R2,并为其设置显示格式。

• 注

设定输出变量名长度为20。

• 注

输出结果如下:

输出的表格很精美,然而仍有不足:1)没有显示是否控制年份;2)没有显示cluster;3)没有显示是否控制个体效应(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命令来解决。其实esttab和estout是一个很强大的结果输出命令系列,其选项是通用的,如果能够灵活的搭配使用则会事半功倍。使用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')

回归结果如下:

当然,我们也可以使用estadd把Year 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学习。小编觉得自己的程序和大神的相比,之间差了好多好多个有用的命令,如果你也和小编一样,别担心,快来我们的公众号把这些好用的命令都收进你的程序里~

因篇幅问题不能全部显示,请点此查看更多更全内容