【R】理解线性回归模型,中介调节模型 & 方差分析

线性回归模型、中介调节模型和方差分析其实相互关联,且某种程度上都属于一般线性模型(general linear model)。因此,在统一的框架下梳理这三个模型可以更好地融会贯通。将不同来源的、存在关联的信息整合到综合的知识结构中,有利于我们更系统地掌握一个领域的知识。同时,加深对统计学知识的理解,也能使我们避免在数据分析的过程中犯错,并更准确地解读结果。

本文假设读者对上述三个模型以及R语言的基础知识有所了解,本文的目的是把三个模型放在统一的框架下梳理一遍。笔者并非统计学出身,只是由于研究中使用了这些模型,因此将自己的思考分享给大家。才疏学浅,错漏之处欢迎大家补充。

线性回归模型(Linear Regression Model)

为了偷懒不写代码,这里用了JASP(version 0.16.3)来展示例子。JASP是一个类似SPSS的提供GUI的统计分析软件,不过它其实是基于R语言来分析数据的,对于常用的一些分析都提供了基本的设置(不过更复杂的分析就需要自己在R里面敲代码来跑了)。

这里用的是College Success这个数据,如果你想自己尝试的话,可以在JASP的菜单栏中找到这个数据(选择“Open”,“Data Library”,“4. Regression”,“College Success”,见下图)。

该数据似乎来源于Moore等人编写的一本教科书,不过我没有这本书,而且我们只是为了做演示,所以就大概猜测一下变量的含义。根据简介,satm大概是SAT中的数学成绩,反过来可以推断hsm大概是高中的数学成绩,gpa就是大学绩点。这三个变量都是连续变量。

我们先看看高中数学成绩(hsm)对gpa的影响。我们将hsm作为一个covariate,gpa作为一个outcome,线性回归分析的结果如下。

涉及到的公式如下(去掉了误差的估计),这里我们做的是简单线性回归,用X来预测Y。i表示截距(intercept),也就是X为0的时候Y的初始值,它在某些时候是有意义的,例如当X表示从确诊到康复的时间,Y表示抑郁症状的水平,我就可以用截距来说明患者在确诊时的症状的严重程度。s表示斜率(slope),也就是我们估计的X的coefficient,表示X对Y影响的程度。

Y = {i_0 + s_1X}

先来看图中的第一、第二个表格。在这个例子中,我们假设X对Y没有影响(H0,也就是X解释了Y的variance的程度为0),然后用分析得到的结果和H0进行比较。这里是用了ANOVA来进行假设检验。

首先解释为什么ANOVA会出现在回归...(施工中)

中介调节模型

在理解了线性回归模型的基础上,我们就可以看看中介调节模型了。不过这里不讲调节变量,只对最简单的一个中介模型进行讲解。

我们还是用的刚刚的数据。我们假设高中时的数学成绩影响大学入学时的数学成绩,并进而影响大学绩点。假设的模型如下图所示。

在这个模型中,a代表了x对m的影响,b代表了x不变的情况下m对y的影响,c'是代表了m不变的情况下x对y的影响(direct effect)。a乘b就是“x -> m -> y“这条路径的效应(indirect effect,以下写为ab或)。最后还有一个total effect,c=c'+ab,包括了x对y的direct effect(x -> y)和indirect effect(x -> m -> y)。不过我还不太清楚为什么indirect effect是a*b而非a+b,希望有了解的朋友可以解释一下。

无论如何,这也意味着indirect effect可以表示为ab = c - c'。

三者的关系可以表示如下(公式2.1和2.2),可以看出就是线性回归模型,其中i表示截距,e表示误差。

