基于burceR包和mma包的多重中介效应分析学习笔记 您所在的位置:网站首页 r语言mediation包mediations函数 基于burceR包和mma包的多重中介效应分析学习笔记

基于burceR包和mma包的多重中介效应分析学习笔记

2024-07-07 04:35| 来源: 网络整理| 查看: 265

 (本文章部分学习自https://www.zhihu.com/tardis/zm/art/376007591?source_id=1005)

1 简单中介效应

如图,c是X对Y的作用,

c'是X对Y的直接作用,

a是X对M的作用,

b是M对Y的作用,

a*b是X对Y的间接作用。

若X通过M对Y起影响,则称M为一个中介。

判断M是否是一个中介的标准,就是判断回归系数a*b的显著性。

此外,若c显著,c'不显著,且a*b显著,则认为M是一个完全中介;

若c'显著,a*b显著,则认为M是一个部分中介。

2 多重中介效应 2.1 平行中介

多个中介变量并行的模型,X对Y的总间接效应为a*b+c*d,直接效应为c'。

2.2 链式中介

多个中介变量串行的模型,X对Y的总间接效应为abc+ae+dc,直接效应为c'。

3 代码 3.1 bruceR

       bruceR包整合了mediation包进行中介效应分析、interactions包进行简单斜率分析、lavaan包进行链式多重中介分析,其中PROCESS()函数具有计算调节效应、中介效应和有调节的中介效应的能力,支持连续或二分类的自变量X、中介变量M、因变量Y,无限多个平行的中介变量M、最多4个链式的中介变量M、最多2个调节变量W,无限多个、不同类型的控制变量/协变量,具有上手简单,功能丰富的特点。

#数据获取 library(bruceR) ?mediation::student data=mediation::student %>% dplyr::select(SCH_ID, free, smorale, pared, income, gender, work, attachment, fight, late, score) names(data)[2:3]=c("SCH_free", "SCH_morale") names(data)[4:7]=c("parent_edu", "family_inc", "gender", "partjob") data$gender01=1-data$gender # 0 = female, 1 = male data$gender=factor(data$gender01, levels=0:1, labels=c("Female", "Male")) head(data) #包含以下变量: #SCH_ID=学校编号 #SCH_free=学校提供免费午餐力度的等级 #SCH_smorale=该学校学生道德素质 #parent_edu=父母教育水平 #family_income=家庭收入 #gender=性别 #partjob=兼职情况 #attachment=是否喜欢学校 #fight=是否打过架 #late=迟到频次 #score=数学成绩 SCH_ID SCH_free SCH_morale parent_edu family_inc gender partjob attachment fight late score gender01 1 1 3 5 0 10 Female 0 0 0 1 46 0 2 1 3 5 0 9 Male 0 0 1 5 48 1 3 1 3 5 1 13 Female 0 1 1 3 72 0 4 1 3 5 0 12 Male 1 1 0 1 57 1 5 1 3 5 0 11 Male 0 1 0 2 51 1 6 1 3 5 0 7 Male 1 1 0 2 52 1

简单中介: 

#简单中介 #研究parent_edu是否通过family_income对score产生影响 PROCESS(data=data,y='score',x='parent_edu',meds='family_inc',covs='gender',ci='boot',nsim=1000,seed=0) #meds为中介变量 #cov为协变量 #ci是评估间接效应的CI的方法,默认为bootstrap自举法 #nsim是bootstrap模拟的次数

结果:

从结果中可以发现,直接效应和简介效应都显著,因此family_inc是parent_edu对score的一个部分部分中介。

平行中介:

#并行中介 PROCESS(data=data,y='score',x='parent_edu',meds=c('family_inc','late','fight'),covs=c('gender','partjob'),ci='boot',nsim=1000,seed=0)

结果: 

从结果可以发现,fight,family_inc,late都是parent_edu对score的中介因素,且为部分中介

链式中介:

PROCESS(data=data,y="score",x="parent_edu",meds=c("family_inc", "late"),covs=c("gender","partjob"),med.type="serial",ci="boot",nsim=1000,seed=0) #多一个参数med.type

 结果:

从结果可以发现,family_inc和late都是parent_edu对score的中介,但late单独的中介效应不显著。

3.2 mma

 也可用mma包的mma()函数进行多重中介效应模型的拟合,该函数特点是能从指定的变量集中找出中介变量。

#mma library(mma) x=data[,c(1:3,5:10)] pred=data[,4] y=data[,11] mmodel


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有