【问题标题】:Error using mediation package with lme4 model: mediator model is not yet implemented使用带有 lme4 模型的中介包时出错:中介模型尚未实现
【发布时间】:2016-12-22 04:14:51
【问题描述】:

我有一个data.framedf

> str(df_ss)
'data.frame':   571 obs. of  4 variables:
 $ final_grade  : num  0.733 0.187 0.502 0.194 0.293 ...
 $ time_spent   : num  -0.2 -0.326 -0.709 -0.168 -0.254 ...
 $ gender_female: num  1 0 1 0 0 0 1 1 1 1 ...
 $ course_ID    : Factor w/ 26 levels "1","2","3","4",..: 14 18 13 21 24 15 3 24 9 13 ...

我想看看time_spent 如何调节gender_femalefinal_grade 之间的关系。我正在为course_ID 指定一个随机效果。

我指定使用的模型如下:

med.fit <- lme4::lmer(time_spent ~ gender_female + (1|course_ID), data = df)
out.fit <- lme4::lmer(final_grade ~ time_spent + gender_female + (1|course_ID), data = df_ss)

这些似乎工作正常。

以下示例使用lme4in a vignettemediation 包,我指定了这个中介模型:

library(mediation)
med.out <- mediate(med.fit, out.fit, treat = "gender_female", mediator = "time_spent", dropobs = T)

这导致了这个错误输出:Error in mediate(med.fit, out.fit, treat = "gender_female", mediator = "time_spent",: mediator model is not yet implemented

根据this mailing list question(和答案),我检查了:

  1. inherits(mediatorModel, "merMod") 返回TRUE
  2. getCall(mediatorModel)[[1]]返回lme4::lmer

【问题讨论】:

  • 您可以尝试使用library(lme4) 加载lme4 而不是lme4::lmer,然后调用lmer。查看mediate 代码表明错误处理检查正在寻找lmer 的完全匹配项,即getCall(model.m)[[1]] == "lmer"
  • 如果此建议不起作用,请提供一些示例数据,以便我们重现您的问题。
  • 成功了。更改为library(lme4),然后拨打lmer。谢谢。
  • 太棒了。我已经复制了我的评论作为答案,以便我们可以关闭它。

标签: r lme4


【解决方案1】:

您可以尝试使用library(lme4) 加载lme4,而不是lme4::lmer,然后调用lmer。查看mediate 代码表明错误处理检查正在寻找与lmer 的完全匹配,即getCall(model.m)[[1]] == "lmer"

【讨论】:

    猜你喜欢
    • 2017-11-20
    • 2022-01-12
    • 2020-07-04
    • 2011-11-08
    • 2020-07-19
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多