Stata:用 bytwoway 实现快速分组绘图

作者:卢家锐 | 连玉君 | (知乎 | 简书 | 码云)

Stata连享会 精彩推文1 || 精彩推文2


重要信息: bytwoway 命令安装

  • 方法1:使用 net install 命令
net install bytwoway, ///
    from(https://github.com/matthieugomez/stata-bytwoway/raw/master)
  • 方法2:使用 github install 命令
. github install matthieugomez/bytwoway.ado, replace

Note: 外部命令安装问题,参见:Stata: 外部命令的搜索、安装与使用

bytwoway 项目主页:matthieugomez/bytwoway.ado



1. 分组绘图的用途

一般我们在检验交互(调节)作用的时候,一般选择纳入交乘项或者分组进行系数差异性检定判断,然而还有第三种更加直观的方法就是通过分组绘图的方法,有的时候你可以在还没有进行实证前通过分组绘图的方法就可以直接征服论文评审,说明这确实是存在调节作用的。下面举几个分组绘图在国内外期刊中应用的例子:

范例 1 :Ashiq Ali, Lee-Seok Hwang, Mark A. Trombley. Arbitrage Risk and the Book-to-market Anomaly [J]. Journal of Financial Economics, 2003, 69(2):355-373.

解读: 横轴表示投资组合建立后的时间(月度),纵轴表示相应投资组合经规模调整后的累计回报率。可以非常明显的看出,波动率大的 (G1) 投资组合的累计回报率明显高于波动率小的 (G2) 投资组合。

范例 2 :刘柏, 郭书妍. 董事会人力资本及其异质性与公司绩效[J]. 管理科学, 2017, 30(3):23-34.


范例 3 :汝毅, 郭晨曦, 吕萍. 高管股权激励、约束机制与对外直接投资速率[J]. 财经研究, 2016, 42(3):4-15.


范例 4 :李绍龙, 龙立荣, 贺伟. 高管团队薪酬差异与企业绩效关系研究:行业特征的跨层调节作用[J]. 南开管理评论, 2012, 15(4):55-65.


范例 5 :李维安, 孙林. 同乡关系在晋升中会起作用吗?——基于省属国有企业负责人的实证检验[J]. 财经研究, 2017, 43(1):17-28.


2. bytwoway 命令和官方命令 twoway 的区别

  • 当分组变量只有 1 个并且分组类别为 2 ,两种命令在绘图几乎没有区别,但是 bytwoway 命令的语法更为简洁,不需要根据分组变量类别每一组都重复,一个 by( ) 选项就解决了。下面举例说明:

twoway 命令根据分组变量 foreign 绘图

sysuse auto.dta, clear
set scheme m2color  // 设定绘图模板为「彩色模板」
twoway (line price weight if foreign==1, sort) ///
       (line price weight if foreign==0, sort)

效果如下:

bytwoway 命令根据分组变量 foreign 绘图

sysuse auto.dta, clear
collapse (mean) price, by(weight foreign)
bytwoway (line price weight), by(foreign) aes(color lpattern)

效果如下:

特别提示: 当分组变量大于 1 个或者分组类别为 2 时,官方命令 twoway 不再适用,而只能用 bytwoway

3. bytwoway命令的具体操作

bytwoway 是一个在实现快速分组绘图上相当便捷的命令,可以适用于对数据进行任意分组的情形,不同组别的颜色和类型可以通过选择项 aesthetics 来设置。

3.1 bytwoway 命令安装

  • 方法1:使用 net install 命令
net install bytwoway, ///
    from(https://github.com/matthieugomez/stata-bytwoway/raw/master)
  • 方法2:使用 github install 命令
. github install matthieugomez/bytwoway.ado, replace

Note: 外部命令安装问题,参见:Stata: 外部命令的搜索、安装与使用

3.2 bytwoway 命令举例

范例1:根据单个变量分组绘图

  • 根据分组变量 race 绘图
sysuse nlsw88.dta, clear
collapse (mean) wage, by(grade race)
bytwoway (line wage grade),   ///
         by(race) aes(color lpattern)
  • 根据分组变量 race 绘图,改变了分组线条的类型
bytwoway (scatter wage grade, connect(l)), ///
         by(race) aes(color msymbol)
  • 根据分组变量 race 绘图,改变了分组线条的颜色类型
bytwoway line wage grade, by(race) aes(color) ///
   colors("248 118 109" "0 186 56"  "97 156 255")

说明:
在上述命令中,我们使用了 palette 等用于改变分组线条的颜色的选项,这些选项需要安装 colorscheme 命令包才可以使用。安装命令如下:

net install colorscheme, /// 
from(https://github.com/matthieugomez/stata-colorscheme/raw/master/)

范例2:多变量分组绘图

  • 根据分组变量 smsa 、race 绘图
sysuse nlsw88.dta, clear
collapse (mean) wage, by(grade smsa race)
bytwoway line wage grade, by(smsa race)
  • 根据分组变量 smsa 、race 绘图,改变了分组线条的颜色深浅
bytwoway line wage grade, by(smsa race)  ///
         aes(color) palette(GnBu)

关于我们

  • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
  • 公众号推文同步发布于 CSDN-Stata连享会简书-Stata连享会知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。
  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
  • Stata连享会 精彩推文1 || 精彩推文2

联系我们

  • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
  • 联系邮件: StataChina@163.com

往期精彩推文


欢迎加入Stata连享会(公众号: StataChina)

推荐阅读更多精彩内容