baselinetable命令:论文基本统计量表格输出到Excel和Word

文摘   教育培训   2025-01-09 22:01   山西  

👇 连享会 · 推文导航 | www.lianxh.cn

🍓 课程推荐:连享会:2025 寒假班
嘉宾:连玉君(初级|高级);杨海生(前沿)
时间:2025 年 1 月 13-24 日
咨询:王老师 18903405450(微信)


温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

作者:何庆红(北京大学中国卫生经济研究中心)


目录[

  • 1. 下载安装

  • 2. 语法格式

  • 3. 应用举例

  • 4. baselinetable 与其他命令的比较

    • 4.1 fsum 命令

    • 4.2  tabstat 命令

  • 5. baselinetable 结果输出

  • 6. 结果输出和呈现相关推文

  • 7. 参考资料



正所谓 「Garbage in, garbage out」。在实证分析中,对数据的基本描述是必要一环。今天我们介绍一个简洁便利的外部命令 baselinetable,用于连续变量和类别变量的基本描述性统计分析,呈现形式为 一维表 或者 二维表

baselinetable 命令有如下特征:

  • 添加选项可以汇报缺漏的样本数
  • 对于每个变量可汇报不同的统计量
  • 表格内容可以存储为数据、文本、网页等文件格式

1. 下载安装

在 Stata 命令窗口中输入如下命令即可自动安装 baselinetable 命令:

ssc install baselinetable, replace

2. 语法格式

baselinetable 的基本语法格式如下:

baselinetable [insertrow["string"]] varname [(rowvariable_options)] [[insertrow] varname...] [if] [in] [, main_options]

统计量的设定

  • by(varname[, by_options]) 定义的是统计描述的分组变量
  • catvartab(specs) 定义类别变量的统计量,默认设置是catvartab("# (%\%)"),其中#表示某一类别的频数,%表示该类别占总体的比例
  • ctsvartab(specs)表示连续变量的统计量,默认设置是ctsvartab("mean (sd)"),其中mean表示该连续变量的均值,sd表示标准误,还可以根据研究需要作其他设定,如Varmaxminp1 p5 p10 p25 p50 p75 p90 p95 p99
  • missing汇报变量存在遗漏值的样本个数,其中reportmissing汇报每个行变量存在遗漏观测值的个数
  • pcformat(%fmt)定义百分数的显示形式,默认设置是pcformat(%5.1f),即保留小数点后一位,其他如均值meanformat(%fmt)、标准误sdformat(%fmt)、中位数medianformat(%fmt)等。

变量名的设定

  • varname 显示变量名称,
  • varvalue 显示类别变量的分类标签,若只显示某一个变量名称和分类标签,只需在指定变量后加上这两个选项即可,如 race(varname varvalue)
  • afterhead 在变量名后面添加选项,如 afterhead( meanformat(sd)) 表示在变量名后面添加 meanformat(sd);也可以更改变量名称,如 VAR(novarlabel afterhead("某某")) 将变量名VAR改为某某
  • subgroup 表示某变量子样本的结果,如 subgroup(race==1) 表示变量民族取值为 1 的结果  


3. 应用举例

这里我们使用 Stata 官方范例数据 "nlsw88.dta" 来说明该命令的具体使用方法。

sysuse "nlsw88.dta", clear 

首先,看简单的一维表形式:

. baselinetable wage(cts) hours(cts) age(cts) union race  //一维表
+------------------------------------+
| | N=2246 |
|---------------------+--------------|
| hourly wage | 7.8 (5.8) |
|---------------------+--------------|
| usual hours worked | 37.2 (10.5) |
|---------------------+--------------|
| age in current year | 39.2 (3.1) |
|---------------------+--------------|
| union worker | |
|---------------------+--------------|
| nonunion | 1417 (75.5%) |
|---------------------+--------------|
| union | 461 (24.5%) |
|---------------------+--------------|
| race | |
|---------------------+--------------|
| white | 1637 (72.9%) |
|---------------------+--------------|
| black | 583 (26.0%) |
|---------------------+--------------|
| other | 26 (1.2%) |
+------------------------------------+

其次,加入分组变量,汇报二维列联表形式:

. baselinetable wage(cts) hours(cts) age(cts) union race, by( married , totalcolumn) 
+-----------------------------------------------------------------+
| | married | | |
|---------------------+-------------+--------------+--------------|
| | single | married | Total |
|---------------------+-------------+--------------+--------------|
| | N=804 | N=1442 | N=2246 |
|---------------------+-------------+--------------+--------------|
| hourly wage | 8.1 (6.3) | 7.6 (5.4) | 7.8 (5.8) |
|---------------------+-------------+--------------+--------------|
| usual hours worked | 39.2 (9.1) | 36.1 (11.1) | 37.2 (10.5) |
|---------------------+-------------+--------------+--------------|
| age in current year | 39.2 (3.0) | 39.1 (3.1) | 39.2 (3.1) |
|---------------------+-------------+--------------+--------------|
| union worker | | | |
|---------------------+-------------+--------------+--------------|
| nonunion | 475 (72.4%) | 942 (77.1%) | 1417 (75.5%) |
|---------------------+-------------+--------------+--------------|
| union | 181 (27.6%) | 280 (22.9%) | 461 (24.5%) |
|---------------------+-------------+--------------+--------------|
| race | | | |
|---------------------+-------------+--------------+--------------|
| white | 487 (60.6%) | 1150 (79.8%) | 1637 (72.9%) |
|---------------------+-------------+--------------+--------------|
| black | 309 (38.4%) | 274 (19.0%) | 583 (26.0%) |
|---------------------+-------------+--------------+--------------|
| other | 8 (1.0%) | 18 (1.2%) | 26 (1.2%) |
+-----------------------------------------------------------------+

第三,添加选项,汇报缺漏的样本数:

. baselinetable wage(cts) hours(cts) age(cts) union race,  ///
by( married , totalcolumn) reportmissing

+-----------------------------------------------------------------+
| | married | | |
|---------------------+-------------+--------------+--------------|
| | single | married | Total |
|---------------------+-------------+--------------+--------------|
| | N=804 | N=1442 | N=2246 |
|---------------------+-------------+--------------+--------------|
| hourly wage | 8.1 (6.3) | 7.6 (5.4) | 7.8 (5.8) |
|---------------------+-------------+--------------+--------------|
| usual hours worked | 39.2 (9.1) | 36.1 (11.1) | 37.2 (10.5) |
|---------------------+-------------+--------------+--------------|
| MISSING | 3 | 1 | 4 |
|---------------------+-------------+--------------+--------------|
| age in current year | 39.2 (3.0) | 39.1 (3.1) | 39.2 (3.1) |
|---------------------+-------------+--------------+--------------|
| union worker | | | |
|---------------------+-------------+--------------+--------------|
| nonunion | 475 (72.4%) | 942 (77.1%) | 1417 (75.5%) |
|---------------------+-------------+--------------+--------------|
| union | 181 (27.6%) | 280 (22.9%) | 461 (24.5%) |
|---------------------+-------------+--------------+--------------|
| MISSING | 148 | 220 | 368 |
|---------------------+-------------+--------------+--------------|
| race | | | |
|---------------------+-------------+--------------+--------------|
| white | 487 (60.6%) | 1150 (79.8%) | 1637 (72.9%) |
|---------------------+-------------+--------------+--------------|
| black | 309 (38.4%) | 274 (19.0%) | 583 (26.0%) |
|---------------------+-------------+--------------+--------------|
| other | 8 (1.0%) | 18 (1.2%) | 26 (1.2%) |
+-----------------------------------------------------------------

4. baselinetable 与其他命令的比较

baselinetable 功能相似的命令还有 summarizetabulatetabletabstatfsum 等。summarize 命令 (通常简写为 susum) 主要用于一维列表的相关统计量的计算。table 命令主要是用来做列表统计,尤其对于类别变量的统计,包括一维表、二维表、三维等以上维度,具体可参看 「Stata:今天你 “table” 了吗?(微信版)」;CSDN版本。

下面通过具体例子对它们之间的差异进行对比。

4.1 fsum 命令

fsum 命令的语法非常简洁,输出结果也颇为丰富,包括:N、mean、sd、min、max、median 等几十个统计量 (sum varlist, detail 存储于内存中的返回值都可以通过 fsum 输出)。相对于 Stata 官方命令 summarizetabstat,该命令可以对类别变量进行更为细致的统计分析。更为便利的是,该命令允许用户设置的变量标签,汇报格式自动调整更符合多数期刊的内容和格式要求。

下面举例说明该命令的主要用法。

*-基本表格

. fsum wage hours age union race, cat(union) mcat(race)

Variable | N Mean SD Min Max
---------------+---------------------------------------------
wage | 2246 7.77 5.76 1.00 40.75
hours | 2242 37.22 10.51 1.00 80.00
age | 2246 39.15 3.06 34.00 46.00
union | 1878 0.25 0.43 0.00 1.00
nonunion (%) | 1417 75.45
union (%) | 461 24.55
race | 2246 1.28 0.48 1.00 3.00
white (%) | 1637 72.89
black (%) | 583 25.96
other (%) | 26 1.16

*-借助 `bysort' 前缀可以实现分组统计

. bysort married: fsum wage hours age union race

-------------------------------------------------------------
-> married = single

Variable | N Mean SD Min Max
---------------+---------------------------------------------
wage | 804 8.08 6.34 1.15 40.20
hours | 801 39.24 9.10 2.00 80.00
age | 804 39.22 3.05 34.00 46.00
union | 656 0.28 0.45 0.00 1.00
race | 804 1.40 0.51 1.00 3.00

-------------------------------------------------------------
-> married = married

Variable | N Mean SD Min Max
---------------+---------------------------------------------
wage | 1442 7.59 5.40 1.00 40.75
hours | 1441 36.10 11.06 1.00 80.00
age | 1442 39.12 3.07 34.00 45.00
union | 1222 0.23 0.42 0.00 1.00
race | 1442 1.21 0.44 1.00 3.00

4.2  tabstat 命令

这是目前最为常用的用于报告基本统计量的 Stata 官方命令。它可以汇报一系列的统计量,汇报内容和格式也较为灵活。

\\\一维表形式如下:

. tabstat wage hours age union race, stat(N mean sd min max) col(stat)

variable | N mean sd min max
-------------+--------------------------------------------------
wage | 2246 7.766949 5.755523 1.004952 40.74659
hours | 2242 37.21811 10.50914 1 80
age | 2246 39.15316 3.060002 34 46
union | 1878 .2454739 .4304825 0 1
race | 2246 1.282725 .4754413 1 3
----------------------------------------------------------------

\\\加入分组变量,汇报二维表形式:

. tabstat wage hours age union race, by(married) stat(N mean sd min max) nototal long col(stat)

married variable | N mean sd min max
---------------------+--------------------------------------------------
single wage | 804 8.080765 6.336071 1.151368 40.19808
hours | 801 39.23845 9.099001 2 80
age | 804 39.21891 3.049911 34 46
union | 656 .2759146 .4473151 0 1
race | 804 1.404229 .5109335 1 3
---------------------+--------------------------------------------------
married wage | 1442 7.591978 5.399229 1.004952 40.74659
hours | 1441 36.09507 11.06107 1 80
age | 1442 39.1165 3.066058 34 45
union | 1222 .2291326 .4204468 0 1
race | 1442 1.214979 .4402987 1 3
------------------------------------------------------------------------

5. baselinetable 结果输出

baselinetable 命令提供了两个选项,可以把屏幕上输出的结果快捷地输出为 Excel 或 Word 文档:

  • exportexcel 表示将结果输出到excel表格里面
  • putdocxtable 表示将结果输出到word里面
*-第一种方法:将结果输出到Excel表格里面
baselinetable race age(cts) ht lwt(cts), by(smoke, totalcolumn) exportexcel(table1)
*-第二种方法:将结果输出到word里面
putdocx begin
baselinetable race age(cts) ht lwt(cts), by(smoke, totalcolumn) putdocxtab(table1)
putdocx save mydoc, replace

6. 结果输出和呈现相关推文

7. 参考资料

  • Nicholas J. Cox, 2003, Speaking Stata: Problems with Tables, Part I, Stata Journal, 3(3): 309–324. -PDF-
  • Nicholas J. Cox, 2003, Speaking Stata: Problems with Tables, Part II, Stata Journal, 3(4): 420–439. -PDF-
  • Ben Jann, 2005, Making Regression Tables from Stored Estimates, Stata Journal, 5(3): 288–308. -PDF-
  • Ben Jann, 2007, Making Regression Tables Simplified, Stata Journal, 7(2): 227–244. -PDF-
  • Michael Lokshin,  Zurab Sajaia, 2008, Creating Print-ready Tables in Stata, Stata Journal, 8(3): 374–389. -PDF-
  • John Luke Gallup, 2012, A New System for Formatting Estimation Tables, Stata Journal, 12(1): 3–28. -PDF-
  • Lauren J. Scott,  Chris A. Rogers, 2015, Creating Summary Tables Using the Sumtable Command, Stata Journal, 15(3): 775–783. -PDF-
  • Susan Donath, 2018, Baselinetable: A Command for Creating one- and Two-way Tables of Summary Statistics, Stata Journal, 18(2): 327–344. -PDF-
  • Susan Donath, 2018, Baselinetable: A Command for Creating one- and Two-way Tables of Summary Statistics, Stata Journal, 18(2): 327–344. -PDF-


   

🍓 课程推荐:公开课:Stata+R 软件基础
嘉宾:候丹丹
扫码进群 获取资料及听课链接!

尊敬的老师 / 亲爱的同学们:

连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!

New! Stata 搜索神器:lianxh 和 songbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
  . ssc install lianxh
  . ssc install songbl
👉  使用:
  . lianxh DID 倍分法
  . songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。

连享会
连玉君老师团队分享,主页:lianxh.cn。白话计量,代码实操;学术路上,与君同行。
 推荐账号,扫码关注
推荐账号二维码
 最新文章