Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:高净鹤 (东北财经大学)
邮箱:jh.gaook@gmail.com
编者按:本文主要摘译自下文,特此致谢!
Source:Mize T D. Best practices for estimating, interpreting, and presenting nonlinear interaction effects[J]. Sociological Science, 2019, 6: 81-117. -PDF- -Replication-
目录
社会学家关注的效应大多是非线性的,即使是在线性回归模型的背景下,效应也可能是非线性的,例如自变量的多项式形式 (
尽管目前已经建立了正确的非线性模型,并且能够对线性交互效应正确解释,但是非线性模型与交互效应在实证中往往被错误地估计、解释和呈现。为此,本文将对非线性交互效应的估计、解释和呈现提供简单的说明与指导。
线性效应是指在一个变量的范围内保持不变的效应。非线性效应是指在自变量范围内不恒定的效应。由于自变量的函数形式 (如
与依赖回归系数来总结自变量的效应相比,边际效应有几个优点:
本文介绍了两种边际效应的类型:平均值的边际效应 (MEM) 或其他代表值的边际效应 (MER),以及平均边际效应 (AME)。MEM 和 MER 是将一个变量固定在一个水平之上 (可以该变量的平均值或其他代表值),另一个变量从起始值变化到终止值的边际效应。
AME 是通过计算样本中每个观测值的边际效应 (ME),然后把这些边际效应进行平均。AME 的一个优点是,每个预测都基于数据中的实际观测值。AME 比 MEM 具有一些统计优势,本文的示例都是基于 AME 的。在实证中,应该根据实际研究问题选择 MER、MEM 或 AME。
交互效应检验包括对多种效应是否相等检验。例如,在研究年龄和性别的交互效应时,可以计算年龄对男性的影响和年龄对女性的影响之间的差异。对于线性回归中的线性效应,交乘项
年龄对男性和女性工资的影响是否相同?为了检验这一问题,作者拟合了一个时薪对
. use "https://tdmize.github.io/data/data/nli_gss", clear
. reg wages c.age##c.age##i.woman i.parent c.year i.race i.college i.parttime if employed == 1
. est store regwages
. * Make predictions to plot
. * NOTE: The over( ) option calculates the predictions separately
. * across the groups (men and women)
. qui margins, at(age=(18(2)72)) over(woman)
. * Basic plot
. marginsplot, recastci(rline) ciopts(lpat(dash) col(gs12))
. * Plot with added options
. marginsplot, recastci(rline) ciopts(lpat(dash) col(gs12)) plotopt(lwid(medthick) ///
> msym(none)) xdimension(age) ylab(0(5)25) xlab(20(10)70) ytitle("Hourly Wages") ///
> xtitle("Age in Years") title(" ")
下图显示,年龄的增长与更高的工资水平相关,但最终年龄增长带来的额外工资的增加会逐渐减少,即变量范围内年龄的影响不是恒定不变的,年龄的效应取决于年龄的考察范围。图中还可以看出,年龄的效应还取决于性别。
为考察工资如何与年龄和性别相关联,分别按男性和女性的三种不同年龄值计算年龄的影响结果。下表展示的是平均边际效应 (AMEs) 和二次差分检验。可以看出,在 25 岁到 30 岁之间,年龄增长对男性的影响明显大于女性,二阶差分也证明了同样的结论。在 65 岁到 70 岁之间,年龄的增长对男性工资有显著的负面影响,二阶差分结果表明在这个范围内年龄对男性和女性工资影响没有差异。
下表最后一行报告了年龄增长 5 年的平均影响。平均而言,年龄每增加 5 岁,男性工资就会增加 1.149,女性工资就会增加 0.576。二阶差分 0.574 表明,年龄增长 5 岁对男性的平均影响大于女性。换句话说,平均而言,在这个样本中,年龄和性别之间确实存在交互作用。
对年龄的效应的分析表明,年轻时收入的性别差异较小,随着年龄的增长会逐渐扩大。下图绘制了性别在不同年龄段的平均边际效应。可以看出,性别差异在各个年龄段都很显著,女性总是被预测挣得比男性少,性别差距开始时相对较小,随着年龄的增长这种差距开始扩大。
. est restore regwages
. * Calculate marginal effects of gender across range of age
. margins, dydx(woman) at(age=(18(2)72))
. * Basic plots
. * NOTE: yline(0) option is helpful to add a reference for when the effect is
. * significantly different from zero
. marginsplot, recastci(rline) ciopts(lpat(dash) col(gs12)) yline(0)
. *Plot with additional options
. marginsplot, recastci(rline) ciopts(lpat(dash) col(gs12)) yline(0) ylab(-10(2)2) ///
> xlab(20(10)70) xtitle("Age") ytitle("Effect of Gender: Women - Men") title("") ///
> note("Effects Below Zero Indicate Women Earn Less than Men at that Age", span)
模拟数据:
其中,
虽然
当模型为非线性时,不能简单地根据交互项系数的符号、大小或显著性进行评估。另一个需要考虑的问题是,logit / probit 模型在引入交乘项之前就已经具有某种意义上的交互效应。考虑二元 logit 模型中,二元自变量
可以看出,当
logit 和 probit 的这一表现通常被称为 “压缩”,因为预测的概率曲线在 0 和 1 之间有界,图中的曲线必须在某个点上 “压缩”,因为它们在 0 和 1 有界 (Berry 等 2010;Rainey 2016)。重要的是,这导致对预测概率的影响是相互作用的:
利用 Wave IV of the National Longitudinal Study of Adolescent to Adult Health 数据,研究教育对父母就业概率的影响。二元 logit 回归模型,包括教育的年限和父母的性别 (母亲=1,排除没有子女的样本)。
教育对就业预测概率的影响取决于教育水平以及预测对象是母亲还是父亲。教育的作用显然是存在交互效应的:教育的作用取决于父母的性别。在教育水平较低的情况下,对母亲和父亲的影响在大小上是相似的;水平越高,对母亲的影响越大。
无论模型中是否有交乘项,logit / probit 这些非线性模型在某种程度上已经具有 “交互” 性质,并且由于 “压缩” 理论,logit 和 probit 模型固有的交互特性可能已经处理了这种关系。是否包含交乘项需要考虑两个问题:在 logit 或 probit 模型中包含不需要的交乘项后果是什么?从 logit 或 probit 模型中省略所需的交乘项后果是什么?
继续关注一个连续变量和一个二元自变量的情况。
从系数上看交乘项的真实系数为零,不存在交互效应,下图绘制两个特定模型分别生成的模拟数据集的预测概率曲线,左边为不包含交乘项的模型,右边包含交乘项
可以看出包含交乘项时结果不受影响,加入交乘项的唯一损失是增加了一个自由度。如果数据生成过程中不存在交互效应,在模型中包含一个乘积项将不会损害推论,因为乘积项的系数估计将有效为零,并且不会影响预测。交乘项的系数本质上是零并不意味着在预测的概率度量中没有交互作用,交乘项的系数并不能检验对预测概率的效应是否不同。
存在交互效应的模拟数据:
为了说明在模型中排除或包含交乘项对预测概率的影响,下图绘制了一个不包含交乘项的模型 (左) 和一个包含
省略必须的交乘项会产生严重的影响。曲线的斜率是变化的,省略所需的乘积项可以使两条曲线的斜率相等,而实际上它们不应该相等。因此,如果确实必要的话,必须在模型中包含交乘项,来允许效应发生变化。不包含交乘项的情况下进行交互效应的检验几乎一定会导致第 I 类错误,Rainey (2016) 表明,在模型中加入一个交乘项完全消除了这种偏差。
仍然考虑预测父母就业状况的模型,左侧与上文模型相同,右侧包含交乘项
即使模型中必须包含交乘项,交乘项的系数也不能解释为交互效应。考虑两个模拟数据集,都包括 2000 个观测值,模型中都包括交乘项:
左图交乘项系数为零且不显著 (
采用相同的模型进行预测,但是在连续自变量
右图中显示的模型具有明显的交互效果,但左图中显示的模型几乎没有交互效果。在数据空间中显示这些不同位置取值的目的是要强调,不能通过检查单个系数估计 (对于主效应或对于交乘项的系数) 来确定预测概率方面的含义。必须检查预测的概率本身,以确定是否存在交互影响。尽管在模型中需要交互项,但是在检验和解释预测概率的交互效应时可以完全忽略交乘项的系数。
根据自变量类型 (名义变量和连续变量),本节演示分析不同类型交互效应的方式,演示的重点仍然是二元 logit 模型,但本部分的结论也可以拓展到其他模型 (有序因变量和计数因变量模型)。
两个名义自变量的交互作用是最容易估计和解释的交互作用类型。因为他们产生的用于检验交互效应的核心解释变量的取值要少得多。
例如,为人父母是否因性别而对一个人的饮酒习惯产生影响?数据来自 Wave IV of Add Health,父母和性别变量都是二元的,构建二元 logit 模型,将
这种交互效应可以通过文本和表格的形式来呈现,但最好是制作模型预测的可视化的图来展示,有助于对交互效应进行解释。
. * Add Health Wave IV
. use "https://tdmize.github.io/data/data/nli_ah4", clear
. logit alcB i.woman##i.parrole c.age i.race c.income i.educ, or nolog
. est store alcmod
. * plot of predictions
. * NOTE: Making separate predictions for parents and non-parents;
. * store each for use with coefplot
. margins if parrole == 0, at(woman=(0 1)) post
. est store prno
. est restore alcmod
. margins if parrole == 1, at(woman=(0 1)) post
. est store prpar
. * NOTE: 68% confidence intervals (via the level(68)) option = +- 1 SE
. * Basic plot
. coefplot prno prpar, vertical recast(bar) barw(0.3)
. * Plot with added options
. coefplot (prno, col(purple*1.4)) (prpar, col(midgreen*.7)), vertical recast(bar) ///
> barw(0.3) level(68) ciopts(recast(rcap) color(gs10)) citop ///
> legend(order(1 "No Children" 3 "Parent")) xlab(1 "Men" 2 "Women") ///
> ytitle("Pr(Alcohol Use)") ylab(0(.2)1)
柱状图和表格呈现了相同的信息,都显示了性别和父母两个变量的四种组合的预测饮酒概率,其中,表中包括了一阶差分 (边际效应) 和二阶差分的检验。可以看出,没有孩子的男性饮酒的概率 (0.730) 明显高于作为父亲的男性(0.588)。同样,没有孩子的女性饮酒的概率 (0.673) 高于有孩子的女性 (0.468)。父母的身份——父母不太可能喝酒——对女性的影响比男性更大 (二阶差分为 −0.063)。
随着自变量类别数量的增加,与名义自变量的交互作用变得更加繁琐,但只是在需要进行更多的比较的意义,检验交互效应的技术时相同的。
使用 Add Health Wave IV 数据,检验扮演更多的社会角色对男性和女性的积极心理健康影响是否不同。构建二元 logit 模型,抑郁状态
. * Add Health Wave IV
. use "https://tdmize.github.io/data/data/nli_ah4", clear
. logit depB c.role##i.woman i.parrole c.age i.race c.income i.college, or nolog
. * Example of basic plot of predictions
. margins, at(role=(0(1)10)) over(woman)
. marginsplot, xdimension(role) recastci(rarea) ciopts(col(gs14))
对于社会角色的交互效应,计算 AME:平均而言,每增加一个社会角色,男性抑郁概率降低 0.032,女性降低 0.030,男性和女性在社会角色的平均效应方面没有显著差异。图中虚线为组间差异不明显的部分,实线为组间差异显著的部分。当担任 3 到 10 个社会角色时,性别差异明显;当担任 0 到 2 个社会角色时,抑郁状态的概率没有明显的性别差异。
呈现两个连续自变量的交互效应时最棘手的,同样可以使用可视化的方式来帮助解释。
例子:公众对同性关系的道德认可越来越多,这种朝着更大社会接受度的转变是具有广泛的公众基础,还是集中在具有某些政治观点的个人身上?利用 General Social Survey 数据来验证,构建二元 logit 模型,预测对同性关系的看法 (二元:错误=1),自变量包括保守的政治观点
呈现连续—连续自变量交互作用的第一种方法是为两个连续自变量中的一个选择 “理想类型”,即感兴趣自变量的特定值。对于任何连续变量,一种解决方案是选择变量分布的系统百分位值 (例如,第 25 和 75 百分位或第 10 和 90 百分位)。由于保守主义政治观点量表是标准化的,所以选择了一个低于平均值的标准差,称之为 “自由派”,一个高于平均值的标差,称其为 “保守派”。
. * GSS 1972 - 2016
. use "https://tdmize.github.io/data/data/nli_gss", clear
. * Drop any missing data on model vars
. drop if missing(sameokB, year1976, conviewSS, age, white, male, income, married, college)
. *Examine year variable (coded as years since 1976)
. fre year1976
. logit sameokB c.year1976##c.year1976##c.conviewSS c.age i.white i.male c.income ///
> i.married i.college, nolog or
. est store samemod
. qui margins, at(conviewSS=(-1 1) year1976=(0(2)40))
. * Plot with added options
. marginsplot, x(year1976) recastci(rline) ciopts(lpat(dash) col(gs12)) ylab(0(0.2)1) ///
> plot1opts(lcolor(blue) mcolor(blue)) plot2opts(lcolor(red) mcolor(red)) ///
> xlabel(0(4)40, labsize(2.5)) xtitle("GSS Survey Year") ytitle("Pr(Same-Sex OK)") ///
> legend(order(3 "Liberal" 4 "Conservative")) title("")
横轴代表时间,政治观点的影响用两条不同的线表示:“自由派” (
呈现连续交互作用效应的第二种方法是绘制一个自变量在第二个自变量范围内的边际效应,也就是说,说明一个变量的效应在第二变量的不同水平上是如何不同的。
下图描绘了调查年份范围内保守政治观点的平均边际效应 (即,政治观点对观点的影响如何随着时间而变化)。从图中可以看出,政治观点在每个调查年度都有显著影响,因为影响的 95% 置信区间从未重叠为零;因为这种影响是负的,这表明一个人越保守,就越不可能认为同性关系是可以接受的。就交互效应而言,图中显示了政治观点在以后几年对意见的影响更大 (更消极)。
. qui margins, dydx(conviewSS) at(year1976=(0(2)40))
. *Basic plot
. marginsplot, recastci(rline) ciopts(lpat(dash) col(gs12)) yline(0)
. *Plot with added options
. marginsplot, recastci(rline) ciopts(lpat(dash) col(gs12)) plotopts(lcolor(black) ///
> mcolor(black)) ylabel(-0.25(0.05)0.05) yline(0) title("") xlabel(0(4)40, ///
> labsize(2.5)) xtitle("GSS Survey Year") ytitle("AME of Conservative Political Views") ///
> note("NOTE: Negative effects indicate conservatives are less supportive of same-sex
> relationships", span)
时间的流逝是如何影响持不同政治观点的人的观点的?下图说明了这一角度的交互效应。
. marginsplot, recastci(rline) ciopts(lpat(dash) col(gs12)) plotopts(lcolor(black) ///
> mcolor(black)) yline(0) ylabel(.03(.01)-.01) title("") xlabel(-2 "Very Liberal" ///
> -1 "Liberal" 0 "Moderate" 1 "Conservative" 2 "Very Conservative") xtitle("") ///
> ytitle("AME of Survey Year (Time)") ///
> note("NOTE: Positive effects = group has become more supportive of same-sex
> relationships over time", span)
在这里,时间对观点的影响体现在政治观点的不同范围内。所有影响都是积极和显著的;也就是说,随着时间的推移,各种政治派别的个人越来越可能为同性关系是可以接受的。这种变化对于更自由的人来说比对于更保守的人来说更大。例如,两年时间增长对自由派的平均影响 (0.026) 明显大于保守派的影响 (0.015) ,二阶差分为 0.011。
呈现连续交互效果的最后一个选项是等高线图。等高线图表示的是从轴上每一个自变量的连续——连续交互效应得到的预测,预测值作为颜色或阴影第三维度。能够绘制彩色图时,不同预测概率范围以不同的颜色表示,因为读者容易区分不同水平的预测;黑白图可以用灰度来显示渐变。
下图绘制了将同性关系视为道德上可接受的预测概率的彩色图。横轴是调查年份,纵轴是政治观点的尺度,图中的颜色表示预测概率。任意给定调查年份和政治观点的组合的准确预测概率,都可以通过图中这两个自变量的交点处的颜色来呈现。
. * Make predictions at all combinations of both variables
. * NOTE: Need to save the predictions with the save( ) option
. qui margins, at(conview=(-2(.1)2) year1976=(0(2)40)) saving(preds, replace)
. * Load dataset of predicitons
. use preds, clear
. * Examine variables; rename vars to be plotted
. codebook, c
. list _at1 _at2 _margin in 1/20
. rename _at1 year1976
. rename _at2 conview
. rename _margin pr_sameok
. * NOTE: "ccuts" specifies levels of the probs. to show as diff. colors.
. * Basic plot
. twoway (contour pr_sameok conview year1976, ccuts(0(0.05)1.0))
. * Rainbow colors version accomplished with starting color scolor(red),
. * ending color ecolor(purple) and crule(hue)
. twoway (contour pr_sameok conview year1976, ccuts(0(0.05)1.0) scolor(red) ///
> ecolor(purple) crul(hue)), xlabel(0 "1976" 4 "1980" 8 "1984" 12 "1988" ///
> 16 "1992" 20 "1996" 24 "2000" 28 "2004" 32 "2008" 36 "2012" 40"2016") ///
> ylabel(-2 "Very Liberal" -1 "Liberal" 0 "Moderate" 1 "Conservative" ///
> 2 "Very Conservative") zlabel(0(0.1)1) ztitle("Pr(Same-Sex Relationships OK)") ///
> ytitle("") xtitle("") ysize(4) xsize(7)
与线性交互效应相比,估计、解释和呈现非线性交互效应需要更多的努力和考虑。需要考虑的关键问题:
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