繁体   English   中英

R中的残差和包络图

[英]Residuals and envelope plot in R

我使用JAGS拟合了回归模型,现在我想对残差进行模拟包络以检查该模型的拟合度。 假设下面的矩阵是残差矩阵,其中每一行都是观察值,每一列都是模拟。

第一列是原始数据集的残差,其他列是模拟的残差

resid <- matrix(runif(330,0,2),ncol =11)
resid <- apply(resid,2,sort)

为了进行模拟包络,我需要找到每个观察值的最小值,最大值和平均值,而第一列不是原始残差。 然后我做到了

means <- apply(resid[,-1],1,mean)
minimuns <- apply(resid[,-1],1,min)
maximuns <- apply(resid[,-1],1,max)

现在我需要将每一个均值的最小值和最大值绘制成线

z=qnorm((i+n-1/8)/(2*n+1/2))

在这种情况下, n=30i=1:30

因此,我现在要做的是将最小值,最大值和均值放在图中,然后将第一列的点(原始数据)也与z

我该怎么办?

我想像下面的图片那样做,但要用黑色连续线条。 在此处输入图片说明

这是一个没有太多格式化的简图...

已编辑

resid <- matrix(runif(330,0,2),ncol =11)
resid <- apply(resid,2,sort)

means <- apply(resid[,-1],1,mean)
minimuns <- apply(resid[,-1],1,min)
maximuns <- apply(resid[,-1],1,max)

n=length(minimuns)
i=seq_along(minimuns)
z=qnorm((i+n-1/8)/(2*n+1/2))

plot(z, minimuns, type='l',ylim=range(c(minimuns,maximuns,resid[,1])))
lines(z, maximuns)
lines(z, means, lty=2)
points(z, resid[,1])
legend("topleft", legend=c("envelope", "mean", "first column"), lty=c(1,2,NA),pch=c(NA,NA,1))

或类似的东西

plot(NA, xlim=range(z), ylim=range(c(minimuns,maximuns,resid[,1])))
polygon(c(z,rev(z)),c(minimuns,rev(maximuns)),border=NA, col="grey90")
lines(z, means, lty=2)
points(z, resid[,1])

这当然可以美化,但这是我想到的一种解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM