Stata结果输出:强大的etable命令
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
连享会课程 · 2023 暑期班
编译: 姜昊 (华东师范大学)
邮箱: HaoJiang0204@outlook.com
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. etable 介绍
1.1 命令介绍
1.2 语法结构及相关选项说明
2. 案例介绍
2.1 案例1
2.2 案例2
2.3 案例3
2.4 案例4
2.5 案例5
1. etable 介绍
1.1 命令介绍
目前Stata
软件有着众多的实证结果输出命令,对此,连享会也对其进行梳理总结,主要包括 asdoc
、 xxx2docx
、 outreg2
、 logout
以及esttab
等命令,通过在 Stata
中输入命令 lianxh 结果输出
即可获取使用方法,以及使用的环境需求,此处不再进行赘述。
本次 Stata17
更新之后,令我印象最为深刻的是官方推出了一款专门用于回归估计结果定制化输出的命令——etable
,该命令对中文的支持十分友好,克服了结果输出乱码的问题,并且该命令 Stata17
更新后软件自带的命令,这也免去了下载外部命令的步骤。接下来,直接开始介绍该命令如何使用。
1.2 语法结构及相关选项说明
etable
命令语法结构如下:
. help etable
* 具体语法结构如下
. etable [, options]
estimates(namelist)
:指定存储在内存中的回归结果,其中namelist
通过命令est store name
存储在Stata
的内存中margins
:展示回归结果边际效应,须在回归后使用margins
命令,该选项才能生效column(column_header)
:指定输出回归结果的列名,包括以下6种,分别为:depvar
,则显示被解释变量名,也为默认选项;dvlabel
,则显示被解释变量的变量标签;command
,则显示该回归结果的估计命令;title
,则显示估计该回归结果的名称,如使用Ols
估计则显示Linear regression
;estimates
,则显示est store name
中name
;index
,则按照阿拉伯数字从1开始依次显示append
:在表格前一列结果后追加当前的回归结果replace
:用最新的回归结果替换表中当前回归结果keep(coeflist)
:报告指定的变量系数,并且系数展示顺序与coeflist
保持一致cstat(cstat[, cstat_opts])
:报告系数的统计量,其中,主要包括以下结果,依次是_r_b
、_r_se
、_r_z
、_r_z_abs
、_r_p
、_r_lb
、_r_ub
、_r_ci
和_r_hide
,其含义分别为报告估计系数、估计系数标准误、检验统计量、检验统计量绝对值、p值、左侧置信区间、右侧置信区间、完整置信区间和隐藏系数估计结果mstat(mstat[, mstat_opts])
:报告模型统计量,其中,主要包括以下结果,依次是N
、aic
、bic
、F
、chi2
、ll
、r2
、r2_a
、rank
、scalar
和_r_hide
,其含义分别为观测值数目、AIC信息准则、BIC信息准则、F统计量、卡方统计量、对数似然值、拟合优度、调整拟合优度、拟合模型的秩、存在e()
中的任何标量和隐藏模型统计量stars([starspec][, stars_opts])
:自定义系数星星的规则,默认情况为p
值小于0.05标记1颗星,小于0.01标记两颗星,这与我们通常的标记准则存在差异,因此需要重新定义规则,需要在该命令后增加stars(0.10 "*" .05 "**" .01 "***", attach(_r_b))
,这样就使其与我们平常使用的标记规则相一致,另外,若要系数后显示星号,需要额外添加showstars
命令选项,而且表格脚注部分若显示星号标记规则,需要添加showstarsnote
title(string)
:指定表格标题,中英文均支持note(string)
:指定表格的脚注,中英文均支持export(filename.suffix[, export_opts])
:指定输出表格的文件名称与格式,该命令支持docx
、html
、pdf
、xlsx
、xls
、tex
、smcl
、txt
、markdown
和md
等格式,export_opts
选项中可以使用replace
覆盖当前路径下同名的文件
2. 案例介绍
接着,为了进一步直观感受各个选项的作用,观察如何个性化定制输出自己的回归表格,本篇推文通过以下几个案例进行说明,展示etable
命令在不同情境下的效果。
2.1 案例1
为了便捷,本次推文均以Stata17
自带的数据集为例进行演示,首先如何展示单个回归结果,具体代码如下:
. sysuse "auto.dta", clear
. reg price mpg rep78 trunk weight, robust
. etable, cstat(_r_b) cstat(_r_se) ///
cstat(_r_ci) mstat(N) mstat(r2) ///
showstars showstarsnote ///
export("result.docx",replace)
输出结果如下:
-----------------------------------------------
price
-----------------------------------------------
Mileage (mpg) -63.210
(84.659)
[-232.336 105.915]
Repair record 1978 884.448 **
(285.421)
[314.255 1454.641]
Trunk space (cu. ft.) -99.367
(83.723)
[-266.624 67.889]
Weight (lbs.) 2.442 *
(0.928)
[0.589 4.295]
Intercept -1540.729
(3776.598)
[-9085.351 6003.893]
Number of observations 69
R-squared 0.38
-----------------------------------------------
** p<.01, * p<.05
2.2 案例2
其次,也是很多人较为关心的,如何将多个回归放在一张表格中演示,同时也给表格修改和增加一些要素,比如表名,列名以及表注等,具体代码如下:
. sysuse "auto.dta", clear
. reg price mpg rep78 trunk weight, robust
. est store m1
. reg price mpg rep78 trunk weight length, robust
. est store m2
. reg price mpg rep78 trunk weight length turn, robust
. est store m3
. etable, ///
estimates(m1 m2 m3) column(index) ///
keep(rep78 trunk weight length turn) ///
cstat(_r_b) cstat(_r_se) mstat(N) mstat(r2) ///
stars(0.10 "*" .05 "**" .01 "***", attach(_r_b)) ///
showstars showstarsnote ///
title("表1 etable命令整理的回归结果") ///
note("数据来源:auto数据库") ///
export("result.docx",replace)
输出结果如下:
表1 etable命令整理的回归结果
----------------------------------------------------------------
1 2 3
----------------------------------------------------------------
Repair record 1978 884.448 *** 909.522 *** 744.266 **
(285.421) (280.763) (316.631)
Trunk space (cu. ft.) -99.367 2.922 1.412
(83.723) (63.188) (65.100)
Weight (lbs.) 2.442 ** 4.963 ** 5.295 ***
(0.928) (1.892) (1.946)
Length (in.) -115.538 * -96.593
(59.959) (62.210)
Turn circle (ft.) -195.353
(161.207)
Number of observations 69 69 69
R-squared 0.38 0.44 0.46
----------------------------------------------------------------
*** p<.01, ** p<.05, * p<.1
数据来源:auto数据库
2.3 案例3
接下来,将其换成logistic
回归模型,并将多个回归结果共同展示:
. webuse nhanes2l,clear
(Second National Health and Nutrition Examination Survey)
. quietly logistic diabetes age i.sex i.race bmi
. est store m1
. quietly logistic diabetes age
. est store m2
. quietly logistic diabetes i.sex
. est store m3
. quietly logistic diabetes i.race
. est store m4
. quietly logistic diabetes bmi
. est store m5
. etable, estimates(m1 m2 m3 m4 m5) ///
column(index) cstat(_r_b) ///
cstat(_r_se) mstat(N) mstat(r2) ///
stars(0.10 "*" .05 "**" .01 "***", attach(_r_b)) ///
showstars showstarsnote ///
title("表2 etable命令整理Logistic回归结果") ///
note("数据来源:Second National Health and Nutrition Examination Survey")
输出结果如下:
表2 etable命令整理Logistic回归结果
--------------------------------------------------------------------
1 2 3 4 5
--------------------------------------------------------------------
Age 1.060 *** 1.061 ***
(0.004) (0.004)
Sex
Female 1.066 1.185 *
(0.102) (0.110)
Race
Black 1.860 *** 1.843 ***
(0.240) (0.227)
Other 1.410 1.010
(0.498) (0.348)
BMI 1.073 *** 1.089 ***
(0.009) (0.008)
Intercept 0.000 *** 0.002 *** 0.046 *** 0.047 *** 0.005 ***
(0.000) (0.000) (0.003) (0.002) (0.001)
N 10349 10349 10349 10349 10349
--------------------------------------------------------------------
*** p<.01, ** p<.05, * p<.1
数据来源:Second National Health and Nutrition Examination Survey
2.4 案例4
通常进行回归之后,我们会根据估计的模型进行预测,探究目标变量如何变化,具体代码如下:
. quietly logistic diabetes age i.sex i.race bmi
. margins race
Predictive margins Number of obs = 10,349
Model VCE: OIM
Expression: Pr(diabetes), predict()
------------------------------------------------------------------
| Delta-method
| Margin std. err. z P>|z| [95% conf. interval]
--------+---------------------------------------------------------
race |
White | .0444783 .0021181 21.00 0.000 .0403269 .0486298
Black | .0773012 .0078482 9.85 0.000 .061919 .0926834
Other | .0606597 .0188137 3.22 0.001 .0237854 .0975339
------------------------------------------------------------------
. etable, margins column(command)
------------------------------
margins
------------------------------
Race
White 0.044
(0.002)
Black 0.077
(0.008)
Other 0.061
(0.019)
Number of observations 10349
------------------------------
. margins sex
Predictive margins Number of obs = 10,349
Model VCE: OIM
Expression: Pr(diabetes), predict()
--------------------------------------------------------------
| Delta-method
| Margin std. err. z P>|z| [95% CI]
--------+-----------------------------------------------------
sex |
Male | .0466962 .0030234 15.44 0.000 .0407 .0526
Female | .0494875 .0028336 17.46 0.000 .0439 .0550
--------------------------------------------------------------
. etable, margins column(command) append
--------------------------------------
margins margins
--------------------------------------
Race
White 0.044
(0.002)
Black 0.077
(0.008)
Other 0.061
(0.019)
Sex
Male 0.047
(0.003)
Female 0.049
(0.003)
Number of observations 10349 10349
--------------------------------------
2.5 案例5
最后,考虑到不同期刊对于估计结果的小数点以及字体格式存在差异,因此如何自定义表格内容至关重要,当然,etable
命令也当然支持,下面直接给出自定义字体格式和小数位代码:
. sysuse "auto.dta", clear
. reg price mpg rep78 trunk weight, robust
. est store m1
. reg price mpg rep78 trunk weight length, rob
. est store m2
. reg price mpg rep78 trunk weight length turn, rob
. est store m3
. etable, estimates(m1 m2 m3) column(index) keep(rep78 ///
trunk weight length turn) cstat(_r_b,font(,bond)) ///
cstat(_r_se) mstat(N, nformat(%9.3f)) ///
mstat(r2,nformat(%9.3g)) ///
stars(0.10 "*" .05 "**" .01 "***", attach(_r_b)) ///
showstars showstarsnote ///
title("表1 etable命令整理的回归结果") ///
note("数据来源:auto数据库") ///
export("result.docx")
输出结果如下:
表1 etable命令整理的回归结果
----------------------------------------------------------------
1 2 3
----------------------------------------------------------------
Repair record 1978 884.448 *** 909.522 *** 744.266 **
(285.421) (280.763) (316.631)
Trunk space (cu. ft.) -99.367 2.922 1.412
(83.723) (63.188) (65.100)
Weight (lbs.) 2.442 ** 4.963 ** 5.295 ***
(0.928) (1.892) (1.946)
Length (in.) -115.538 * -96.593
(59.959) (62.210)
Turn circle (ft.) -195.353
(161.207)
Number of observations 69.000 69.000 69.000
R-squared .376 .442 .461
----------------------------------------------------------------
*** p<.01, ** p<.05, * p<.1
数据来源:auto数据库
(collection ETable exported to file result.docx)
如此,一个完整的论文表格就完成了,以上就是 etable
命令用法的全部内容了 ,读者可以根据自己的数据类型调整相关选项得到想要的结果,从而为自己的文章添彩!
课程推荐:深度因果推断(2023年8月2-5日)
主讲老师:江艇
课程地点:西安·西北工业大学
🍓 课程主页:https://www.lianxh.cn/news/835167275c3af.html
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。