查看原文
其他

Stata: 交叉项\交乘项该这么分析!

Stata连享会 Stata连享会 2020-02-10

Source:Jens Hainmueller, Jonathan Mummolo and Yiqing Xu, 2018, How Much Should We Trust Estimates from Multiplicative Interaction Models? Simple Tools to Improve Empirical Practice

原文作者:Jens Hainmueller, Jonathan Mummolo and Yiqing Xu

原文链接:http://yiqingxu.org/papers/english/2018_HMX_interaction/main.pdf

推文作者:刘聪聪 (中山大学),陈点点 (中国人民大学)

Stata 连享会: 知乎 | 简书 | 码云

特别说明

文中包含的链接在微信中无法生效。请点击本文底部左下角的【阅读原文】,转入本文【简书版】

1. 问题介绍

交叉项探讨的是结果变量 Y,处理变量 D 和调节变量 X 三个变量的关系。

实证研究应用中经常犯两个错误:

  • 错误1 模型设定错误,假设交叉项的影响是线性的

  • 错误2 数据缺乏共同支持

1.1 模型设定错误: LIE 假设

交叉项模型普遍设定为形如下式的回归方程:

式中,Z 为控制变量,为常数项,为干扰项。

该模型隐含了一个关键假设——线性交互作用假设(linear interaction effect assumption, 下文简写为 LIE) ,即处理变量 D 对结果变量 Y 的边际效应为

其含义是:

  1. X 每增加一个单位,D 对 Y 的边际作用发生 β 单位变化;

  2. X 对 D 的边际效应的影响在 X 的整个定义域内不变,均为常数 β 。

显而易见,这个假设过于严格,因为我们几乎没有理论或经验理由相信 D 对 Y 的影响的异质性以这种线性形式存在。D 的边际效应更有可能是非单调或非线性的。比如,当 X 较小或较大时,D 的边际效应小,而当 X 在中间的时候, D 的边际效应比较大。

1.2 调节变量 X 缺乏共同支持

什么是共同支持?

理想情况下,为了计算处理变量 D 在给定的调节变量值的边际效应,需要满足:

  1. 有足够数量的观测值,它们的 X 值接近于。 也就是说,使用的数据在附近有足够多的观测值。

  2. 在 X 处的处理变量 D 是有变化的。

不满足以上的任何一个条件,那么条件边际效应的估计就是以函数形式对没有数据或极少量数据的区域的过度外推或内插,因此估计是脆弱的并且依赖于模型。

以下情形的数据通常缺乏共同支持:

  1. D 或 X 的分布是高度有偏的

  2. D 或 X 在二者的共同支持区域内没有变化

模型(1)意味着,处理效应可以用处理变量 D 分别取值为的差来表示:

可见,在 LIE 假设下,D 对 Y 的影响实质上是线性函数之差,也即是说,对于所有的,这一线性形式都成立。如果存在非线性或非单调的影响,或者 X 或 D 的分布有偏,那么这一假设就无法成立。

比如,当 D 为二值变量时,在附近,所有的 D 均取值为 1,此时缺乏 D=0 的观测值,数据不满足共同支持条件,对 D 的边际效应的估计就依赖于对 D=0 的内插或外推,因此高度依赖于模型。

2. 检验诊断

问题提出来了,怎么解决呢?作者给出了一种非常简单又有效的办法:数据可视化,通过线性交互作用诊断图进行判断。

  • 第一步,将原始数据按 X 进行分组,画出 Y-D 的散点图。如果 X 是类别变量,那么直接分组;如果 X 是连续变量,那么按照分位数等分成低中高三组。

  • 第二步,检查 Y 与 X 在各组中的关系是否为线性。在散点图上用蓝色线进行线性回归拟合,用红色线进行 LOWESS 拟合。如果真实模型是线性的,那么两条线非常接近;反之,当真实模型是非线性的,两条线走势有明显差异。这是对错误 1 的检验。此外,对比同一条拟合线在不同分组中的走势,还可以对交互项的作用方向做出初步判断。

  • 第三步,检验共同支持条件。在散点图上叠加 X 分布的箱型分布图。散点图本身也提供了 X 分布的信息。如果 X 在数据区间内都有分布而且比较均匀,比如 25 分位点到 75 分位点几乎占据整个区域,那么满足共同支持条件;反之,X 集中在某个区间,在另外的区域数据很少或没有观测值,则不满足共同支持条件。

