首页 > 解决方案 > 在 R 中运行 HLM 中介

问题描述

我尝试使用“中介”包运行 HLM 中介:

med.fit <- glmer(M ~ treat + control  + (1|subject_id) ,family = binomial(link = "logit"), data = R1_data)

out.fit <- glmer(Y ~ M+ treat + control+ (1 + M|subject_id),family = binomial(link = "logit"), data = R1_data)

med.out <- mediate(med.fit, out.fit, treat = "treat", mediator = "M", sims = 1000)

我收到此错误消息:

[.data.frame(y.data, int.term.name[p]) 中的错误:选择了未定义的列

如何解决这个问题呢?

这是原始数据和代码:

names(R1_data)

 [1] "subject_id"                                                                            
 [3] "Presented_is_solvable"                                                                   
 [5] "JOS"                                                                                                                                                                                                                                                                                                                                                                               
[17] "Answer_JOS"                                                                                                                 
[23] "Matrix_Z_score" 

library(mediation)
library(lme4)

med.fit <- glmer(JOS ~ Matrix_Z_score + Presented_is_solvable  + (1|subject_id) ,family = binomial(link = "logit"), data = R1_data)

out.fit <- glmer(Answer_JOS ~ JOS + Matrix_Z_score +Presented_is_solvable  + (1 + JOS|subject_id),family = binomial(link = "logit"), data = R1_data)

med.out <- mediate(med.fit, out.fit, treat = "Matrix_Z_score", mediator = "JOS", sims = 1000)

标签: rglmlme4

解决方案


发现当治疗或中介数据在 R 中被分类为因子数据时会发生这种情况。中介函数无法像在模型中那样从拟合模型中正确定位这些变量的名称,它们显示为“变量名称”+因子级别.

解决方案是确保将这些变量归类为整数。您可以查看student中介包中数据集中的变量分类。


推荐阅读