如何只获取gam.check中的图

时间:2014-03-08 16:04:06

标签: r mgcv

gam.check包中应用mgcv时,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)

1 个答案:

答案 0 :(得分:11)

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

  1. 残差的QQ图
  2. 残差的直方图
  3. 残差图与线性预测值
  4. 观察值与拟合值的关系图。
  5. 在下面的代码中,我假设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)
    

    注意最后两行正在应用模型适用于NAlinear.predictors的信息时使用的y处理方法,即存储的响应数据副本。 / p>

    以上代码和下面显示的代码全部在gam.check()来源的前10行中给出。要查看此内容,只需输入

    即可
    gam.check
    

    在R提示符下。

    每个情节如下:

    QQ情节

    这是通过qq.gam()生成的:

    qq.gam(b, rep = 0, level = 0.9, type = type, rl.col = 2, 
           rep.col = "gray80")
    

    残差直方图

    这是使用

    生成的
    hist(resid, xlab = "Residuals", main = "Histogram of residuals")
    

    残差与线性预测值

    这是使用

    生成的
    plot(linpred, resid, main = "Resids vs. linear pred.", 
         xlab = "linear predictor", ylab = "residuals")
    

    观察到的拟合值

    这是使用

    生成的
    plot(fitted(b), observed.y, xlab = "Fitted Values", 
         ylab = "Response", main = "Response vs. Fitted Values")