如果交互作用是双向的(一般模型均如此),那么要把 D 与 X 位置互换,将上述步骤再做一遍。

如下图所示,图 a 中 D 为类别变量,LOWESS 与 OLS 几乎完全重合,满足线性边际效应;但 X 分布集中在 2.5~3.5 之间,缺乏共同支持。图 b 中 D 为类别变量,LOWESS 为 U 型,说明数据存在非线性;X 分布贯穿整个区域,满足共同支持条件。图 c 中 D 为连续变量,分三组图示,LOWESS  与 OLS 几乎重合,满足线性边际效应;X 在各个分组都有分布且比较均匀,满足共同支持条件。

3. 估计量

在散点图的基础上,作者进一步提供了箱型估计量和核估计量两种估计量,对乘法交互模型的拟合结果进行检验,并且提供了将其可视化的程序 interflex

这里的偏差-方差权衡在于,一方面,这些估计量减少了缺乏共同支持造成的偏差;另一方面,若交互项的影响确实是线性的,则线性模型的结果要比这些估计量更有效。

3.1 箱型估计量(Binning Estimator)

按照连续变量的分组方法进行估计,得到低中高(L,M,H)三个边际效应估计系数和相应的置信区间。如下图所示,

  1. 如果 (1)线性回归线与 L,M,H 不存在显著差异(可根据 Wald 检验判断) (2)L,M,H 在整个数据区间内分布比较均匀,不是集中在某个区域 说明满足 LIE 假设和共同支持条件,线性模型提供的是一致和有效估计量。

  2. 如果箱型估计量 L,M,H 偏离原模型的拟合线,分布在其两侧,说明条件边际作用非线性,拒绝 LIE 假设。

3.2 核估计量(Kernel Estimator)

箱型估计量只有三个点,核估计量则呈现了数据区间内的完整曲线。如下图所示,其判断依据为:

  1. 如果核估计量结果接近一条直线,则满足 LIE 假设;如果弯曲程度很大,那么 LIE 假设不满足,线性模型结果不一致。

  2. 置信区间越宽的区域,越缺乏共同支持。

4.结论

文章的主要内容是针对线性交互模型中存在的线性交互作用假设不适用和缺乏共同支持两个主要问题,分析问题的由来(模型设定错误和数据不足)及可能的影响(估计量不一致且有偏或高度依赖模型),提出了问题的识别方法(线性交互作用诊断图 LID plot)以及更有效的估计量(箱型估计量和核估计量),并且把新方法用于已有文章进行检验。

最后,作者建议分析交互作用的研究者采取以下安全措施:

  1. 画 LID 图以检查原始数据,包括 X|D 和 D|X 两个方面。

  2. 参考箱型估计量。

  3. 参考核估计量。

  4. 谨慎使用线性交互模型。得到箱型或核估计量支持才使用线性模型,并且应当在有充分的共同支持的数据区域计算边际效应。建立线性模型后还要再参考 Brambor, Clark and Golder (2006)一文的使用指导。

5.interflex 命令介绍

命令安装 ssc install interflex, replace all

  1. interflex outcome treat moderator [covar] [if] [in] [weight] [, options]

  2. //选项解释

  3. *- fe(varlist) specify fixed effects variables

  4. *- type(string) specify the estimation strategy, including binning (default), linear, and kernal

  5. *- vce(vcetype) specify the variance–covariance estimator; vcetype can be homoscedastic (default), robust, cluster, bootstrap, or off

  6. *- bw(real) set the bandwidth for kernel estimations

当使用 interflex 检查LIE和共同支持假设时,其命令结构是在后面顺次加上被解释变量Y,处理变量 D,调节变量 X,以及控制变量。

