R 如何在一台设备上绘制多个LME剩余图

R 如何在一台设备上绘制多个LME剩余图,r,plot,ggplot2,R,Plot,Ggplot2,我试图绘制多个LME诊断图,显示一台设备中的标准残差与拟合值。 我尝试了通常的par(mfrow=c(2,2)),但使用plot(LME)命令绘制LME残差不起作用,因为使用了完整的设备 我想使用ggplot2中的facet_wrap或facet_grid,但它不知道如何处理模型和自动绘制残差 下面是一些测试代码: par(mfrow=c(2,2)) treatment=factor(c(rep("a",4),rep("b",4),rep("c",4))) response=rnorm(12,2

我试图绘制多个LME诊断图,显示一台设备中的标准残差与拟合值。 我尝试了通常的par(mfrow=c(2,2)),但使用plot(LME)命令绘制LME残差不起作用,因为使用了完整的设备

我想使用ggplot2中的facet_wrap或facet_grid,但它不知道如何处理模型和自动绘制残差

下面是一些测试代码:

par(mfrow=c(2,2))
treatment=factor(c(rep("a",4),rep("b",4),rep("c",4)))
response=rnorm(12,2,1)
explanatory=rnorm(12,4,1)
test.lme=lme(response~explanatory,random=~1|treatment)
test.lm=lm(response~explanatory)
plot(test.lme)
作为比较:

par(mfrow=c(2,2))
plot(response~explanatory)
plot(test.lm)
很好。
如何实现这一点?

您可以使用
grid()
包中的东西设置视口等,但最简单的方法是使用
grid.arrange()
包中的
grid.arrange()函数:

library('nlme')
set.seed(101)
treatment <- factor(c(rep("a",4),rep("b",4),rep("c",4)))
response <- rnorm(12,2,1)
explanatory <- rnorm(12,4,1)
test.lme <- lme(response~explanatory,random=~1|treatment)
library('gridExtra')
p1 <- plot(test.lme)
p2 <- plot(form=sqrt(abs(resid(.)))~fitted(.),test.lme)
grid.arrange(p1,p2)
库('nlme')
种子集(101)

治疗现在有一个函数ggplot::autoplot(),它将接受模型对象并在facet中绘制所有四个诊断


编辑:哎呀,它实际上在
ggfortify
包中,加载时显然屏蔽了
ggplot2::autoplot()
,这就是我认为它在ggplot2中的原因。

谢谢Ben。为什么建议在代码中使用残差的绝对值?它不会阻止我们检测残差的不对称性吗?我在某种程度上模仿了
plot.lm()
的行为。sqrt(abs(残差))与拟合的曲线图称为比例位置曲线图,并针对检测异方差进行了优化…autoplot()不接受lm和lme类型的对象,我只是尝试了一下。