R数据分析:有调节的中介

写今天的文章之前啊,我们先来回顾回顾啥是中介,啥是调节

image

调节变量会影响XY的关系

Moderation tests the influence of a third variable (Z) on the relationship between X to Y

X -> Y (depending on Z)

image

而中介变量会中介或者说解释XY的关系

Mediation tests a hypothetical causal chain where the effect of one variable (X) on another variable (Y) is mediated, or explained, by a third variable (M)

X -> M -> Y

有调节的中介

最简单,最直观的有调节的中介如下图

image

有调节的中介就是在中介关系中有第4个变量Z能够调节整个中介作用,就是说中介因子的作用被调节了,而且这个调节的路径可以是中介路径上的任意一条(a,b,c')

X -> M -> Y (depending on Z)

The moderation can occur on any and all paths in the mediation model (e.g., a path, b path, c path, or any combination of the three)

那么今天要解决的问题就是用R做一个有调节的中介模型

例子如下:

一般情况下研究生花费在学习上的时间越多毕业的offer越多,这个关系被发表的文章数量所中介。

那么这个中介关系是不是会受到学习效率的调节呢?今天我么就要解决这个问题。

那么我们做如下规定

  • X为自变量学习时间* Y为offer数量* M为文章数* Z为学习效率

数据模拟

a1 = -.59 #学习时间对文章数量的系数
a2 = -.17 #学习效率对文章数量的系数
a3 = .29 #学习时间和学习效率在影响文章数量时的交互项系数
b = .59 #文章数量对offer数量的系数
cdash1 = .27 #学习时间对offer的系数
cdash2 = .01 #学习效率对offer的系数
cdash3 = -.01 #学习时间和学习效率在影响offer数量时的交互项系数

n <- 200 #Set sample size
X <- rnorm(n, 7, 1) 
Z <- rnorm(n, 5, 1) 
M <- a1*X + a2*Z + a3*X*Z + rnorm(n, 0, .1) 
Y <- cdash1*X + cdash2*Z + cdash3*X*Z + b*M + rnorm(n, 0, .1)

Success.ModMed <- data.frame(offer = Y, time = X, pubs = M, efficiency = Z)

上面的代码就模拟出了我们需要的数据,因为学习时间X和学习效率之间都是有交互项的,所以这两个变量需要中心化以避免多重共线性

Success.ModMed$time.c <- scale(Success.ModMed$time, center = TRUE, scale = FALSE)

Success.ModMed$efficiency.c <- scale(Success.ModMed$efficiency, center = TRUE, scale = FALSE)

有调节的中介

数据备好之后我们开始我们的分析,首先我们用mediation这个包。

我们需要跑两个回归,基本上和4步回归法是一样的,首先是忽略掉总效应,然后直接看自变量X对中介变量的效应,然后控制中介变量看X的直接效应(控制X看中介变量的效应b),但是因为我们做的有调节的中介,而且模拟调节效应都在a和c'的路径上,所以在做这两个回归时必须加上调节作用,具体如下:

library(mediation)

mediate <- mediation::mediate
Mod.Med.Model.1<-lm(pubs ~ time.c*efficiency.c, data = Success.ModMed)#模型1自变量对中介变量的效应,加了交互项

summary(Mod.Med.Model.1)

Mod.Med.Model.2<-lm(offer ~ time.c*efficiency.c + pubs, data = Success.ModMed)#模型二然后控制中介变量看X的直接效应,加了交互项
summary(Mod.Med.Model.2)

两个模型的输出结果如下:

image

从输出我们就可以看出,整个模型的中介是存在的,那么我们如何知道调节变量是如何调节了中介路径呢

接着看,我们的思想就是在调节变量的不同水平,中介路径系数是有显著差异的,此时又涉及到给调节变量划分水平的问题,之前的文章有讲,通常我们可以以一个标准差的距离划分不同水平

首先我们看看在调节变量低水平,我们的中介关系是如何表现的:

low.efficiency<-mean(Success.ModMed$efficiency.c)-sd(Success.ModMed$efficiency.c)
#进行中介检验
Mod.Med.Lowefficiency <- mediate(Mod.Med.Model.1, Mod.Med.Model.2,    
                           covariates = list(efficiency.c = low.efficiency), boot = TRUE,   
                           boot.ci.type = "bca", sims = 10, treat="time.c", mediator="pubs")
image

我们还可以给这个水平的中介作用画个图:

plot(Mod.Med.Lowefficiency, xlim = 0:1)
image

可以看到在这个水平上中介作用中的直接效应和间接效应都是有显著意义的。

那么接下来我们再看学习效率这个调节变量的高水平,我们的中介作用是如何变化的:

high.efficiency<-mean(Success.ModMed$efficiency.c)+sd(Success.ModMed$efficiency.c)

Mod.Med.Highefficiency <- mediate(Mod.Med.Model.1, Mod.Med.Model.2,   
                            covariates = list(efficiency.c = high.efficiency), 
                            #boot = TRUE,     
                            #boot.ci.type = "bca", sims = 10, 
                            treat="time.c", mediator="pubs")

summary(Mod.Med.Highefficiency)   
plot(Mod.Med.Highefficiency, xlim = 0:1)
image
image

此时,可以看到在这个水平上中介作用中的直接效应和间接效应依然都是有显著意义的。

但是此时注意我们图中间接效应好像看起来是比上一个图大的,从图中就可以看出来有可能这个调节变量调节了这条路径。

我们做一下检验:

Mod.Med.Testefficiency <- mediate(Mod.Med.Model.1, Mod.Med.Model.2, #boot = TRUE,  
                            boot.ci.type = "bca", sims = 10, treat="time.c", mediator="pubs")  

test.modmed(Mod.Med.Testefficiency, covariates.1 = list(efficiency.c = low.efficiency),   
            covariates.2 = list(efficiency.c = high.efficiency), sims = 10)
image

通过对调节变量不同水平模型的中介间接效应和直接效应的检验,我们发现间接效应在调节变量的不同水平有显著性差异,而直接效应没有。

那么我们就可以解释说,那些效率高的学生来说,花费在学习上的时间X通过影响文章发表的数量M对offer数量Y的影响更大,这种间接关系显著的大于效率低的学生

小结

今天给大家写了有调节的中介作用是啥以及R语言做法,感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么编程基础没有从零学Python和R的,加油。数据分析问题咨询,代处理请私信(spss,R,Mplus)。

(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)

往期内容:

R语言作图:如何在数据可视化过程中调整因子顺序

python机器学习:如何储存训练好的模型并重新调用

R数据分析:中介效应的做法

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

推荐阅读更多精彩内容