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


R summary.gam GAM 拟合摘要


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

说明

获取由 gam() 生成的拟合 gam 对象,并从中生成各种有用的摘要。 (请参阅 sink 将输出转移到文件。)

用法

## S3 method for class 'gam'
summary(object, dispersion=NULL, freq=FALSE, re.test=TRUE, ...)

## S3 method for class 'summary.gam'
print(x,digits = max(3, getOption("digits") - 3), 
                  signif.stars = getOption("show.signif.stars"),...)

参数

object

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

x

summary.gam() 生成的 summary.gam 对象。

dispersion

已知的色散参数。 NULL 使用估计值或默认值(例如 1 表示泊松)。

freq

默认情况下,参数项的 p 值是使用参数估计量的贝叶斯估计协方差矩阵计算的。如果将其设置为TRUE,则使用参数的频率协方差矩阵。

re.test

是否应该对随机效应项(包括任何具有零维零空间的项)进行检验?对于大型模型,这些测试的计算成本可能很高。

digits

控制输出中打印的位数。

signif.stars

重要性星星是否应该与输出一起打印。

...

其他论点。

细节

模型自由度被视为模型拟合的影响(或帽子)矩阵 的迹。剩余自由度被视为数据数量减去模型自由度。令 为当应用于数据(或广义情况下的伪数据)时给出第 i 个平滑参数的矩阵,并令 为模型的设计矩阵。那么 就是第 i 项的 edf。显然这个定义导致 edf 正确相加! EDF 的替代版本更适合 p 值计算,并且基于 的跟踪。

print.summary.gam 尝试以漂亮的方式打印对术语选择有用的各种摘要信息。

平滑项的 P 值通常基于检验统计量,该检验统计量是 Nychka (1988) 对平滑项的贝叶斯置信区间的频率属性分析的扩展(Marra 和 Wood,2012 年)。与替代的严格频率近似相比,它们具有更好的频率性能(就零下的幂和分布而言)。当贝叶斯区间在函数属性上具有良好的特性时,p 值接近正确的零分布和合理的功效(但没有功效的最优结果)。完整的细节参见 Wood (2013b),尽管计算的结果实际上是一个微小的变体,其中检验统计量的组成部分由迭代拟合权重进行加权。

请注意,对于没有不受惩罚项的项(例如高斯随机效应),Nychka (1988) 要求平滑偏差远小于方差的要求不成立(参见例如 Marra 和 Wood, 2012 的附录),这会导致不正确的 null使用上述方法计算的 p 值的分布。在这种情况下,有必要使用针对随机效应方差分量设计的替代方法,并且已经这样做了。详细信息请参见 Wood (2013a):检验基于似然比统计量(参考分布适合参数空间边界上的原假设)。

所有 p 值的计算均未考虑平滑参数估计的不确定性。

在模拟中,p 值在 ML 平滑度选择下具有最佳行为,REML 位居第二。一般来说,p 值表现良好,但忽略平滑参数不确定性意味着当平滑参数高度不确定时,p 值可能有点太低。特别是当平滑参数难以识别时,会出现高度不确定性,这种情况可能发生在嵌套平滑或高度相关的协变量(高并发)中。

默认情况下,参数模型项的 p 值也基于使用贝叶斯协方差矩阵作为系数的 Wald 检验。当存在 "re" 项时,这是适当的,并且在其他方面与使用频率协方差矩阵 (freq=TRUE ) 的结果相当相似,因为参数项本身通常不受惩罚。使用 paraPen 参数进行惩罚的参数项的默认 P 值不会很好。然而,如果这些项代表具有满等级惩罚的传统随机效应,则设置freq=TRUE是合适的。

summary.gam 生成适合的 gam 对象的摘要信息列表。

p.coeff

是严格参数模型系数的估计值数组。

p.t

p.coeff 除以其标准误差的数组。

p.pv

是对应参数为零的原假设的 p 值数组。如果离散参数已经估计,则参考 t 分布计算模型拟合的估计剩余自由度,如果没有估计,则参考标准正态分布。

m

模型中平滑项的数量。

chi.sq

用于评估模型平滑项的显著性的一系列检验统计量。查看具体信息。

s.pv

每个平滑项为零的原假设的近似 p 值数组。请注意,这些只是近似值。

se

所有参数估计的标准误差估计数组。

r.sq

