作者:唐继凤(中山大学)
邮箱:[email protected]
Stata连享会 计量专题 || 精品课程 || 推文 || 公众号合集
2020连享会-文本分析与爬虫-现场班
西安, 3月26-29日,司继春-游万海 主讲; (附助教招聘)
[[toc]]
1. 引言
OLS能够成立的最重要条件是解释变量与扰动项不相关。否则,OLS估计量将是不一致的,即无论样本量多大,OLS估计量也不会收敛到真实的总体参数。因此,在一篇实证论文中,工具变量法是解决内生性问题的重要方法之一。那么我们将如何展示如此重要的回归结果呢?展示回归结果的命令有哪些,它们各自的优缺点又是什么呢?本文将以实例介绍 ivregress
两阶段回归中 esttab
, outreg2
, asdoc
三种输出命令的优劣之处。
2. 输出命令介绍
2.1 esttab 命令简介
新的 esttab
命令是 estout
的包装器。它的语法比 estout
简单得多,而且默认情况下,它会在 Stata 结果窗口中良好地显示回归结果表格。esttab
不仅仅是 estout
的简化版本。 esttab
提供了完整的 estout
功能,同时也扩展了功能。例如,esttab
增加了对 Word 多文本格式 (RTF) 和 Excel 逗号分隔值 (CSV) 文件的支持,并改进了 LATEX 和 HTML 的功能。
2.1.1 esttab 基本用法
esttab
命令的基本用法如下:
esttab [namelist] [using filename] [, options estout_ options]
其中,
-
esttab
为命令主体,不可省略; -
namelist
是存储的估计集的名称列表。namelist
可能是*
,用于将所有存储的估计集制成表格。如果省略了namelist
,则esttab
将列出当前运行结果,如果有,则列出eststo
存储的估计集。 - 指定
using
会将回归结果写到磁盘上的文件中,而不是显示在Stata的结果窗口中。
各类应用范例,请参考 Introductory examples for esttab 。
2.1.3 esttab 两阶段回归结果输出
本文实例:
使用系统自带的 auto.dta 数据,运行以下命令:
sysuse "auto", clear
ivregress 2sls mpg weight (length=displacement)
est store second
reg length displacement weight // 自己做一个第一阶段的回归
est store first // Note: 务必要加上所有外生变量
*-输出结果
* Note: Word 文档,用 .rtf 作为后缀
* Excel 文档,用 .csv 作为后缀
local s "using Table1.rtf" //选中此行可以输出到Word/Excel文档
local m "first second"
esttab `m' `s', mtitle(`m') nogap compress replace ///
b(%6.3f) s(N r2_a) drop(`drop') ///
star(* 0.1 ** 0.05 *** 0.01) ///
addnotes("*** 1% ** 5% * 10%")
保存到 Table1.doc 文档中的两阶段回归结果如下图:
根据
esttab
的基本用法,若要输出两阶段的结果,需要对每一段运行的结果进行储存,在输出结果时再调用储存结果。如果只输出第二阶段的结果,可直接进行一下命令:
sysuse auto
ivregress 2sls mpg weight (length=displacement),first
esttab using 1.doc
2.2 outreg2
简介
outreg2
提供了一种快速而简单的方法来生成一个说明性的回归输出表。回归结果是零碎产生的,如果不进行某种类型的重新排列,就很难进行比较。outreg2
自动地将连续的回归输出以垂直格式连接起来。结果表以ASCII格式保存到磁盘,其他程序可以读取。outreg2
可以报告任何回归输出,前提是它符合 ereturn
列表的常规约定。
2.2.1 outreg2
基本用法
outreg2 [varlist] [estlist] using filename [, options] [: command]
- 其中,
outreg2
为命令主体,不可省略; - 其中,
varilist
是数值型变量列表,可以选择要输出的变量名称; -
estlist
为保存的回归结果集。
2.2.2 outreg2
两阶段回归结果输出
sysuse auto
ivregress2 2sls mpg weight (length=displacement),first
est restore first
outreg2 using xxx.doc,cttop(first) tstat bdec(3) tdec(2) replace
ivregress2 2sls mpg weight (length=displacement), first
outreg2 using xxx.doc,cttop(two) tstat bdec(3) tdec(2)
- 两阶段回归输出时,若只展示第二阶段回归,则直接利用第二阶段回归输出代码即可。如需展示第一阶段回归结果,则可以利用实例中所示方法,利用命令先将第一阶段回归结果保存输出,再输出第二阶段回归结果。实例中去掉了第二阶段输出时的 replace 这样就可以将两阶段结果输出在一张表上。
- 按照 outreg2 命令输出的表格内相关系数下括号内数字为标准误,因此我们一般利用命令 tstat 将其更改为 t 值。
- outreg2 命令输出时默认相关系数和 t 值都保留 3 位有效数字,而一般期刊要求相关系数保留 3 位有效数字,t 值保留 2 位有效数字,因此我们利用 bdec(3) 和 tdec(2) 命令限定。(注:此部分感谢团队小伙伴热心提供)
连享会计量方法专题……
2.3 asdoc
简介
asdoc
是结果输出的又一利器,它的最大优点是:各种命令前加 asdoc
就能轻轻松松输出结果。用法详细介绍参考 asdoc:Stata 结果输出又一利器!。
2.3.2 asdoc
两阶段回归结果输出
asdoc
可以创建三种类型的回归表。第一种类型是详细表,它将 Stata
的回归输出中的关键统计数据与一些附加的统计数据(如因变量的均值和标准差等)组合在一起,第一种表是 asdoc
输出的默认选项。第二种表是嵌套表,它在一个表中嵌套多个回归。第三种表是宽表,它以宽的或行格式报告回归内容,宽表提供的选项超过10个,使用者可以根据需要添加选项。本文选用第一种表格形式,asdoc
直接加在两阶段回归前,回归结果自动保存至 Myfile.doc
。
sysuse auto
asdoc ivregress2 2sls mpg weight (length=displacement),first. sysuse auto
(1978 Automobile Data)
. asdoc ivregress2 2sls mpg weight (length=displacement),first
First-stage regressions
-----------------------
Number of obs = 74
F( 2, 71) = 304.50
Prob > F = 0.0000
R-squared = 0.8956
Adj R-squared = 0.8926
Root MSE = 7.2955
------------------------------------------------------------------------------
length | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
weight | .0285754 .0024618 11.61 0.000 .0236666 .0334842
displacement | -.0139257 .0208339 -0.67 0.506 -.0554673 .0276159
_cons | 104.3976 4.264293 24.48 0.000 95.89487 112.9004
------------------------------------------------------------------------------
Instrumental variables (2SLS) regression Number of obs = 74
Wald chi2(2) = 101.01
Prob > chi2 = 0.0000
R-squared = 0.5217
Root MSE = 3.9742
------------------------------------------------------------------------------
mpg | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
length | -.379211 .8149763 -0.47 0.642 -1.976535 1.218113
weight | .004269 .0220963 0.19 0.847 -.0390389 .0475769
_cons | 79.67325 86.48626 0.92 0.357 -89.8367 249.1832
------------------------------------------------------------------------------
Instrumented: length
Instruments: weight displacement
Click to Open File: Myfile.doc
保存到
Myfile.doc
中的两阶段回归结果与Stata
窗口显示的回归结果一致,读者可根据需要添加asdoc
选项来调整输出结果格式,具体选项可查看Sata
的help
功能。
连享会计量方法专题……,https://gitee.com/arlionn/Course
3. 总结
- 从回归结果输出的角度,
asdoc
的效果最差,不能对变量进行排序,表格布局与一般的文献不同,且不能用命令调整。 - 在两阶段回归输出结果应用中,
outreg2
还将报告常见的统计信息,如显著性级别的标准错误(1%、5%和10%)、t 统计信息、p 值、观察次数、r 平方数和面板估计中的组数。因此outreg2
使用率比较高,有助于将回归输出转换为适合包含在学术出版物中的标准格式。 - 在两阶段回归中,
ivregress2
直接进行两阶段的回归,而esttab
只能输出保存的模型或输出当前运行的结果,要只输出第一阶段的结果时不如outreg2
方面。
4. 参考资料
- Introductory examples for esttab
- asdoc:Stata 结果输出又一利器!
- Ben Jann, ETH Zurich. Making regression tables simplified. The Stata Journal (2007) 7, Number 2, pp. 227–244
- Christopher F. Baum, Mark E. Schaffer. Enhanced routines for instrumental variables/generalized method of moments estimation and testing. The Stata Journal (2007) 7, Number 4, pp. 465–506
- Ben Jann, J. Scott Long. Tabulating SPost results using estout and esttab. The Stata Journal (2010)10, Number 1, pp. 46–60
- 陈强. 高级计量经济学及stata应用 [M]. 高等教育出版社, 2014.
关于我们
- Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
- 欢迎赐稿: 欢迎赐稿至[email protected]。录用稿件达 三篇 以上,即可 免费 获得一期 Stata 现场培训资格。
- 往期精彩推文:
Stata绘图 | 时间序列+面板数据 | Stata资源 | 数据处理+程序 | 回归分析-交乘项-内生性