各个选项的含义:

  • fe(varlist) 设定固定效应变量;

  • type(string) 设定估计方法,箱型(默认)、线性和核估计量;

  • vce(vcetype) 设定协方差矩阵类型,默认是同方差,也可以选择 robust ,  cluster 等;

  • bw(real) 可以设定核估计带宽值,以提高效率。

6.应用

下面以作者提供的数据进行展示和说明。

6.1 线性二分类变量处理效应

  1. use interflex_s1.dta, clear

  2. twoway (sc Y X) (lowess Y X), by(D) // Plot the raw data

  3. interflex Y D X Z1 // Estimate a linear interaction model

当D是二分类变量时,比较简单,通过作出散点图和lowess图可以简单判断下LIE假设是否成立。之后用interflex发现箱型估计量支持使用线性交互模型。

6.2 线性连续变量处理效应

  1. use interflex_s2.dta, clear

  2. egen Xbin = cut(X), group(3) //生成类别变量

  3. twoway (sc Y D) (lowess Y D), by(Xbin)

  4. interflex Y D X Z1, type(kernel) bw(5.0)

当D为连续变量时,情况就更复杂了一点。作者建议说使用分组(Binning)的方法,可以检查出绝大多数的问题。通常可以将样本基于调节变量分成几个等分的几组,在本例中,0 代表 low X ,1 代表 medium X , 2 代表 high X。然后在每一组都作出线性拟合线和 lowess 拟合线。

可以发现,当X较小,为第0组的时候,Y和D的关系为负;当X为第一组的时候,Y与D的关系是平的;而当X属于第2组,即最大的时候,Y与D的关系为正的。从中也可以简单推测认为是符合LIE假设的。通过 interflex 的核估计量检验,可以认为是符合LIE假设的。

6.3 非线性二分类变量处理效应

  1. use interflex_s3.dta, clear

  2. twoway (sc Y X) (lowess Y X), by(D)

从散点图和 LOWESS 的拟合线中可以看出,数据存在明显的非线性边际效应。因此,运用箱型估计量进行检验:

  1. interflex Y D X Z1, vce(r)

  2. p value of Wald test: 0.0000

可以看到,当线性交互模型不正确时,箱型估计量与模型的拟合结果(黑色直线及阴影区域)相去甚远。

注意图底部的堆积柱状图,它显示了调节变量 X 的分布。柱体的总高度是调节变量 X 在整个样本中的分布,红色和灰色阴影条分别是 X 在处理组和控制组中的分布。若某一个柱体中只有红色或灰色,则该区域缺乏共同支持。

与此同时,Stata 报告了 Wald 检验的 p 值。其原假设为:交互作用是线性的。拒绝原假设说明存在非线性影响,但接受原假设不一定满足LIE 假设,尤其是在小样本的情况下。

使用核估计量进一步检验:

  1. interflex Y D X Z1, type(kernel) bw(0.345)

在选项中设定 type(kernel) 会自动通过交叉验证选择最佳带宽,但程序运行比较费时。在第一次运行结束后复制好带宽的值,放入 bw() 选项中可以提高效率。

使用核估计得到的边际效应估计量与真实的数据产生过程十分接近。

6.4 固定效应对结果的影响

  1. use interflex_s4.dta, clear

  2. //控制 组别和年份 固定效应

  3. //画出原始数据

  4. twoway (sc Y X) (lowess Y X), by(D)

  5. interflex Y D X Z1, cl(group)

  6. //如果固定效应没有被控制,那么箱型统计量会有较大的置信区间

  7. // 控制固定效应

  8. interflex Y D X Z1, fe(group year) cl(group)

当没有控制固定效应时,发现置信区间明显很大;而当控制固定效应之后,置信区间明显变小了。

文中数据和代码 help interflex 即可得到。(注:help 文档里的数据可以自行到作者网站http://yiqingxu.org/software.html上获得。)

相关资料

  • 论文作者的 interflex 使用指南

  • 另外一种交互作用的图示方法

关于我们

  • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。

  • 公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。

  • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。

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

联系我们

  • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。

  • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。

  • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。

  • 联系邮件: StataChina@163.com

往期精彩推文


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

一起学空间计量……

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存