【问题标题】:How do I run diagnostic plots for lmer in R?如何在 R 中运行 lmer 的诊断图?
【发布时间】:2013-10-08 19:26:58
【问题描述】:

我正在尝试在 lmer 模型上运行诊断图,但一直碰壁。我不确定我需要在这里提供多少信息,但这里是:

模型很简单:

best <- lmer(MSV_mm ~ Size_treat + (1|Rep) + (1|Patch) + (1|Trap), data= early_nopine). 

MSV_mm 是数字(鼻孔长度),Size_treat 是具有 4 个级别的因子:连续、大、中和小。 RepPatchTrap 是随机效果。

当我运行plot(best) 时,我收到以下错误消息:

"Error in as.double(y) : 
  cannot coerce type 'S4' to vector of type 'double'"

我认为这与lmer 函数有关。我已经在网络上进行了巨魔,但尚未找到此问题的答案。是lmer 吗?

【问题讨论】:

  • 我认为你假设因为你可以在 lm 对象上运行 plot,你也可以对 lmer 对象执行此操作。请注意,有一个plot.lm,但没有一个plot.lmer 函数。
  • @SeñorO 他们假设正确:?plot.merMod
  • @joran 当我加载lme4 时,我没有plot.merMod。此外,lmer 模型进入我机器上的plot.default
  • @joran 我想那是 OP 的问题 - 我得到了同样的错误(来自xy.coords
  • 好的,我需要一个可重现的例子。从 CRAN 全新安装 lme4 1.0-4,这对我有用:library(lme4); fm1 &lt;- lmer(Reaction ~ Days + (Days | Subject), sleepstudy); plot(fm1)plot.merMod 未导出,但您应该可以通过 lme4:::plot.merMod 看到它。缩写。 sessionInfo(): r-devel r63889, 32-bit linux, lme4_1.0-4 ;矩阵_1.0-14; lattice_0.20-23 ;编译器_3.1.0;网格_3.1.0; MASS_7.3-29; minqa_1.2.1 ; nlme_3.1-111 ; splines_3.1.0 ; tools_3.1.0

标签: r diagnostics lmer


【解决方案1】:

我可以使用 lme4.0 重现此错误,这相当于 CRAN 的 lme4 的早期(1.0.0 之前)版本。如果您使用来自 CRAN 的最新 lme4(截至 2013 年 10 月的版本 1.0-4),应该会发生以下情况:

library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
plot(fm1)

虽然plot.merMod 没有导出,但它被记录在案(?plot.merMod),您可以通过lme4:::plot.merMod(或getAnywhere("plot.merMod"))看到它。

如果你想用早期版本的lme4 重现这个情节,你可以这样做:

augData <- data.frame(sleepstudy,fitted=fitted(fm1),resid=residuals(fm1))
library(lattice)
xyplot(fitted~resid,data=augData)

您应该考虑是否需要偏差残差(residuals() 的默认值)或 Pearson 残差(plot.merMod 的默认值)。

【讨论】:

    猜你喜欢
    • 2020-12-24
    • 1970-01-01
    • 2013-01-17
    • 2022-06-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2015-06-13
    相关资源
    最近更新 更多