Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:李烨阳 (浙江大学)
邮箱:li_yeyang95@163.com
编者按:本文主要参考自下文,特此致谢!
Source:Oberfichtner M, Tauchmann H. Stacked linear regression analysis to facilitate testing of hypotheses across OLS regressions[J]. The Stata Journal, 2021, 21(2): 411-429. -PDF-
目录
在连享会之前的推文中,已经对组间系数差异检验方法进行了较为系统的介绍,相关推文如下:
推文 | 主要介绍的方法 |
---|---|
Stata: 如何检验分组回归后的组间系数差异? | 系统性方法总结 引入交叉项 基于似无相关模型的检验方法 基于组合检验的方法 |
Stata:虚拟变量交乘项生成和检验的简便方法 | 引入交叉项 |
Stata:分组回归系数比较的新思路 | 基于自抽样获得组间系数差的经验分布 |
自己动手做组间系数差异检验-bootstrap-bdiff | 基于组合检验的方法 基于自抽样获得组间系数差的经验分布 |
在此基础上,本文主要介绍 Stata 的外部命令 stackreg
, 它通过堆叠数据回归分析和聚类稳健标准误估计的方法,进行基于似无相关模型的组间系数检验。与之前重点介绍的单方程的组间系数差异检验不同,该命令适用于方程组的组间系数差异联合显著性检验,同时该命令支持面板数据和多维聚类标准误,但只适用于普通最小二乘法。
stackreg
命令的核心功能是通过堆叠数据,来估计一个拥有多个因变量和相同自变量集的线性方程组。其中,方程组可以通过如下模型来刻画:
针对组间系数差异检验的问题,stackreg
命令的主要应用场景是对协变量进行平衡性检验 (此时
为了解决这一跨方程的联合显著性假设检验的问题,可以使用似无相关模型。一个常用的实操策略是使用 suest
命令。与 stackreg
相比,suest
在模型设定上具有更高的灵活性,例如可以组合不同模型类型 (OLS、Probit 等),而 stackreg
只允许 OLS。但 stackreg
在 OLS 回归方面更具有专精优势,它可以实现固定效应估计,允许多维聚类标准误,支持跨方程的参数约束。
堆叠数据回归分析 (stacked regression analysis) 需要先将数据堆叠并构造构造虚拟变量进行区分,然后在堆叠数据中运行一次回归命令得到联合估计结果。这里我们首先介绍何为 “堆叠数据”。假设待估计的方程组为:
原始数据的格式如下:
堆叠数据是指将因变量数据从 wide 格式转化为 long 格式 (通过使用 reshape
或 sreshape
命令实现)。在这里,我们对数据进行如下操作:
转换后的数据格式为:
1 | 1 | 1 | |||
2 | 1 | 1 | |||
3 | 1 | 1 | |||
1 | 2 | 1 | |||
2 | 2 | 1 | |||
3 | 2 | 1 |
这样,我们就可以在 Stata 中通过运行一次回归命令实现联合估计。代码基础格式如下:
reg y i.exp#c.xm i.exp#c.xn i.exp#c.one, noconstant
通过堆叠数据进行一次回归得到的系数点估计,与在原始数据中分别估计每一个方程得到的系数点估计是一致的。即上述命令得到的系数点估计与在原始数据中运行下面的命令是一致的:
reg ya xm xn
reg yb xm xn
reg yc xm xn
这里主要为了解释堆叠数据的实现原理,并没有对标准误进行相应校正处理。具体如何实现多维聚类,如何对标准误进行校正,读者可以参考 Oberfichtner 和 Tauchmann (2021)。如果是对面板数据进行固定效应回归分析,则需要先对数据进行去中心化处理 (在 Stata 中可以通过 xtdata
命令实现),处理后可以按照上述步骤进行后续分析。
需要注意的是,stackreg
和 xtstackreg
命令本身并不能进行组间系数差异的联合显著性检验,而只是为联合显著性检验奠定基础。在运行 stackreg
或 xtstackreg
命令之后,可以通过运行 test
或 testparm
命令进行跨方程的联合显著性检验。
命令安装:
net sj 21-2 st0641 // 查看程序包
net install st0641.pkg, replace // 安装程序文件
net get st0641.pkg, replace // 下载作者提供的 dofiles 和 data
命令语法:
stackreg depvars = indepvars [if] [in] [weight] [, options]
xtstackreg depvars = indepvars [if] [in] [weight] [, options]
其中,depvars
指因变量列表,indepvars
指自变量列表,均可以包括因子变量。详细内容可以在 Stata 中输入 help stackreg
进行查询。可选项包括:
fe
:对面板数据 (需要先通过 xtset
命令声明) 进行固定效应估计。xtstackreg
等价于 stackreg
加入 fe
选项;noconstant
:去掉常数项;constraints(numlist)
:加入线性约束。需要先通过 constraint
声明线性约束的形式;nocommon
:允许由于某因变量有缺失值导致的不同因变量对应方程的观测值有差异。若不加入该选项,则默认只选取没有缺失值的样本纳入回归估计;cluster(clustvarlist)
:声明聚类标准误的聚类表示变量。运行多维聚类 (需安装 cgmreg
外部命令)。若不加入该选项,则默认使用原始观测值的标识符作为聚类变量 (即上表中的变量 tempid);df(adjust|raw|areg)
:自由度调整类型,默认 df(adjust)
;wald
:加入该选项后,后续运行 test
或 testparm
命令提供 Wald 检验而不是 F 检验;sreshape
: 加入该选项后,在数据堆叠步骤中使用 sreshape
命令,默认使用 reshape
命令;level(#)
:调整显著性水平;edittozero(#)
:指定估计方差协方差的元素在何种程度上接近 0 时将其设置为 0,默认值为 edittozero (1)
;omitted
:加入该选项后,由于共线性而省略的变量将显示在结果中并标记为 omitted;emptycells
:加入该选项后,因子变量交互作用的空单元格将显示在结果中并标记为 empty;display_options
:与输出格式有关的选项,详见 help estimation options##display_options
。
这里我们对 stackreg
帮助文件中提供的例 1 进行详细说明,更多应用实例可以参考帮助文件。数据来源为 Kiel 和 McClain (1995) 所提供数据的一个子集,包括马萨诸塞州 (North Andover) 1978 和 1981 年的住房价格与特征。
谣传垃圾焚化炉在 1979 年建立,因此将 1978 年作为基准年。在 1981 年开始建造垃圾焚化炉,到 1981 年底垃圾焚化炉会准备运营。基准回归采用了双重差分方法,研究建造垃圾焚化炉对房价的影响。变量 rprice 代表房价,变量 y81 代表指示年份是否为 1981 年的虚拟变量,变量 nearinc 代表住房是否靠近垃圾焚化炉的虚拟变量。age、c.age#c.age、intst、area、land、rooms、baths 是一组包含因子变量形式的协变量。
. use http://fmwww.bc.edu/ec-p/data/wooldridge/kielmc, clear
. reg rprice age c.age#c.age intst area land rooms baths y81##nearinc
通过 stackreg
和 testparm
命令进行协变量平衡性检验。即协变量 y81 和 nearinc 交乘项回归系数是否具有显著性差异,也就是 DID 方法中 post 与 treat 交乘项回归系数是否具有显著性差异。堆叠数据回归和联合显著性检验的命令如下:
. stackreg age c.age#c.age intst area land rooms baths = y81##nearinc // 堆叠数据回归
Stacked linear regression Number of obs = 321
------------------------------------------------------------------------------
| Clust. Robust
| Coefficient std. err. t P>|t| [95% conf. interval]
-------------+----------------------------------------------------------------
age |
y81 | -4.248 3.718 -1.14 0.254 -11.562 3.066
nearinc | 27.038 5.752 4.70 0.000 15.721 38.355
y81#nearinc | -7.588 7.670 -0.99 0.323 -22.678 7.503
_cons | 12.748 3.234 3.94 0.000 6.386 19.110
-------------+----------------------------------------------------------------
c.age#c.age |
y81 | -1021.601 590.497 -1.73 0.085 -2183.348 140.146
nearinc | 1401.814 942.009 1.49 0.138 -451.499 3255.127
y81#nearinc | -147.613 1065.374 -0.14 0.890 -2243.636 1948.410
_cons | 1432.650 560.521 2.56 0.011 329.879 2535.422
-------------+----------------------------------------------------------------
intst |
y81 | -2975.371 925.218 -3.22 0.001 -4795.650 -1155.091
nearinc | -1.56e+04 823.295 -19.01 0.000 -1.73e+04 -1.40e+04
y81#nearinc | 3325.371 1263.156 2.63 0.009 840.232 5810.509
_cons | 22024.390 601.913 36.59 0.000 20840.183 23208.597
-------------+----------------------------------------------------------------
area |
y81 | 276.548 80.609 3.43 0.001 117.957 435.139
nearinc | -240.113 119.971 -2.00 0.046 -476.145 -4.081
y81#nearinc | -148.891 192.206 -0.77 0.439 -527.038 229.257
_cons | 2074.756 45.928 45.17 0.000 1984.396 2165.116
-------------+----------------------------------------------------------------
land |
y81 | -1.23e+04 4863.831 -2.53 0.012 -2.19e+04 -2748.863
nearinc | -3.07e+04 7135.934 -4.31 0.000 -4.48e+04 -1.67e+04
y81#nearinc | 13641.960 7938.129 1.72 0.087 -1975.555 29259.475
_cons | 52569.057 4645.291 11.32 0.000 43429.888 61708.226
-------------+----------------------------------------------------------------
rooms |
y81 | -0.065 0.101 -0.64 0.525 -0.264 0.135
nearinc | -0.794 0.159 -5.00 0.000 -1.106 -0.481
y81#nearinc | 0.179 0.226 0.79 0.430 -0.266 0.624
_cons | 6.829 0.072 94.87 0.000 6.688 6.971
-------------+----------------------------------------------------------------
baths |
y81 | 0.086 0.091 0.95 0.344 -0.092 0.264
nearinc | -0.655 0.111 -5.90 0.000 -0.874 -0.437
y81#nearinc | -0.118 0.186 -0.64 0.525 -0.483 0.247
_cons | 2.512 0.061 41.51 0.000 2.393 2.631
------------------------------------------------------------------------------
. testparm y81#nearinc // 联合显著性检验
( 1) [age]1.y81#1.nearinc = 0
( 2) [c.age#c.age]1.y81#1.nearinc = 0
( 3) [intst]1.y81#1.nearinc = 0
( 4) [area]1.y81#1.nearinc = 0
( 5) [land]1.y81#1.nearinc = 0
( 6) [rooms]1.y81#1.nearinc = 0
( 7) [baths]1.y81#1.nearinc = 0
F( 7, 320) = 2.71
Prob > F = 0.0096
可以看出,结果拒绝了协变量在政策实施前后没有系统性差异的原假设。
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