如何只获取gam.check中的图

hge*_*eop 6 r mgcv

gam.checkmgcv包装中应用时,R会产生一些残差图和基本尺寸输出.有没有办法生产图而不是印刷输出?

library(mgcv)
set.seed(0)
dat <- gamSim(1,n=200)
b   <- gam(y~s(x0)+s(x1)+s(x2)+s(x3), data=dat)
plot(b, pages=1)
gam.check(b, pch=19, cex=.3)
Run Code Online (Sandbox Code Playgroud)

Rei*_*son 12

有四个图,从左上角向下移动,我们有:

  1. 一张QQ残图的情节
  2. 残差的直方图
  3. 残差图与线性预测值的关系图
  4. 观察值与拟合值的关系图.

在下面的代码中,我假设b包含您的拟合模型,根据您的示例.首先我们需要一些东西

type <- "deviance"  ## "pearson" & "response" are other valid choices
resid <- residuals(b, type = type)
linpred <- napredict(b$na.action, b$linear.predictors)
observed.y <- napredict(b$na.action, b$y)
Run Code Online (Sandbox Code Playgroud)

注意最后两行是将NA模型拟合时使用的处理方法应用于linear.predictorsy存储的响应数据副本.

上面的代码和下面显示的代码都是在源的前10行左右给出的gam.check().要查看此内容,只需输入即可

gam.check
Run Code Online (Sandbox Code Playgroud)

在R提示.

每个图的制作如下:

QQ情节

这通过qq.gam()以下方式产生:

qq.gam(b, rep = 0, level = 0.9, type = type, rl.col = 2, 
       rep.col = "gray80")
Run Code Online (Sandbox Code Playgroud)

残差直方图

这是使用

hist(resid, xlab = "Residuals", main = "Histogram of residuals")
Run Code Online (Sandbox Code Playgroud)

残差与线性预测

这是使用

plot(linpred, resid, main = "Resids vs. linear pred.", 
     xlab = "linear predictor", ylab = "residuals")
Run Code Online (Sandbox Code Playgroud)

观察到的拟合值

这是使用

plot(fitted(b), observed.y, xlab = "Fitted Values", 
     ylab = "Response", main = "Response vs. Fitted Values")
Run Code Online (Sandbox Code Playgroud)