r - plot() 不显示 lme/lmer 的所有诊断图

标签 r plot

使用 lme/lmer 函数时,我无法让 R 以 par(mfrow=c(2,2)) 和 plot( )。
我只得到 res vs fit 情节,没有别的。
我在使用 lm 函数时没有问题。
有人知道怎么做这个吗?

library(lme4)
m0<-lmer(hematology~Treatment*day+Gender+(1|ID),data=long,na.action=na.omit,REML=FALSE)
par(mfrow=c(2,2))
plot(m0) 

最佳答案

tl; 博士 ?plot.merMod 相当详细地解释了绘图方法如何适用于 [g]lmer 生成的拟合...
你至少可以很容易地得到对应于 plot.lm 的前三个图:
添加平滑线的拟合 vs 残差

plot(lmer_model, type=c("p","smooth"), col.line=1)
(更难获得平滑和不同颜色绘制的零线)
比例位置图
plot(lmer_model,
     sqrt(abs(resid(.)))~fitted(.),
     type=c("p","smooth"), col.line=1)
QQ图
lattice::qqmath(lmer_model)
残差与杠杆
plot(fm1, rstudent(.) ~ hatvalues(.))
(库克的距离可以通过 cooks.distance() 计算,但叠加 CD={0.5,1} 的轮廓并不那么容易......)
历史笔记lme4 诊断绘图方法的设计和实现与 plot.lm 不同,后者是 base R 中的规范示例。为什么?我不确定,但这种方法源自 nlme 包,它早于 R;我能找到的最早版本是 this page from the Wayback Machine (1998),它链接到 1995 年 2 月的 1.2 版 copy of the user's guide;那是在 June 1995 中 R(通过 ftp)的第一个源代码发布前三个月。
  • 它使用 lattice(源自 Trellis™ 图形)而不是 base-R 图形
  • 虽然它不会自动构建,例如比例位置图,它更灵活。您可以使用公式来显示拟合值或残差值与参数、方面等,例如plot(fm1,residuals(.)~Days|Subject)
  • 有用于绘制残差等的单独命令(plot)和 Q-Q 图(qqnorm 中的 nlmeqqmath 中的 lme4)
  • 关于r - plot() 不显示 lme/lmer 的所有诊断图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63751541/

    相关文章:

    r - 在 R 中使用 While 循环创建 n 个组合

    r - 具有不同窗口大小的移动平均线

    在 Julia 中绘制一组具有多个参数的参数方程

    python - Python 中的高效可视化

    r - 带密度曲线的条形图

    r - 如何将图像叠加到 ggplot 上?

    r - 用STOP()终止执行,但不要在R中抛出 “Error”消息

    python - 如何正确使用for循环从python中的csv绘制多行?

    matlab - 第二个子图消失

    r - 在 R 中绘制 Wind Barb