问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

R数据分析:中介作用与调节作用的分析与解释

创作时间:
作者:
@小白创作中心

R数据分析:中介作用与调节作用的分析与解释

引用
简书
1.
https://www.jianshu.com/p/bdf084f42e80

中介作用和调节作用是统计分析中常见的两种效应,它们在解释变量间关系时发挥着重要作用。本文将详细介绍这两种效应的概念、分析方法及其在R语言中的实现。

什么是中介和调节

中介作用描述了一个变量X通过影响另一个变量M,进而影响第三个变量Y的过程。中介分析试图解释X和Y之间的关系,例如收入高的人通常活得更久,可能是因为收入高的人医疗保健更好,医疗保健就是中介变量。

调节作用则涉及第三个变量Z,它不是在探讨因果路径上的关系,而是回答什么时候XY的关系才会发生。调节因子可以加强、减弱或反转XY的关系。

中介分析

中介分析检验X(自变量)对Y(因变量)的影响是否通过第三个变量M(中介变量)来实现。基本的中介模型可以用下图表示:

在该模型中,总效应c等于直接效应c'加上间接效应ab。中介效应可分为完全中介和部分中介:完全中介是指控制M后X的直接效应消失,部分中介是指控制M后X的效应减弱但仍有剩余。

4步回归法

  1. 做X到Y的回归,得到总效应
  2. 做X到M的回归,这一步必须显著
  3. 控制X做M到Y的回归,得到路径b,b必须显著
  4. 做Y到X的回归,一定不显著
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)

# 总效应
fit <- lm(Y ~ X, data=Meddata)
summary(fit)

# 路径a
fita <- lm(M ~ X, data=Meddata)
summary(fita)

# 路径b
fitb <- lm(Y ~ M + X, data=Meddata)
summary(fitb)

# 反向路径
fitc <- lm(X ~ Y + M, data=Meddata)
summary(fitc)

Sobel检验和Bootstrap检验

Sobel检验假设间接效应ab是正态分布的,适用于大样本。Bootstrap检验则适用于小样本。

library(multilevel)
library(bda)
sobel(Meddata$X, Meddata$M, Meddata$Y)
mediation.test(M,X,Y)

library(mediation)
fitM <- lm(M ~ X,     data=Meddata)
fitY <- lm(Y ~ X + M, data=Meddata)
fitMed <- mediate(fitM, fitY, treat="X", mediator="M")
summary(fitMed)
plot(fitMed)

调节效应分析

调节分析检验变量Z是否影响IV(自变量)和DV(因变量)之间的关系。基本的调节模型可以用下图表示:

模拟数据和中心化处理

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 + rnorm(N, 0, 3))
Moddata <- data.frame(X, X1, Z, Y)

Xc <- c(scale(X, center=TRUE, scale=FALSE))
Zc <- c(scale(Z,  center=TRUE, scale=FALSE))

回归分析和可视化

library(gvlma)
fitMod <- lm(Y ~ Xc + Zc + Xc*Zc)
summary(fitMod)

library(rockchalk)
ps <- plotSlopes(fitMod, plotx="Xc", modx="Zc", xlab = "X", ylab = "Y", modxVals = "std.dev")

小结

本文详细介绍了中介作用和调节作用的分析方法及其在R语言中的实现。通过具体的模拟数据和代码示例,读者可以更好地理解这两种效应的概念和分析步骤。希望本文能帮助读者掌握这些重要的统计分析方法。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号