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

Kik*_*rsi 5 diagnostics r lmer

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

模型很简单:

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

MSV_mm是数字(鼻孔长度),Size_treat是4个级别的因素:连续,大,中和小.Rep,Patch并且Trap是随机效应.

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

"Error in as.double(y) : 
  cannot coerce type 'S4' to vector of type 'double'"
Run Code Online (Sandbox Code Playgroud)

我认为这与lmer功能有关.我已经开网了,还没有找到这个问题的答案.这是lmer件事吗?

Ben*_*ker 8

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

library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
plot(fm1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

虽然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)
Run Code Online (Sandbox Code Playgroud)

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