如何用mediation的R包做中介分析

用R語言進行中介分析的代碼如下

getmedre_vm2wmhv <- function(X,Y,M,C1,C2,C3,C4,C5,C6,C7){
  Data_X <- data.frame(M = M, X = X, C1 = C1, C2 = C2, C3 = C3, C4 = C4, C5 = C5, C6 = C6, C7 = C7)
  Data_Y <- data.frame(Y = Y,M = M, X = X, C1 = C1, C2 = C2, C3 = C3, C4 = C4, C5 = C5, C6 = C6, C7 = C7)
  
  fitM <- lm(M ~ X + C1 + C2 + C3 + C4 + C5+ C6 + C7,data = Data_X)
  fitY <- glm(Y ~ X + M + C1 + C2 + C3 + C4 + C5 + C6 + C7,data = Data_Y,family = Gamma(link = "log"))
  fitMed <- mediate(fitM, fitY, treat="X", mediator="M",sims = 5000,control.value = mean(X),treat.value = mean(X)+1)
  
  sum_fitM <- summary(fitM)  
  sum_fitY <- summary(fitY)
  
  re_beta <- c(sum_fitM$coefficients[2,1],sum_fitY$coefficients[3,1],fitMed$z0,fitMed$d0,fitMed$tau.coef)
  re_ci_m <- c(sum_fitM$coefficients[2,1]-1.96*sum_fitM$coefficients[2,1],
               sum_fitY$coefficients[3,1]-1.96*sum_fitY$coefficients[3,1],
               unname(fitMed$z0.ci[1]),
               unname(fitMed$d0.ci[1]),unname(fitMed$tau.ci[1]))
  re_ci_p<- c(sum_fitM$coefficients[2,1]+1.96*sum_fitM$coefficients[2,1],
              sum_fitY$coefficients[3,1]+1.96*sum_fitY$coefficients[3,1],
              unname(fitMed$z0.ci[2]),
              unname(fitMed$d0.ci[2]),unname(fitMed$tau.ci[2]))
  re_pval <- c(sum_fitM$coefficients[2,4],sum_fitY$coefficients[3,4],fitMed$z0.p,fitMed$d0.p,fitMed$tau.p)
  
  return(rbind(re_beta,re_ci_m,re_ci_p,re_pval))
}

返回值解釋

從左到右的四列,分別是pathA,pathB,pathC'.pathAB,pathc

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容