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


R anova.gam 与 GAM 拟合相关的近似假设检验


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

说明

执行与一个或多个拟合的 gam 对象相关的假设检验。对于单个拟合的 gam 对象,对每个参数和平滑项的显著性进行 Wald 检验,因此解释类似于 drop1 而不是 anova.lm(即,它类似于 III 型方差分析,而不是 I 型顺序方差分析)方差分析)。否则,使用偏差表分析或 GLRT 测试来比较拟合模型:后一种方法不应用于测试可能被惩罚为零的项的显著性。要比较的模型应使用相同的平滑参数选择方法来拟合相同的数据。

用法

## S3 method for class 'gam'
anova(object, ..., dispersion = NULL, test = NULL,
                    freq = FALSE)
## S3 method for class 'anova.gam'
print(x, digits = max(3, getOption("digits") - 3),...)

参数

object , ...

gam() 生成的 gam 类的拟合模型对象。

x

由对 anova.gam() 的单个模型调用生成的 anova.gam 对象。

dispersion

色散参数的值:通常不使用。

test

对 multi-model 调用执行什么样的测试。 "Chisq""F""Cp" 之一。对于大家庭和一般家庭,重置为 "Chisq" ,除非 NULL

freq

是否对参数项 p 值使用频率近似或贝叶斯近似。有关详细信息,请参阅summary.gam

digits

打印输出时使用的位数。

细节

如果提供了多个拟合模型,则使用anova.glm,模型自由度的差异被视为有效自由度的差异(如果可能,这是平滑参数不确定性校正版本)。对于大家庭和普通家庭,进行此设置以便使用 GLRT 测试。 multi-model 案例得出的 p 值只是近似值,必须谨慎使用。当比较涉及未惩罚项或维数大于零的零空间的平滑器时,近似是最准确的。 (本质上,我们要求差分项可以很好地近似为自由度近似于有效自由度的未惩罚项)。在模拟中,p 值通常略低。对于零维零空间项(即可以惩罚为零的项),近似值通常非常差,并且显著性可能被大大夸大:即 p 值通常太低。这种情况适用于随机效应项。

另请注意,在 multi-model 对 anova.gam 的调用中,具有更多项的模型很可能最终获得较低的有效自由度,但比具有较少项的名义上的空模型更好的拟合。在这种情况下,执行任何类型的测试都很少有意义,因为这样就没有接受名义零模型的基础。

如果仅提供一个模型,则使用类似 Wald 的检验来评估每个模型项的显著性,以平滑参数估计为条件:有关详细信息,请参阅summary.gam 和 Wood (2013a,b)。此处提供的 p 值比多模型情况下的 p 值更合理,并且接近零值下的正确分布,除非平滑参数难以识别。 ML 或 REML 平滑参数选择可以在模拟中带来最佳结果,因为它们往往可以避免偶尔出现的严重欠平滑。复制 Scheipl 等人的完整模拟研究。 (2008) 这些测试为那里推荐的方法提供了几乎无法区分的功效,但在其第 3.1.8 节测试中的空值下,对于平滑交互的 p 值稍微太低了(Scheipl 等人的建议不直接使用,因为它仅适用于高斯情况,并且需要模型改装,但它在包 RLRsim 中可用)。

在单模型情况下,使用print.anova.gam作为打印方法。

默认情况下,参数模型项的 p 值也基于使用贝叶斯协方差矩阵作为系数的 Wald 检验。当存在 "re" 项时,这是适当的,并且在其他方面与使用频率协方差矩阵 (freq=TRUE ) 的结果相当相似,因为参数项本身通常不受惩罚。使用 paraPen 参数进行惩罚的参数项的默认 P 值不会很好。

在 multi-model 情况下, anova.gam 生成与 anova.glm 相同的输出,它实际上使用了 anova.glm

在单模型情况下,会生成 anova.gam 类的对象,它实际上是从 summary.gam 返回的对象。

print.anova.gam 只是生成表格输出。

警告

如果模型 'a' 和 'b' 仅在没有 un-penalized 成分(例如随机效应)方面有所不同,则 anova(a,b) 的 p 值不可靠,并且通常太低。

对于使用“paraPen”惩罚的参数项,默认 P 值通常是错误的:当惩罚为满秩并代表传统随机效应时,使用 freq=TRUE 可以获得更好的 p 值。

对于单个模型,解释类似于 drop1,而不是 anova.lm。

例子

library(mgcv)
set.seed(0)
dat <- gamSim(5,n=200,scale=2)

b<-gam(y ~ x0 + s(x1) + s(x2) + s(x3),data=dat)
anova(b)
b1<-gam(y ~ x0 + s(x1) + s(x2),data=dat)
anova(b,b1,test="F")

作者

Simon N. Wood simon.wood@r-project.org with substantial improvements by Henric Nilsson.

参考

Scheipl, F., Greven, S. and Kuchenhoff, H. (2008) Size and power of tests for a zero random effect variance or polynomial regression in additive and linear mixed models. Comp. Statist. Data Anal. 52, 3283-3299

Wood, S.N. (2013a) On p-values for smooth components of an extended generalized additive model. Biometrika 100:221-228 doi:10.1093/biomet/ass048

Wood, S.N. (2013b) A simple test for random effects in regression models. Biometrika 100:1005-1010 doi:10.1093/biomet/ast038

也可以看看

gam , predict.gam , gam.check , summary.gam

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Approximate hypothesis tests related to GAM fits。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。