作者: 王美庭 (中南民族大学经济学院)
Email: 2017110097@mail.scuec.edu.cn
空间计量专题课程
1. 本文目的
目前 Stata 有着众多的实证结果输出命令,连享会对于 asdoc、xxx2docx 系列、outreg2、logout 和 esttab 都有讲解,不熟悉的同学可以先去了解:https://www.lianxh.cn/blogs/22,亦可点击底部
然而,这么多的命令,各有其特点,往往让我们眼花缭乱。到底哪一种真正适合自己?这也许是很多同学都会提出的问题。
我们的测评结果呈现于文首的表格中,下文展开详细分析。
一般而言,我们将实证结果导入到 Word 的最多,如果要做学术报告或者发 SSCI,那可能还需要用到 LaTeX,所以本文以 Word 和 LaTeX 为基础,目的在于:从我们实证论文常用到的描述性统计、分组 T 均值检验、相关系数矩阵和回归结果四个方面出发,去评判以上几种常见输出命令的优劣,最后再给出一个总结。
整体说明和注意事项:
由于以上所有命令都支持 Word 输出,而只有部分命令支持 LaTeX 输出,且 LaTeX 输出命令中只有少量与 Word 输出的命令不一致,所以我们在 3 - 6 节均以输出到 Word 的角度去阐述和评价,而在第 7 节再统一以 LaTeX 的角度去阐述和评价。
另外,
outreg2
只支持描述性统计输出和回归结果输出,而logout
支持分组 T 均值检验和相关系数矩阵的输出,且两者命令结构相似,且都来自同一个作者(Roy Wada),于是本文将这两个命令合并到一起看作一个命令进行讲解(简称out_log
命令)。于是本文要评价的输出命令为:asdoc
、xxx2docx
、out_log
和esttab
四个命令。以上命令都可以通过
ssc install 命令名称, replace
安装更新,本文在测试时均采用了行文时的最新版本。
2. 数据的前期处理
sysuse "nlsw88.dta", clear
tabulate race, gen(race_num)
drop race_num1
3. 描述性统计输出
3.1 命令展示与描述
3.1.1 asdoc
local varlist "wage age race married grade collgrad south union occupation"
asdoc sum `varlist', save(Myfile.doc) replace ///
stat(N mean sd min p50 max) dec(3) ///
title(asdoc_Table: Descriptive statistics)
命令特点及存在的问题:
- 在将结果导入到 Word 的同时,Stata 界面也能看到相应的结果(下同)。
- 该命令不支持中文。
- 若有字符串变量,命令会报错。
3.1.2 sum2docx
local varlist "wage age race married grade collgrad south union occupation"
sum2docx `varlist' using Myfile.docx,replace ///
stats(N mean(%9.2f) sd(%9.3f) min(%9.2f) median(%9.2f) max(%9.2f)) ///
title(sum2docx_Table: Descriptive statistics)
命令特点及存在的问题:
- 在将结果导入到 Word 的同时,Stata 界面不能看到相应的结果(下同)。
- 该命令支持中文。
- 若有字符串变量,命令会报错。
- 能分别设置每个统计量的小数点位数。
3.1.3 outreg2
local varlist "wage age race married grade collgrad south union occupation"
outreg2 using Myfile, sum(detail) replace word eqkeep(N mean sd min p50 max) ///
fmt(f) keep(`varlist') sortvar(wage age grade) ///
title(outreg2_Table: Descriptive statistics)
命令特点及存在的问题:
- 在将结果导入到 Word 的同时,Stata 界面能看到相应的结果(下同)。
- 该命令不支持中文。
- 若有字符串变量,命令会在窗口说明什么变量是字符型,并在报告列表中自动剔除该变量。
- 支持变量排序。
3.1.4 esttab
local varlist "wage age race married grade collgrad south union occupation"
estpost summarize `varlist', detail
esttab using Myfile.rtf, ///
cells("count mean(fmt(2)) sd(fmt(2)) min(fmt(2)) p50(fmt(2)) max(fmt(2))") ///
noobs compress replace title(esttab_Table: Descriptive statistics)
命令特点及存在的问题:
- 在将结果导入到 Word 的同时,Stata 界面能看到相应的结果(下同)。
- 该命令不支持中文(有些教程说可以对中文进行 gb18030 转码后导入,但本文试验不成功)。
- 若有字符串变量,命令仍会直接运行,在输出列表中字符型变量名会写上去