Vol.1
前言
Haslbeck提出的有调节的网络模型(Moderated Network Model, MNM)是一种将调节效应引入网络分析的方法,用以捕捉变量间复杂的动态关系。该模型能揭示变量之间的关系如何受第三变量(调节变量)影响。自该方法提出以来,MNM已广泛应用于心理学研究,也催生了大量应用型研究。然而,与之伴随的稳定性问题仍然存在。
关于调节效应的稳定性检验,研究者通常采用非参数bootstrap抽样方法,通过估计给定抽样次数中非零效应的比例来评估稳定性。先前推文中介绍的研究认为 (2024_08_31全流程!!!横断面数据中有调节网络模型的应用实例),当非零效应比例超过50%时,可视为该调节效应存在。然而,实际研究中可能出现非零比例小于50%的情况,或研究者可能希望通过更严格的假设检验方法来验证调节效应的真实存在性。
因此,本次分享聚焦于如何通过假设检验方法,进一步验证特定调节效应的真实性,从而为研究提供更稳健的依据。
Vol.2
代码实操
1.模型拟合:提取实证数据中的调节效应
# 拟合实证数据的调节网络模型
mgm_obj_unreg <- mgm(data = as.matrix(DataPost),
type = c("c", "g", "g", "g", "g", "g", "g"),
level = c(2, 1, 1, 1, 1, 1, 1),
lambdaSel = "EBIC",
lambdaGam =.25,
lambdaSeq = 0,
ruleReg = "AND",
moderators = 1,
scale = TRUE,
threshold="none")
# 提取所欲检验的调节效应
mgm_obj_unreg$interactions$indicator # 查看那些变量之间存在交互作用
# [[1]]
# [,1] [,2]
# [1,] 1 2
# [2,] 1 3
# [3,] 1 4
# [4,] 1 5
#
# [[2]]
# [,1] [,2] [,3]
# [1,] 1 2 3
# [2,] 1 2 4
# [3,] 1 2 5
# [4,] 1 2 6
# [5,] 1 2 7
# [6,] 1 3 4
# 三项交互作用中的第五个交互作用,即1、2、7之间的交互作用值
test27 <- mgm_obj_unreg$interactions$weightsAgg[[2]][[5]]
2. 构造零假设下的抽样分布
# 参数设置
library(MASS)
nIter <- 1000 #设定循环次数(生成1000次模拟数据)。
l_models <- list() #存储每次迭代拟合的模型。
v_mod27 <- rep(NA, nIter) # 存储每次迭代中变量2和7之间调节效应的权重值。
# 提取实证数据的属性
corm <- cor(DataPost)
n <- nrow(DataPost)
mus <- apply(DataPost, 2, mean) # 计算每列的平均数
# 循环生成数据并拟合模型
for(i in 1:nIter) {
set.seed(i)
data_sim <- mvrnorm(n = n, mu = mus, Sigma = corm) # 生成多元正态分布的数据。
group <- data_sim[, 1] # 对生成的数据进行分类,将第一列(调节变量)按阈值分为两组(组1和组2)。
group[data_sim[, 1]<1.8] <- 1
group[data_sim[, 1]>1.8] <- 2
data_sim[, 1] <- group
colnames(data_sim) <- colnames(DataPost)
# 拟合MGM模型,参数设置与实证数据一致。
l_models[[i]] <- m_out <- mgm(data = data_sim,
type = c("c", "g", "g", "g", "g", "g", "g"),
level = c(2, 1, 1, 1, 1, 1, 1),
lambdaSel = "EBIC",
lambdaGam =.25,
lambdaSeq = 0,
ruleReg = "AND",
moderators = 1,
scale = TRUE,
pbar = FALSE,
threshold = "none",
signInfo = FALSE)
# 提取模拟数据中变量2和7的调节效应权重值,并存储到v_mod27中。
v_mod27[i] <- m_out$interactions$weightsAgg[[2]][[5]]
print(i)
}
3. 统计分析与结果解释
# 绘制抽样分布直方图
hist(v_mod27, xlim=c(0, .5)) # 绘制从模拟数据中得到的调节效应权重值v_mod27的分布图(即零假设下的分布)。
abline(v=test27, col="red") # 在直方图上标记实证数据中的调节效应test27(用红线表示)。
# 计算临界值
qu95 <- quantile(v_mod27, probs = c(0.95)) # 计算零假设下调节效应权重的95%分位数,作为临界值(显著性水平α = 0.05)。
qu95 # 零假设下调节效应权重的临界值。
# 95%
# 0.3632324
test27 # 实证数据中的调节效应权重。
# [1] 0.3831525
# 假设检验
qu95 < test27
# TRUE 由于test27 > qu95,调节效应显著(在α = 0.05水平下)。
小结:
该代码通过生成零假设下的调节效应分布,并将其与实证数据的调节效应值进行比较,完成了对调节效应显著性的假设检验。结果显示,在α = 0.05水平下,变量1对于变量2和7之间关系的调节效应显著。
今天的内容就到此为止了,欢迎评论区交流探讨。
PSYCH统计实验室
通知公告
网络分析课程目前开放视频课啦!
单次课200元/讲(学生),250元/讲(非学生)
共有四讲内容:
①横断面网络分析简介与基础
②网络分析与因子分析
③交叉滞后网络分析
④时间序列网络分析
购买后开放视频权限14天,可多次申请。
并赠送所有课程相关资料(无PPT)
如果想申请购买,请联系M18812507626
更多资讯
关注我们
文稿:Ns
排版:Peruere
责编:Wink
审核:摘星
本文由“Psych统计自习室”课题组原创,欢迎转发至朋友圈。如需转载请联系后台,征得作者同意后方可转载。