在实证研究中,回归结果输出的标准化是十分重要的。一个完美的输出程序,能为你省下很多不必要的手工调整的麻烦。在原公众号中,我们推送过一篇关于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学习。小编觉得自己的程序和大神的相比,之间差了好多好多个有用的命令,如果你也和小编一样,别担心,快来我们的公众号把这些好用的命令都收进你的程序里~
因篇幅问题不能全部显示,请点此查看更多更全内容