调整后的模型r-squared。定义为解释的方差比例,其中原始方差和残差方差均使用无偏估计量进行估计。如果您的模型比单参数常量模型差,则该数量可能为负值,而对于两个嵌套模型中较小的一个,该数量可能更高!所解释的比例零偏差可能更适合非正态误差。请注意,r.sq 在单参数模型中不包含任何偏移量。

dev.expl

模型解释的零偏差的比例。计算零偏差时会考虑任何偏移,因此当存在偏移时,dev.expl 可能远低于 r.sq

edf

模型项的估计自由度数组。

residual.df

估计的剩余自由度。

n

数据数量。

np

模型系数的数量(回归系数,不是平滑参数或其他似然参数)。

rank

明显的模型排名。

method

使用的平滑选择标准。

sp.criterion

平滑度选择标准的最小值。请注意,对于 ML 和 REML 方法,报告的是负对数边际似然或负对数受限似然。

scale

估计的(或给定的)尺度参数。

family

家人用过。

formula

原始GAM公式。

dispersion

尺度参数。

pTerms.df

与每个参数项相关的自由度(不包括常数)。

pTerms.chi.sq

用于检验每个参数项为零的原假设的 Wald 统计量。

pTerms.pv

与每项为零的测试相关的 p 值。对于惩罚配合,这些是近似值。当尺度参数已知时,参考分布是适当的卡方;当尺度参数未知时,参考分布基于 F。

cov.unscaled

参数(或估计量,如果 freq=TRUE )的估计协方差矩阵除以尺度参数。

cov.scaled

参数的估计协方差矩阵(估计器如果 freq=TRUE )。

p.table

参数显著性表

s.table

平滑的显著性表

p.Terms

参数模型项的显著性表

警告

p 值是近似值,忽略平滑参数的不确定性。当平滑参数估计高度不确定时,它们可能有点太低:请阅读详细信息部分。如果确切的值很重要,请阅读 Wood(2013a 或 b)。

通过“paraPen”惩罚的术语的 P 值不太可能是正确的。

例子

library(mgcv)
set.seed(0)

dat <- gamSim(1,n=200,scale=2) ## simulate data

b <- gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat)
plot(b,pages=1)
summary(b)

## now check the p-values by using a pure regression spline.....
b.d <- round(summary(b)$edf)+1 ## get edf per smooth
b.d <- pmax(b.d,3) # can't have basis dimension less than 3!
bc<-gam(y~s(x0,k=b.d[1],fx=TRUE)+s(x1,k=b.d[2],fx=TRUE)+
        s(x2,k=b.d[3],fx=TRUE)+s(x3,k=b.d[4],fx=TRUE),data=dat)
plot(bc,pages=1)
summary(bc)

## Example where some p-values are less reliable...
dat <- gamSim(6,n=200,scale=2)
b <- gam(y~s(x0,m=1)+s(x1)+s(x2)+s(x3)+s(fac,bs="re"),data=dat)
## Here s(x0,m=1) can be penalized to zero, so p-value approximation
## cruder than usual...
summary(b) 

## p-value check - increase k to make this useful!
k<-20;n <- 200;p <- rep(NA,k)
for (i in 1:k)
{ b<-gam(y~te(x,z),data=data.frame(y=rnorm(n),x=runif(n),z=runif(n)),
         method="ML")
  p[i]<-summary(b)$s.p[1]
}
plot(((1:k)-0.5)/k,sort(p))
abline(0,1,col=2)
ks.test(p,"punif") ## how close to uniform are the p-values?

## A Gamma example, by modify `gamSim' output...
 
dat <- gamSim(1,n=400,dist="normal",scale=1)
dat$f <- dat$f/4 ## true linear predictor 
Ey <- exp(dat$f);scale <- .5 ## mean and GLM scale parameter
## Note that `shape' and `scale' in `rgamma' are almost
## opposite terminology to that used with GLM/GAM...
dat$y <- rgamma(Ey*0,shape=1/scale,scale=Ey*scale)
bg <- gam(y~ s(x0)+ s(x1)+s(x2)+s(x3),family=Gamma(link=log),
          data=dat,method="REML")
summary(bg)

作者

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

参考

Marra, G and S.N. Wood (2012) Coverage Properties of Confidence Intervals for Generalized Additive Model Components. Scandinavian Journal of Statistics, 39(1), 53-74. doi:10.1111/j.1467-9469.2011.00760.x

Nychka (1988) Bayesian Confidence Intervals for Smoothing Splines. Journal of the American Statistical Association 83:1134-1143.

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

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

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

也可以看看

gam , predict.gam , gam.check , anova.gam , gam.vcomp , sp.vcov

相关用法


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