Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:朱志英 (中山大学)
邮箱:zhuzhy28@mail2.sysu.edu.cn
编者按:本文部分摘译自下文,特此致谢!
Source:Akcigit, Grigsby, Nicholas and Stantcheva (2022): Taxation and Innovation in the Twentieth Century, Quarterly Journal of Economics 137 (1): 329-385. -PDF- -Replication-
目录
散点图能够直观表现出变量间的总体关系趋势,因此被广泛地应用于论文中。但是,当样本量太大或者
binscatter
是用于生成分仓散点图 (binned scatterplot) 的 Stata 命令。其生成的图像显示了给定
那么,binscatter
是如何实现的呢?
binscatter
将散点划分成不同 bins,不同的 bins 含有相同的样本量;命令安装:
. ssc install binscatter, replace // 命令安装
命令语法:
binscatter varlist [if] [in] [weight] [, options]
其中,
varlist
:因变量和自变量;if
和 in
:添加限定条件;weight
:以该变量作为权重进行回归;controls()
:添加控制变量;absorb()
:使用固定效应;nquantiles()
:设置生成多少组 bins;noaddmean
:计算残差后不加回变量均值;nofastxtile
:使用 xtile
。接下来,我们以 nlsw88.dta 为例,绘制年龄和工资关系之间的图表,来感受一下 binscatter
的绘图效果。
. sysuse nlsw88, clear
. binscatter wage age // 生成最基础的 binscatter 图像
可以看到,在一定年龄区间内,wage 和 age 之间呈现出明显的负向关系。我们还可以对 bins 进行修改,例如将默认值 20 个 bins 修改为 30 个 bins。
. binscatter wage age, n(30) // 更改 bins 为 30 个,默认 bins 为 20 个
有时,我们除了关注变量间的线性关系,还想关注变量间的非线性关系 (如二次关系),binscatter
也可以帮助我们实现。
. binscatter wage age, line(qfit) // 进行二次拟合
此外,我们还可以使用 by
进行分组绘图,查看不同组中变量间的关系。例如:研究不同种族中,年龄和工资的关系。
. binscatter wage age, by(race) // 按照种族进行分组绘图
我们也可以使用 controls
加入控制变量。例如:在研究工资与年龄的关系时,我们将样本的工作经验设置为控制变量。
. binscatter wage age, controls(ttl_exp) // 加入控制变量:工作经验
另外,分组和控制变量可以结合起来。下图的例子中我们使用 absorb
命令,加入职业固定效应。
. binscatter wage age, by(race) absorb(occupation) // 加入固定效应进行分组回归
binscatter
还可以帮助我们观察自变量和因变量在某些数值上是否存在断点。如下面的例子中,我们使用 rd
命令观察工资与年龄的关系是否在 35 岁前后发生变化。
. binscatter wage age, rd(35) // 分段回归,该命令对散点无影响,但是生成分段回归曲线
接下来,本文将简要介绍 Akcigit et al.(2022, QJE) 论文的主要内容及 Figure 1 在论文中发挥的作用。
Akcigit et al. (2022, QJE) 研究了 20 世纪美国公司税和个人税对创新的影响,他们发现征税对创新数量有负面影响,也会迫使本地发明人外迁,但不会影响平均创新质量。州级税收弹性很大,并且与个人层面对创新产生的反应和跨州流动性的结果一致。公司税往往会特别影响公司发明者的创新生产和跨州流动性。个人所得税显着影响整体创新数量和发明人的流动性。文中的主要变量如下:
导入数据,设置全局暂元。
. lxhuse akcigit2022.dta, clear
. foreach var of varlist mtr90 top_corp {
2. replace `var'_lag3 = ln(1-`var'_lag3/100)
3. }
. global cx "L.real_gdp_pc L.population_density rd_credit_lag3 i.statenum"
. global T_p "mtr90_lag3" // 个人税
. global T_c "top_corp_lag3" // 公司税
绘制 Figure 1(A)。在以下代码中,[aw=pop1940]
表示把 1940 年的人口数作为权重回归。同时,作者控制公司所得税、滞后一年的人均实际 gdp、滞后一年的人口密度、滞后三年的研发支出抵免和不同的州,并使用 absorb
加入年份的固定效应,将样本分为 100 组进行回归。
. * 画图:Figure 1(A)
. binscatter lnpat $T_p [aw=pop1940], controls($T_c $cx) absorb(year) ///
> nquantiles(100) noaddmean nofastxtile savegraph("Fig1A.gph") replace
绘制 Figure 1(B)。同理,控制个人所得税,使用专利申请数对公司所得税进行回归。
. * 画图:Figure 1(B)
. binscatter lnpat $T_c [aw=pop1940], controls($T_p $cx) absorb(year) ///
> nquantiles(100) noaddmean nofastxtile savegraph("Fig1B.gph") replace
绘制 Figure 1(C)。我们控制个人所得税,使用发明者数量对公司所得税进行回归。
. * 画图:Figure 1(C)
. binscatter ln_inv $T_p [aw=pop1940], controls($T_c $cx) absorb(year) ///
> nquantiles(100) noaddmean nofastxtile savegraph("Fig1C.gph") replace
绘制 Figure 1(D)。我们控制公司所得税,使用发明者数量对个人所得税进行回归。
. * 画图:Figure 1 (D)
. binscatter ln_inv $T_c [aw=pop1940], controls($T_p $cx) absorb(year) ///
> nquantiles(100) noaddmean nofastxtile savegraph("Fig1D.gph") replace
最后,我们将 4 张图片进行组合。
. graph combine Fig1A.gph Fig1B.gph Fig1C.gph Fig1D.gph, ///
> rows(2) imargin(zero) graphregion(fcolor(white))
Note:产生如下推文列表的 Stata 命令为:
lianxh 绘图, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh