我正在尝试在lmer
型号上运行诊断图,但一直在撞墙。我不确定我需要提供多少信息,但是这里有:
模型很简单:
best <- lmer(MSV_mm ~ Size_treat + (1|Rep) + (1|Patch) + (1|Trap), data= early_nopine).
MSV_mm
是数字(snout-vent长度),Size_treat
是4个级别的因素:连续,大,中和小。 Rep
,Patch
和Trap
是随机效应。
当我运行plot(best)
时,收到以下错误消息:
"Error in as.double(y) :
cannot coerce type 'S4' to vector of type 'double'"
我认为这与lmer
函数有关。我已经开网了,还没有找到这个问题的答案。它是lmer
的东西吗?
答案 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)
虽然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
的默认值)。