如何在一台设备上绘制多个 LME 残差图
How to plot multiple LME residual plots in one device
我正在尝试绘制多个诊断 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()
包中的内容来设置视口等,但最简单的方法是使用 gridExtra
包中的 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)
您可以指定行数和列数等。
现在有一个函数 ggplot::autoplot() 将接受模型对象并在方面绘制所有四个诊断。
编辑:糟糕,它实际上在 ggfortify
包中,并且在加载时显然屏蔽了 ggplot2::autoplot()
,这就是为什么我认为它在 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,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()
包中的内容来设置视口等,但最简单的方法是使用 gridExtra
包中的 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)
您可以指定行数和列数等。
现在有一个函数 ggplot::autoplot() 将接受模型对象并在方面绘制所有四个诊断。
编辑:糟糕,它实际上在 ggfortify
包中,并且在加载时显然屏蔽了 ggplot2::autoplot()
,这就是为什么我认为它在 ggplot2 中。