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)

最佳答案

有四个图,从左上角,向下和穿过我们有:

  • 残差的 QQ 图
  • 残差的直方图
  • 残差图与线性预测变量
  • 观察值与拟合值的图。

  • 在下面的代码中,根据您的示例,我假设 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)
    

    请注意,最后两行应用了 NA 处理方法,该方法在将模型拟合到 linear.predictorsy 上的信息(响应数据的存储副本)时使用。

    上面的代码和下面显示的代码都在 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")
    

    关于r - 如何仅从 gam.check 获取图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22275610/

    10-14 07:37