M = {i_1 + aX + e_M}
Y = {i_2 + c'X + bM + e_Y}

而total effect则可以表示如下(公式2.3)。

Y = i_3 + cX + e_Y

如果我们假设:

c = c' + ab
i_3 = i2 + bi_1

以及,total effect公式中的误差等于前两个公式中的:

e_Y = e_Y + be_m

那么公式2.3可以写为以下形式(公式2.4)。

Y = (i_2 + bi_1) + (c' + ab)X + (e_Y + be_M)

同样是一个线性回归模型。

既然如此,现在来试着用线性回归的方式来估计各路径的系数。具体而言,我们需要做两个线性回归模型。首先是用hsm(x)预测satm(m)(对应公式2.1),结果如下图所示。可以得到路径a的效应,a = 23.911,p < 0.001。

然后是在控制hsm(x)的情况下用satm(m)预测gpa(y),以及控制satm(m)的情况下用hsm(x)预测gpa(y),不过两者的结果可以在同一个模型中查看(对应公式2.2),如下图所示。得到b = 6.105e-4,p = 0.319,以及c' = 0.193,p < 0.001。

以上两个线性回归模型的结果就足够了,因为我们只需要知道a、b、c'就可以算出c。不过我们也可以顺便看看用hsm(x)预测gpa(y)的结果(对应公式2.3),如下图所示。这里其实就是我们在上文线性回归部分里的做的分析。可以得到c = 0.208,p < 0.001。

最后将结果整理如下。

上图没有给出indirect effect,也就是ab,我们可以现在计算看看,如下。

> 23.911*6.105e-4
[1] 0.01459767

也可以通过a、b、c'来计算c,如下。

> 0.193+23.911*6.105e-4
[1] 0.2075977

最后用mediation analysis验证结果,见下图,结果是一致的。

小结:中介调节模型可以被理解为通过一系列的回归模型来探讨多个变量如何通过一系列路径或在不同条件下相互关联的一种统计模型。

顺便一提,结构方程的图是通过如下代码绘制的。

library(DiagrammeR)

code <- "digraph moderated_mediation_sem {
  # Nodes
  node [shape = rectangle, fontname = Arial, fontsize=12]
  X [pos = '-3,1!', label = 'hsm (x)']
  M [pos = '-1,2!', label = 'satm (m)']
  Y [pos = '1,1!', label = 'gpa (y)']

  # Edges
  edge [fontname = Arial, fontsize=12]
  X -> M [label = '23.911***']
  M -> Y [label = '0']
  X -> Y [label = 'c`=0.193***\nc=0.208***']
  
  # Graph
  graph [layout = neato, overlap = false, outputorder = edgesfirst]
}"

grViz(code) %>% 
  export_svg %>% 
  charToRaw %>% 
  rsvg_png("fig_example_mediation_model.png",width = 900*4, height = 300*4)

References
Hayes, A. F. (2013). Introduction to mediation, moderation, and conditional process analysis: A regression-based approach (pp. 85-122). Guilford publications.
https://github.com/peterdalle/social-science-diagrams

方差分析(Analysis of Variance, ANOVA)

简单说就是,ANOVA可视为线性回归模型的一种特例。然而,因为分析的目的不同,ANOVA还会涉及到许多线性回归没有的东西(例如assumption check,post-hoc comparison)。这也是为什么在R语言中,我们可以用aov()或者Anova()(来自car包)来分析lm()得到的结果。网上不少人也因此纠结究竟是用Anova()还是summary()来输出lm()得到的模型的结果,这里其实就是涉及到应该用ANOVA还是线性回归来进行统计分析。因此,虽然两种模型同属于线性模型的框架,但是应用的场景不一样,因此具体用到的算法和报告的指标会有所区别

作为例子,这里用的是Bear Googles这个数据,如果你想自己尝试的话,可以在JASP的菜单栏中找到这个数据(选择“Open”,“Data Library”,“3. ANOVA”,“Bear Googles”)。

我们的自变量是FaceType(包括两个水平,用1和0表示),因变量是Attractiveness(连续变量,范围从1到8)。看名字可以大概猜到变量的含义,但是这里只是用于演示,就不展开阐述了。为了能够同时跑回归和ANOVA,我把FaceType这个分类变量复制了一份,定义为scale尺度,相当于用作dummy variable(见下图)。

线性回归模型的结果见下图。

方差分析的结果见下图。

(施工中)

系数和p值

在线性回归中,我们关注的是自变量对因变量的variance的解释的程度。也就是X变化了,Y多大程度上会变化,所以我们关注的是slope,由表格可知slope的coefficient为1.333。同时,我们通过T-test来检验该slope是否显著区别于0。结果发现该slope显著区别于0,t = 3.175, p = 0.003,所以X对Y的影响(或者说关系)是显著的。

在ANOVA中,我们关注的是自变量的不同分组对因变量的variance的影响是否有显著的差别。因此我们关注的是组间比较的结果,由于ANOVA通常会涉及多个水平,因此用到了F-test而非T-test,但因为我们这里的自变量只有两个水平,因此结果和T-test是一致的。t的平方 = F。

> 3.175^2
[1] 10.08062

同时,因为我们这里用到的自变量的值只有1和0...(施工中)

效应量

R方并不会出现在ANOVA的结果中,相反,ANOVA通常会报告eta方(eta-squared)这类效应量指标。这是由两种模型的侧重点导致的。线性回归模型关注的是预测变量多大程度上解释了结果变量的variance,这反映在R方这一指标。假设1代表所有variance都可以被解释,那么我们就可以用1减去无法被解释的variance所占的比例,来表示可解释的variance的程度。其中,无法被解释的variance用residual的平方和来表示,再加上预测变量的平方和就相当于total variance。由此可计算出R方,如下,和表格中是一致的(为了方便和表格的结果比较,我在这里保留了三位小数)。

> round(1 - 97.333 / (21.333 + 97.333), 3)
[1] 0.18

而ANOVA则通过eta方这类效应量指标来了解组间差异对结果的影响,这反映在eta方的计算方式,也就是eta方 = 组间差异的平方和(组间差异导致的variance) / 总平方和(total variance),如下。

> round(21.333/(21.333+97.333), 3)
[1] 0.18

当然,因为两个模型都是基于相同的数据和分析思路跑出来的,所以这里得到了相同的结果。

小结:方差分析和线性回归模型同属于线性模型,只不过研究者基于不同的研究目的将它们用于不同的场合中,这两种模型各自有着不同的侧重点。

 
----------2023.10.11更新----------
增加了线性回归和ANOVA的部分内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容