【问题标题】:Error in eval(predvars, data, env) : object 'helpfulness' not foundeval 中的错误(predvars,data,env):找不到对象“帮助”
【发布时间】:2020-04-02 15:32:55
【问题描述】:
>hyp1.model1<-clmm(helpfulness~reflectiontype+session+(1+reflectiontype|participant),data=hyp1data)
>summary(hyp1.model1) #summary was produced but I won't replicate it here
>anova(hyp1.model1,type="II")
Error in eval(predvars,data,env):object 'helpfulness' not found

我想在 hyp1.model1 上运行方差分析 - 模型最初运行良好,并且在我使用此变量的任何其他代码中都没有出现“有用”问题。到目前为止,R 已与数据集完全链接,并且数据集中的变量列标题与 R 中的变量标签之间似乎没有区别(因此所有其他代码都已识别它)。

为什么当我想运行方差分析时突然出现这个问题?

【问题讨论】:

  • clmm 来自哪个包?你能分享你的数据吗? anova 是否支持 clmm 模型类型?
  • 嗨,Steph,我认为您不能在带有序数的混合模型上运行 II 型方差分析。如果你需要测试术语的重要性,我想你必须做 anova(fullmodel,reducedmodel)
  • 我找到了一个教程,它解释了如何使用一些不同的包使用 Anova 命令(大写 A)。我在下面发布了一个链接,它似乎工作正常。

标签: r


【解决方案1】:

我的猜测是helpfulness 不在您的数据框hyp1data 中。当您在第一行创建模型时,可以在本地环境中找到它(您在 R 中创建的所有变量)。但是,当您运行第三行时,代码会专门在您指定的数据框中查找 helpfulness。如果它不存在,它会像这样失败。

试试:

hyp1data$helpfulness <- helpfulness

这样能解决吗?

【讨论】:

  • 谢谢,但我想我找到了更好的解决方法!请参阅下面的答案。
【解决方案2】:

我遇到了同样的错误,但觉得答案可能更具描述性。我相信错误的出现是因为stats::anova()car::Anova() 函数没有识别ordinal::clmm 模型的方法。

要使用ordinal::clmm() 运行累积链接混合模型并获取后续偏差表,请确保已加载 ordinalRVAideMemoire 包。 RVAideMemoire 提供了通过Anova.clmm() 获取偏差表的方法。

# fake data
set.seed(5)
hyp1data <- data.frame(
  participant = c(paste0("id", 1:50),paste0("id", 1:50), paste0("id", 1:50),paste0("id", 1:50)),
  session = c(rep(1, 50), rep(2,50), rep(1, 50), rep(2,50)),
  reflectiontype = c(rep(1, 100), rep(2, 100)),
  helpfulness = sample(1:7, 100, replace = TRUE))

hyp1data[,1:3] <- lapply(hyp1data[,1:3], factor)
hyp1data$helpfulness <- factor(hyp1data$helpfulness, ordered = TRUE)

# load libraries
library(ordinal)
library(RVAideMemoire)

# use RVAideMemoire::Anova.clmm
hyp1.model1<-clmm(helpfulness~reflectiontype+session+(1+reflectiontype|participant),data=hyp1data)
summary(hyp1.model1) 
RVAideMemoire::Anova.clmm(hyp1.model1,type="II")

【讨论】:

    【解决方案3】:

    请注意另一种可能的解决方案:当我的数据被调用 df 时,我遇到了同样的问题 - 在函数调用的某个地方,这一定与 df 函数混淆了。重命名我的数据框解决了它。

    【讨论】:

      【解决方案4】:

      我找到了一种使用“RVAideMemoire”包和“car”包进行方差分析的方法:

      法比安·布罗斯 (2019)。使用混合效应模型分析可接受性评级数据。 1.0 版。拟态。在线:www.fabianbross.de/mixedmodels.pdf。

      最后的部分很好地描述了如何以这种方式跟进 clmm 模型。

      【讨论】:

      • 太好了 - 很高兴您找到了解决方法。话虽如此,您的问题不是“我该怎么做 clmm”,而是“为什么我的代码不起作用”。问题存档的重点是为其他用户提供可能的修复,因此,如果我的回答解决了您实际提出的问题,则说它解决了问题(例如,不是更深层次的 clmm 问题)以后可能对其他人有用.注意到其他地方有一个很好的指南绝对是一个非常有用的评论,但并不是对特定问题的真正答案。
      猜你喜欢
      • 2018-11-05
      • 2020-09-21
      • 2020-04-12
      • 1970-01-01
      • 2022-01-11
      • 2019-01-31
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      相关资源
      最近更新 更多