如何在R中运行lmer的诊断图?

时间:2013-10-08 19:26:58

标签: r diagnostics lmer

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

模型很简单:

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

MSV_mm是数字(snout-vent长度),Size_treat是4个级别的因素:连续,大,中和小。 RepPatchTrap是随机效应。

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

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

我认为这与lmer函数有关。我已经开网了,还没有找到这个问题的答案。它是lmer的东西吗?

1 个答案:

答案 0 :(得分:8)

我可以使用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)

enter image description here

虽然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的默认值)。