Stata结果输出:强大的etable命令

发布时间:2023-07-19 阅读 2570

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

编译: 姜昊 (华东师范大学)
邮箱: HaoJiang0204@outlook.com


目录


1. etable 介绍

1.1 命令介绍

目前Stata 软件有着众多的实证结果输出命令,对此,连享会也对其进行梳理总结,主要包括 asdocxxx2docxoutreg2logout 以及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 regressionestimates,则显示 est store namenameindex,则按照阿拉伯数字从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]):报告模型统计量,其中,主要包括以下结果,依次是NaicbicFchi2llr2r2_arankscalar_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]):指定输出表格的文件名称与格式,该命令支持docxhtmlpdfxlsxxlstexsmcltxtmarkdownmd等格式,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 命令用法的全部内容了 ,读者可以根据自己的数据类型调整相关选项得到想要的结果,从而为自己的文章添彩!

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh