asdoc:Stata 结果输出又一利器!

发布时间:2019-04-02 阅读 203

作者:卢梅

   

Stata连享会   主页 || 视频 || 推文

连享会 - Stata 暑期班

线上直播 9 天:2020.7.28-8.7
主讲嘉宾:连玉君 (中山大学) | 江艇 (中国人民大学)
课程主页https://gitee.com/arlionn/PX | 微信版


目录


攥写论文过程中,将统计和回归结果以及其他变量输出到 word 是重要一步,如何才能既美观又不耗费大量脑细胞改改改、调调调呢?

summarizecorrelatetabstatcross-tabsregressionst-tests等等等等,这些命令的结果怎么输出?想想都觉得头大。

每次想把几个回归结果显示在一张表上,都要每做一次回归就储存一次,最后集合起来输出。对于表头相同,数据结构相同的数据,怎样才能既省地方又美观的把它们放在一张表上,也经常让人抓狂。

好在, Stata 中一条新发布的命令 asdoc,将解救我们于结果输出的苦海中。其最大的特点是:在各种命令前加 asdoc 就能轻轻松松输出结果。

本文将重点介绍 asdoc 命令关于描述性统计输出、回归结果输出、表头相同数据结构相同的数据输出的功能,篇幅有限,所以挑最经常用到的功能进行介绍,asdoc 详情请见help asdoc

接下来,就让我们一起来见证 asdoc 的神奇功能吧。

首先,老规矩,在 stata 中敲入如下代码安装 asdoc

  • ounter(line
. ssc install asdoc, replace

1、输出描述性统计结果

Example 1:基本用法

以 Stata 系统自带的数据为例,直观说明 asdoc 的用法

  • ounter(line
  • ounter(line
. sysuse auto, clear . asdoc sum

描述性统计输出结果如下:

asdoc 基本输出结果 (Stata连享会) 相关说明如下:

  • asdoc sumasdoc sum, append 效果相同,新输出的描述性统计结果连带之前的命令运行结果,一起输出到word文档里。
  • asdoc sum, replace 表示只输出最新运行的描述性统计结果。
  • asdoc sum price mpg rep78 表示对 price mpg rep78 这些变量进行描述性统计
  • asdoc sum price mpg rep78,save(summary.doc) title(###) 表示对 price mgp rep78 进行描述性统计,表名显示为 ###,word 文档保存为 summary.doc,效果如下:
image
image

Example 2:设定输出格式

我们也可以输出更多的统计量,同时对输出格式进行美化设定:

  • ounter(line
. asdoc sum,  stat(N mean sd tstat p1 p99) fs(7) dec(2)

具体释义如下:

  • stat(# # #) 表示需要输出的描述性统计变量,具体而言,stat(N mean sd tstat p1 p99) 表示输出的统计变量为样本数、算术平均数、标准差、t 值、1% 分位数、99% 分位数,
  • fs(#)Font size 的缩写,表示字号大小为 # 英镑,
  • dec(#)Decimal points 的缩写,表示输出结果保留到小数点后 # 位

输出效果如下:

asdoc 输出统计结果-格式控制 (Stata连享会)
asdoc 输出统计结果-格式控制 (Stata连享会)

Example 3:分组统计量

如下两条命令都可以实现将国外样本与国内样本分开进行描述性统计:

  • ounter(line
  • ounter(line
  • ounter(line
. asdoc sum, stat(N mean sd tstat p1 p99) by(foreign)*-或. bysort foreign: asdoc sum, stat(N mean sd tstat p1 p99)

具体释义如下:

  • by(varname) 表示按照 varname 分类进行描述性统计,
  • 如果想增加文本描述可以使用 text 选项, 例如如下命令就可以在表格下方显示文本,括号内的文本可以自行替换:
  • ounter(line
. asdoc, text(A car is a wheeled motor vehicle used for transportation) append fs(10)

输出效果为:

asdoc 分组统计量输出 (Stata连享会)
asdoc 分组统计量输出 (Stata连享会)

2、回归结果输出

接下来,我们介绍 asdoc 大大解放生产力的两大利器:nest appendrowappend 选项。

基本用法

将几个回归结果输出到一张表上是我们在写论文时经常遇到的操作,来看看 asdoc 是如何实现的:先运行第一个回归,后面加 nest 表示这将会是一张集合输出的表,代码及输出结果如下:

  • ounter(line
  • ounter(line
. sysuse auto, clear. asdoc reg price mpg rep78, nest replace

输出效果为:

asdoc 回归结果输出 (Stata连享会)
asdoc 回归结果输出 (Stata连享会)

接下来,我们再运行第二个回归,代码及输出结果如下:

  • ounter(line
. asdoc reg price mpg rep78 headroom, nest append
asdoc 回归结果输出 (Stata连享会)
asdoc 回归结果输出 (Stata连享会)

运行第三个回归:

  • ounter(line
. asdoc reg price mpg rep78 headroom weight, nest append

结果如下:

简言之,需要在一张表上显示多个回归结果就依次进行 nest append

横向放置的回归表格

以上介绍的是对于被解释变量相同的回归的输出方式,对于被解释变量不同,解释变量相同的多个回归结果的共同输出问题,我们使用 asdoc 中的 wide 选项,仍然以 Stata 系统自带的数据为例,输入如下命令:

  • ounter(line
. asdoc reg price mpg rep78, replace wide 

输出结果为:

想把被解释变量为 trunk 的回归结果追加于上表,输入如下命令:

  • ounter(line
. asdoc reg trunk mpg rep78, wide

输出结果为:

image
image

加入被解释变量为 weight 的回归结果,输出效果为:

有如下几个问题需要说明:

  • 在每一条回归命令后加 t(below) 表示在系数的下方显示对应的 t 值
  • t(side)表示在旁边显示t值。

使用如下两条命令重现输出上述三个模型的估计结果:

  • ounter(line
  • ounter(line
. asdoc reg price mpg rep78, wide replace t(below) // below. asdoc reg price mpg rep78, wide replace t(side)  // beside

效果为:

image.png

如果想显示标准差而不是t值,就把t(below)t(side)替换成se(below)se(side)

3、表头相同,数据结构相同的数据输出

t-tests 结果是表头相同,数据结构相同的典型代表,t-tests 针对每一个变量都需要运行一次,但每个变量的 t-tests 结果数据结构相同,此时就可以用 rowappend 使它们显示在一张表上。输入如下代码时,只显示 rep78 的 t-tests 结果。

  • ounter(line
  • ounter(line
. sysuse auto, clear. asdoc ttest rep78==0, replace title(T-test results : mean==0)

接着依次输入:

  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
  • ounter(line
. asdoc ttest  price==0, rowappend. asdoc ttest    mpg==0, rowappend. asdoc ttest   turn==0, rowappend. asdoc ttest weight==0, rowappend. asdoc ttest length==0, rowappend

每输入一条命令,表格都会自动增加一行来显示新增加变量的t-tests结果,最终结果如下:

4、多维列表输出

强大的 asdoc 也可以实现列表统计功能,不加规定默认输出的统计量为频数,可以通过 contents() 设定想要输出的统计量名称。title(###) 对表格名称进行设定。输出一维列表的命令如下:

  • ounter(line
  • ounter(line
. sysuse auto, clear. asdoc table rep78, title(###) c(n mpg mean mpg sd mpg median mpg) replace

表名为 ###,一维列表如下:

  • 二维列表在 asdoc table 后加表示分类依据的两个变量
  • 三维列表在 asdoc table 后面加表示分类依据的三个变量
  • 四维列表在 asdoc table 后加表示分类依据的三个变量后,需以逗号隔开,再加 by()() 里的变量表示第四个分类依据。

试过之后发现,多维列表用 asdoc 输出会出现单词被隔开显示成两列的问题,不知道是我 bug 了还是命令本身就 bug 了,如果你试过之后也发现,显示结果有问题,列表显示暂时还是用传统的 table 命令吧,Stata连享会 2018 年 4 月 8 号的推文有关于 table 命令的详细用法,请戳 [Stata:今天你 “table” 了吗?-简书]

欢迎提出批评意见,共同探讨,共同学习!

本期 Stata 课堂到此结束,观众朋友们,下期再会!

asdoc 相关链接

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
Stata暑期班 连玉君
江艇
线上直播 9 天
2020.7.28-8.7
效率分析-专题 连玉君
鲁晓东
张 宁
视频-TFP-SFA-DEA
已上线,3天
文本分析/爬虫 游万海
司继春
视频-文本分析与爬虫
已上线,4天
空间计量系列 范巧 空间全局模型, 空间权重矩阵
空间动态面板, 空间DID
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:
    • 课程, 直播, 视频, 客服, 模型设定, 研究设计, 暑期班
    • stata, plus,Profile, 手册, SJ, 外部命令, profile, mata, 绘图, 编程, 数据, 可视化
    • DID,RDD, PSM,IV,DID, DDD, 合成控制法,内生性, 事件研究, 交乘, 平方项, 缺失值, 离群值, 缩尾, R2, 乱码, 结果
    • Probit, Logit, tobit, MLE, GMM, DEA, Bootstrap, bs, MC, TFP, 面板, 直击面板数据, 动态面板, VAR, 生存分析, 分位数
    • 空间, 空间计量, 连老师, 直播, 爬虫, 文本, 正则, python
    • Markdown, Markdown幻灯片, marp, 工具, 软件, Sai2, gInk, Annotator, 手写批注, 盈余管理, 特斯拉, 甲壳虫, 论文重现, 易懂教程, 码云, 教程, 知乎

连享会主页  lianxh.cn
连享会主页 lianxh.cn

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


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

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD