中介的简单叙述就是一个变量X影响另一个变量M,这个另一个变量也会影响第三个变量y,中介是在试图解释XY之间的关系,所以很多人在探索机制的时候都在充当中介。一个很生动的例子是,收入高的人通常寿命更长。机理是什么?一种可能是收入高的人有更好的医疗,所以医疗是中介。通过这样的分析,你似乎找到了收入和寿命之间的机制。当
中介的简单叙述就是一个变量X影响另一个变量M,这个另一个变量也会影响第三个变量y,中介是在试图解释XY之间的关系,所以很多人在探索机制的时候都在充当中介。一个很生动的例子是,收入高的人通常寿命更长。机理是什么?一种可能是收入高的人有更好的医疗,所以医疗是中介。通过这样的分析,你似乎找到了收入和寿命之间的机制。当然这个例子很简单,但一般中介就是这么理解的。
中介分析测试一个假设的因果链,其中一个变量X影响第二个变量M,反过来,该变量影响第三个变量y。中介描述了两个其他变量之间的关系(通常已建立)的方式或原因,有时被称为中介变量,因为它们通常描述影响发生的过程。
中介最常见的做法是四步回归法。baron & Kenny(1986)的4步间接效应法,网上有很详细的教程,但是这种方法的统计效率不高。
调整还会涉及到第三个变量z,此时我们讨论的不是因果路径上的关系。调整要回答的问题是XY之间的关系什么时候发生。这个调节因子可以加强、削弱甚至逆转XY之间的关系。
适度测试一个效果何时或在什么条件下发生。调解人可以加强、削弱或扭转关系的本质。
给你举个例子。
学习自我效能感可以调节考试重要性和考试焦虑之间的关系。什么意思,那些学习自我效能感高的学生比那些学习自我效能感低的学生对重要的考试不焦虑,而且,所有的学生都不会对不重要的考试焦虑。
在上面的例子中,只有自我效能感高的学生才会有焦虑感的减弱,这意味着考试的重要性与焦虑的关系受学习自我效能感这一变量的调节,是a。削弱关系
一般来说,调节函数的方式是做调节变量和自变量的交互作用,所以我在之前的文章中已经介绍了各种交互作用的情况,我自己也有兴趣看一下。
今天我就写一个调解调整的R语言通用做法。
中介测试X(自变量)对Y(因变量)的影响是否通过第三个变量M(中介)起作用。
最基本和最有特色的中介如下:
在上图中,我们有这样的关系 C = c’+ab,即总效应等于直接效应加上间接效应。
那么中介效应又可分为完全中介和部分中介:完全中介是指X的直接效应在M次控制后消失,部分中介是指X的效应在M次控制后减弱,但仍有。
当X对Y的影响随着模型中的M减少到0时,完美的中介发生。当模型中M的X对Y的影响减少了一个不小的数量(实际数量有待商榷)时,部分中介就发生了。
首先,我们模拟我们的数据:
N <- 100 #
X <- rnorm(N,175,7)
M <- 0.7*X + rnorm(N,0,5)
Y <- 0.4*M + rnorm(N,0,5)
Meddata <- data.frame(X,M,Y)
2.2方法1: Ba
作为中介的四步回归法:
- 先做x到y的回归,这一步会得到总的效果。(可能无关紧要)
- 要做从X到M的回归,这一步必须是重要的。
- 控制x做从m到y的回归,得到路径b,路径b一定是显著的。
- 从Y到X的回归一定不显著。
#1.总体效果
fit <- lm(Y ~ X,data=Meddata)
总结(适合)
#2.路径A
fita <- lm(M ~ X,data=Meddata)
总结(国际体操联合会)
#3.路径b
fitb <- lm(Y ~ M + X,data=Meddata)
摘要(fitb)
#4.反向路径
fitc <- lm(X ~ Y + M,data=Meddata)
摘要(fitc)
我们在这里已经完成了所有的中间步骤,所以让我们用一个特别易用的stargazer包向您展示模型结果:
图书馆(观星者)
stargazer(fit,fita,fitb,fitc,type = "html ",
title = "巴伦和肯尼的方法",
out="test.html ")
从输出结果可以看出,控制m后XY之间的关系并不显著,看似完全中介,但此时我们有必要测试整个间接效应。检查方法之一是索贝尔测试和另一个是自举。
首先进行索贝尔试验
图书馆(多级)
图书馆(bda)
sobel(医疗数据$X,医疗数据$M,医疗数据$Y)
中介.测试(M,X,Y)
通过运行上面的代码,可以得到直接和间接的效果以及中介的显著性检验。
Sobel检验假设间接效应ab是正态分布的,所以在样本大的时候效果很好,在样本小的时候可能效率很低,这时候就用bootstrapping了。
回顾 自举是如何做到的
图书馆(调解)
fitM <- lm(M ~ X,data=Meddata)
fitY <- lm(Y ~ X + M,data=Meddata)
fitMed <- mediate(fitM,fitY,treat="X ",mediator="M ")
摘要(fitMed)
绘图(拟合)
在上面的代码中使用了中介包,并且使用了。引导方法检查中介的
从图中可以看出,1000次自助抽样后,间接效应仍然显著,直接效应不显著。我们可以有把握地说,这是一个完全的中介。
当然,输出中也有这个中介效果图:
适度测试变量(Z)是否影响IV (X)和DV (Y)之间关系的方向和/或强度。换句话说,适度测试影响变量间关系何时发生的交互作用。
看上面的英文解释,调整XY之间的某种关系什么时候会出现。
最基本和独特的调节功能如下所示。
我们还是用模拟数据来说明一切。
N <- 100
X <- abs(rnorm(N,6,4))
X1 <- abs(rnorm(N,60,30))
Z <- rnorm(N,30,8)
y <-ABS((-0.8 * X)*(0.2 * Z)-0.5 * X-0.4 * X1+10+r norm(N,0,3))
Moddata <- data.frame(X,X1,Z,Y)
我们模拟了两个自变量XX1和一个调节变量Z,如果把调节变量算作一个自变量,就是三个自变量。
监管的一般测试是互动。为了避免多重共线性,交互作用的两个变量必须集中。
因为你要把它放在一个回归方程里,所以你要考虑多重共线性的问题。
所以,我们要讨论XZ之间的交互,所以让我们先把它集中起来:
Xc <- c(scale(X,center=TRUE,scale = FALSE))# Centering IV;数小时的睡眠
Zc <- c(scale(Z,center=TRUE,scale=FALSE))
然后跑回来
图书馆(gvlma)
fitMod <- lm(Y ~ Xc + Zc + Xc*Zc)
摘要(fitMod)
运行出回归结果:
我们还可以看到互动:
图书馆(岩石粉笔)
ps <- plotSlopes(fitMod,plotx="Xc ",modx="Zc ",xlab = "X ",ylab = "Y ",modxVals = "std.dev ")
这个可视化让我想起了我之前的一篇关于交互式简单斜率图绘制的文章。因为我们的被调节变量是连续的,所以有一个参数modxVals,这里我设置为modxVals = "std.dev ",也就是说在被调节变量正负一个标准差的水平上画一个简单的斜率图。
和上一篇一样。有兴趣的可以去翻翻。
关于这个规律的解释,很明显,在Z的不同层次上,X和Y的关系是不同的,Z的层次越高,XY之间的关系越正。
我觉得这篇文章把R作为中介和调整说的很清楚了。谢谢你的耐心。发布这些东西的主要目的是督促自己。希望大家关注评论指出不足,共同进步。我会详细写内容,使用的数据集也会在原文中链接。只要你按照文章中的代码去做,你自己也可以做出同样的结果。一个目的是从零开始理解,因为你没有从零开始学习Python和R的编程基础。走吧。数据分析问题咨询,请私信代处理(spss,R,Mplus)。
(站外链接无法收发,请关注私信回复“数据链接”获取本头条号所有使用数据)
以前的内容:
r数据分析:双向方差分析和交互作用检验
r数据分析:简单的斜率图绘制和双连续变量间相互作用的解释
Python机器学习:机器学习模型的评估——交叉验证和留一验证
r数据分析:中介效应的实践
这是水淼·WordPress站群文章更新器的试用版本发布的文章,故有此标记(2024-02-18 13:53:20)
赠送20本心理学电子书,添加 微信:56163509 备注:心理学!
如若转载,请注明出处:https://www.xinli1988.com/49364.html