当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R gam.check 拟合 gam 模型的一些诊断


R语言 gam.check 位于 mgcv 包(package)。

说明

获取由 gam() 生成的拟合 gam 对象,并生成有关拟合过程和结果的一些诊断信息。默认情况下会生成 4 个残差图、有关平滑选择优化收敛的一些信息,并运行基本维度选择是否足够的诊断测试。当应用于 gamm 返回的 gam 对象时,应小心解释结果。

用法

gam.check(b, old.style=FALSE,
          type=c("deviance","pearson","response"),
          k.sample=5000,k.rep=200,
          rep=0, level=.9, rl.col=2, rep.col="gray80", ...)

参数

b

gam() 生成的拟合 gam 对象。

old.style

如果您想要老式的绘图,就像 Wood, 2006 中那样,请设置为 TRUE

type

残差类型,请参阅residuals.gam,在所有图中使用。

k.sample

在此 k 之上的测试使用随机数据子样本。

k.rep

需要进行多少次重新洗牌才能获得 k 测试的 p 值。

rep , level , rl.col , rep.col

old.style 为 false 时传递给 qq.gam() 的参数,请参阅此处。

...

传递给绘图函数的额外图形参数。

细节

检查合适的 gam 就像检查合适的 glm ,有两个主要区别。首先,需要检查用于平滑项的基本尺寸,以确保它们不会太小而导致过度平滑:默认值是任意的。 choose.k 提供了更多详细信息,但下面说明的以及此函数报告的诊断测试也可能有所帮助。其次,拟合可能并不总是像常规 GLM 那样对违反分布假设具有鲁棒性,因此这里可能需要更加小心。特别是,quasi-likelihood 的理论意味着,如果均值方差关系对于 GLM 来说是可以的,那么与假设分布的其他偏离就不会有问题:GAM 有时可能更敏感。例如,un-modelled 过度分散通常会导致过度拟合,因为平滑度选择标准试图将尺度参数减小到指定的参数。同样,目前尚不清楚 REML 和 ML 平滑度选择对假设响应分布的偏差有多敏感。由于这些原因,该例程使用增强的残差 QQ 图。

该函数绘制 4 个标准诊断图、一些平滑参数估计收敛信息和测试结果,这些测试结果可能表明某一项的平滑基础维度是否太低。

通常这 4 个图是各种残差图。对于默认的优化方法,收敛信息以可读的方式进行总结,但对于其他优化方法,通过收敛诊断返回的任何内容都会被简单地打印出来。

平滑的基本维度是否足够的测试(Wood,2017,第 5.9 节)基于计算残差方差的估计,该估计基于根据平滑的(数字)协变量的近邻残差的差分。该估计值除以残差方差就是报告的k-index。该值越低于 1,残差中遗漏模式的可能性就越大。 p-value 通过模拟计算:如果残差中没有模式,则将残差随机重新洗牌 k.rep 次,以获得差分方差估计器的零分布。对于适合超过 k.sample 数据的模型,测试基于 k.sample 随机采样数据。低 p 值可能表明基本维度 k 设置得太低,特别是如果报告的 edf 接近 k'(该项的最大可能 EDF)。请注意一个令人不安的事实,即如果检验统计量本身基于随机重采样并且 null 为真,那么相关的 p 值当然会在一次重复与下一次重复之间存在很大差异。目前不支持因子变量的平滑,并将给出 NA p 值。

将可疑的 k 加倍并重新拟合是明智的:如果报告的 edf 大幅增加,那么您可能在第一次拟合中遗漏了某些内容。当然,p 值可能由于 k 太低以外的原因而较低。请参阅choose.k 进行更全面的讨论。

生成的 QQ 图通常是通过调用 qq.gam 创建的,并根据拟合模型根据偏差残差分布的近似理论量绘制偏差残差。如果这看起来很奇怪,那么使用 qq.gam 进一步调查。请注意,拟合到二进制数据的模型的残差包含对模型检查有用的信息非常少(有必要首先找到某种聚合它们的方法),因此 QQ 图在这种情况下不太可能有用。

在解释将此函数应用于使用 gamm 拟合的模型的结果时要小心。在这种情况下,返回的 gam 对象基于用于估计的工作模型,并将所有随机效应视为误差的一部分。这意味着从 gam 对象提取的残差未针对所使用的族或随机效应或相关结构进行标准化。通常,有必要根据您所使用的模型结构来生成您自己的残差检查。

残差分布的参考分位数向量(如果可以计算的话)。

例子

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)

作者

Simon N. Wood simon.wood@r-project.org

参考

N.H. Augustin, E-A Sauleaub, S.N. Wood (2012) On quantile quantile plots for generalized linear models. Computational Statistics & Data Analysis. 56(8), 2404-3409.

Wood S.N. (2017) Generalized Additive Models: An Introduction with R (2nd edition). Chapman and Hall/CRC Press.

https://www.maths.ed.ac.uk/~swood34/

也可以看看

choose.kgammagic

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Some diagnostics for a fitted gam model。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。