如何解决多归责MICE,标准化系数的R中的中介分析
我需要对R进行中介分析,其中包含不完整的数据作为我的硕士论文。根据van Buuren&Groothuis-Oudshoorn(2011),对于缺失,我使用了 MICE多重插补。
对于调解分析,我已经考虑参考 Tingley等人。 (2014; https://oar.princeton.edu/jspui/bitstream/88435/pr1gj2f/1/Mediation%20JSS.pdf)
在这里,您可以找到他的代码:https://cran.r-project.org/web/packages/mediation/mediation.pdf 假设的例子 要使用中介,必须列出多个数据集。然后,还必须根据您的数据集重复处理分配列表多次。
datasets <- list(D1=D1,D2=D2) # list of multiply imputed data sets
mediators <- c("M1")
outcome <- c("Ycont1")
treatment <- c("T1","T1") # note how the treatment indicator is repeated
covariates <- c("X1+X2")
olsols <- mediations(datasets,treatment,mediators,outcome,covariates,families=c("gaussian","gaussian"),interaction=FALSE,conf.level=.90,sims=1000)
output <- amelidiate(olsols) # summary(output)
plot(output)
对于我的硕士论文,我想了解eCoach与患者之间的治疗联盟是否介导了基于互联网的抑郁症干预的完整模块数量与抑郁症严重程度之间的关系。
已完成模块数(ModuleEr)->治疗联盟(WAI_C)->抑郁症严重程度(QIDS_t1)
我的变量是数字。我对标准系数特别感兴趣。我也尝试了Tingley的代码,并适应了我的变量:
df <-data
library(mice)
library(mediation)
出于测试原因的简单估算
imp <- mice(df,m=5,seed = 1234)
我转换每个估算数据集
imp1 <- complete(imp,1)
imp2 <- complete(imp,2)
imp3 <- complete(imp,3)
imp4 <- complete(imp,4)
imp5 <- complete(imp,5)
我只对数字变量进行数据标准化
imp1z <- scale(imp1[,1:13])
imp2z <- scale(imp2[,1:13])
imp3z <- scale(imp3[,1:13])
imp4z <- scale(imp4[,1:13])
imp5z <- scale(imp5[,1:13])
我制作了两个由多个估算数据集组成的列表:一个带有标准化变量的列表,一个带有非标准化变量的列表
datasets1 <- list(imp1=imp1,imp2=imp2,imp3=imp3,imp4=imp4,imp5=imp5)
datasets2<- list(imp1z=imp1z,imp2z=imp2z,imp3z=imp3z,imp4z=imp4z,imp5z=imp5z)
然后,我定义我的介体,结局,治疗肠胃炎
mediators <- c("WAI_C")
outcome <- c("QIDS_t1")
treatment <- c("ModuleEr","ModuleEr","ModuleEr" ) # is it correct to repeat the treatment as many times as you have data sets? I hav read it here: https://rdrr.io/cran/mediation/src/R/amelidiate.R
covariates <- c("QIDS_t0")
接下来,我将调解函数与非标准变量一起使用。我想知道如何定义families = c(“ gaussian”,“ gaussian”)。我的变量不是正态分布的……
olsols1 <- mediations(datasets1,conf.level=.95,sims=10)
output1 <- amelidiate(olsols1)
summary(output1)
plot(output1) # the plot function doesn’t work: Error in plot.new() : figure margins too large
我的输出1看起来像这样 enter image description here 如果我对标准数据集(datasets2)重复中介功能,则会收到错误消息:
olsols2 <- mediations(datasets2,sims=10)
output2 <- amelidiate(olsols2)
summary(output2)
eval中的错误(predvars,data,env):找不到对象“ WAI_C” 其他:警告: 在dataarg $ weight中 将左侧转换为列表
怎么了?为什么找不到WAI_C?我检查了所有5个标准化数据集,它们都包含WAI_C。为什么介体变量特别受到影响?
该如何将左侧转换为列表?
由于output1仅显示ACME,ADE,总效果。如何获得相关的回归系数?只需建立回归方程式就足够了吗?
Med1 <- with(data = imp,exp = lm(scale(WAI_C) ~ scale(ModuleEr) + scale(QIDS_t0)))
Med1.pooled <- pool(Med1)
summary(Med1.pooled)
Med2 <- with(data = imp,exp = lm(scale(QIDS_t1) ~ scale(ModuleEr) + scale(WAI_P) + scale(QIDS_t0)))
Med2.pooled <- pool(Med2)
summary(Med2.pooled)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。