首页 文章

如何在一个设备中绘制多个LME残差图

提问于
浏览
1

我试图在一个设备中绘制多个诊断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)

工作良好 . 我怎样才能做到这一点?

1 回答

  • 0

    您可以使用 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)
    

    您可以指定行数和列数等 .

相关问题