【问题标题】:Error with `glmer{lme4}`: cannot coerce class "family" to a data.frame`glmer{lme4}` 出错:无法将“家庭”类强制转换为 data.frame
【发布时间】:2017-04-19 07:12:49
【问题描述】:

我正在使用包lme4 中的glmer() 函数运行具有随机效应的广义线性模型。

模型代码如下所示:

mod6 <- glmer((Ndifference+74337) ~ netm1011 + d1011 + 
           b0001 + (1|region), Gamma(link = "identity"))

Ndifference 是 50 个州(和 DC)在 200 年和 2010 年之间人口差异的计数数据。有一个负值(Michigan at -74336)所以我添加了一个常数来确保我的反应都是正面的。

所有预测变量(除了区域的随机效应)都是比例或百分比。 Netm1011(2010 年移民到各州的比率)和 d1011(每 1000 人的死亡率)都有几个负值。 B0001 包含所有正比例(出生率/1000 人)。

当我运行模型时,我不断收到此错误:

Error in as.data.frame.default(data) : 
  cannot coerce class ""family"" to a data.frame

我也尝试过不同的发行版系列(Gammainverse.gaussian)。这个错误代码到底是什么意思?

【问题讨论】:

    标签: r regression lme4


    【解决方案1】:
    glmer(formula, data = NULL, family = gaussian, control = glmerControl(),
          start = NULL, verbose = 0L, nAGQ = 1L, subset, weights, na.action,
          offset, contrasts = NULL, mustart, etastart,
          devFunOnly = FALSE, ...)
    

    你也想指定形式参数:

    family = Gamma(link = "identity")
    

    当没有指定形式参数时,参数按位置匹配。第二个参数是data,但您将Gamma 函数传递给它。所以model.frame不能工作。

    这可能是glmer 的特定问题。glm 比较:

    glm(formula, family = gaussian, data, weights, subset,
        na.action, start = NULL, etastart, mustart, offset,
        control = list(...), model = TRUE, method = "glm.fit",
        x = FALSE, y = TRUE, contrasts = NULL, ...)
    

    第二个参数是familydata 是第三个。所以你不会有问题:

    glm((Ndifference+74337) ~ netm1011 + d1011, Gamma(link = "identity"))
    

    同时考虑gam 来自mgcv

    gam(formula,family=gaussian(),data=list(),weights=NULL,subset=NULL,
        na.action,offset=NULL,method="GCV.Cp",
        optimizer=c("outer","newton"),control=list(),scale=0,
        select=FALSE,knots=NULL,sp=NULL,min.sp=NULL,H=NULL,gamma=1,
        fit=TRUE,paraPen=NULL,G=NULL,in.out,drop.unused.levels=TRUE,
        drop.intercept=NULL,...)
    

    我们看到family 也位于第二位。

    【讨论】:

    • 嗨@Zheyuan_Li,感谢更新,所以我最终插入了家庭参数并运行了模型,这导致了一个巨大的矩阵和错误代码读取: eval 中的错误(替代(expr) , envir, enclos) : (maxstephalfit) PIRLS 减半未能减少 pwrssUpdate 中的偏差
    • 您好@Zheyuan Li,再次感谢您。我最终挂了标题以反映这个错误以及问题本身。我还感谢您回答了第一个涉及家庭争论的错误问题。快速提问,我如何将数据附加到我的帖子中?
    • 我对您之前的评论有一个后续问题。所以一旦我使用了 dput 功能......我应该将它复制并粘贴到我的新帖子中吗?
    • 我仍在研究如何获取关于我的新问题的数据!一旦我弄清楚了,我肯定会发布一个新的!
    • 会的。感谢并为所有麻烦感到抱歉
    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2020-03-11
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多