基于burceR包和mma包的多重中介效应分析学习笔记 | 您所在的位置:网站首页 › r语言mediation包mediations函数 › 基于burceR包和mma包的多重中介效应分析学习笔记 |
(本文章部分学习自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 bruceRbruceR包整合了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 实验室设备网 版权所有 |