NCV
位于 mgcv
包(package)。 说明
当拟合中省略数据子集时,NCV 通过优化模型预测数据子集的平均能力来估计平滑参数。通常预测子集是遗漏子集的子集。如果两个子集是相同的单个数据点,并且平均值是所有数据点的平均值,则 NCV 是留一交叉验证。 QNCV 是 NCV 的二次近似,保证对任何族链接组合都是有限的。
详细地说,假设通过最小化惩罚损失来估计模型
其中 是一种损失(例如负对数似然),取决于响应 和参数向量 ,而参数向量又取决于带有系数 的一个或多个平滑线性预测变量的协变量。二次惩罚项惩罚模型复杂性: 是已知矩阵, 是未知平滑参数。给定平滑参数,惩罚损失很容易最小化以估计 。
还必须估计平滑参数。为此,选择 子集 和 。通常 是 的子集(或等于)。令 表示当拟合中省略 索引的点时 的估计值。那么NCV标准
最小化 w.r.t.平滑参数 。如果 和 则恢复普通的留一交叉验证。例如,该公式涵盖了 Arlot 和 Celisse (2010) 中评论的交叉验证的许多变体。
除了二次损失之外,mgcv
的作用。牛顿步骤需要在删除每个数据时将完整模型 Hessian 更新为等效模型。这可以以 成本实现,其中 是 的维度。因此,例如,普通交叉验证标准可以在给定平滑参数的情况下估计模型的 成本下计算。 无法精确计算,但可以通过从完整数据 估计中采取单个牛顿优化步骤来计算到 精度(固定基础大小),当每个 被删除。这就是
以这种方式计算的 NCV 分数使用 BFGS quasi-Newton 方法进行优化,适用于平滑参数趋于无穷大可能导致不确定的情况。
时空短程自相关
常规应用问题是,在存在 un-modelled 短程自相关的情况下,平滑参数往往会被低估,因为平滑试图拟合由局部自相关引起的数据中的局部偏移。当存在自相关时,交叉验证将倾向于“拟合噪声”,因为由于相关性,拟合与遗漏数据相关的数据中的噪声的模型也将趋向于紧密拟合遗漏数据中的噪声。也就是说,自相关与避免交叉验证试图实现的过度拟合相悖。
对于短程自相关,可以通过在省略 ‘local’ 邻域中的所有数据时预测每个数据来避免或至少减轻问题。构建邻域是为了最大限度地减少兴趣点与其邻域之外的点之间的 un-modelled 相关性。也就是说,我们设置 nei(k)
是点 的邻居的索引。这种方法早已为人所知(例如 Chu 和 Marron,1991 年;Robert 等人,2017 年),但之前对于常规用于平滑参数估计来说过于昂贵。 、 和 ,其中
指定邻域
邻域子集 gam
,并且 nei
参数执行此操作。它是一个包含以下参数的列表。 和 必须提供给
-
k
是每个邻域要删除的索引向量。 -
m
给出每个邻域的结束位置。因此nei$k[(nei$m[j-1]+1):nei$m[j]]
给出邻域j
丢弃的点:即 。 -
i
是要预测的点索引的向量。 -
mi
给出相应的端点mi
。因此nei$i[(nei$mi[j-1]+1):nei$mi[j]]
索引要预测邻域 j 的点:即 。 -
jackknife
是可选元素。如果提供且TRUE
,则方差估计基于原始 Jackkife 估计,如果提供FALSE
,则基于标准贝叶斯结果。如果没有提供(通常),则使用考虑邻域结构的估计器,这在很大程度上解释了邻域内存在的任何相关性。如果正在为使用另一种方法进行平滑参数选择的模型计算 NCV,则忽略jackknife
。
如果nei==NULL
(或k
或m
缺失),则使用留一交叉验证。如果提供nei
,但未选择 NCV 作为平滑参数估计方法,则仅计算(但未优化)。
数值问题
如果指定的模型中某些系数值 gevlss
。 具有非有限似然,则使用单个牛顿步计算的 NCV 准则也可能是非有限的。一个简单的修复方法是将 NCV 标准替换为围绕完整数据拟合的标准的二次近似。二次近似总是有限的。这个'QNCV'对于某些家庭来说是必不可少的,例如
虽然 NCV 的主序成本与 REML 或 GCV 相同,但实际成本更高,因为主要操作成本在 matrix-vector 中,而不是 matrix-matrix 操作中,因此 BLAS 加速很小。然而,多核计算对于 NCV 来说是值得的。请参阅gam.control
中的选项ncv.threads
。
例子
require(mgcv)
nei.cor <- function(h,n) { ## construct nei structure
nei <- list(mi=1:n,i=1:n)
nei$m <- cumsum(c((h+1):(2*h+1),rep(2*h+1,n-2*h-2),(2*h+1):(h+1)))
k0 <- rep(0,0); if (h>0) for (i in 1:h) k0 <- c(k0,1:(h+i))
k1 <- n-k0[length(k0):1]+1
nei$k <- c(k0,1:(2*h+1)+rep(0:(n-2*h-1),each=2*h+1),k1)
nei
}
set.seed(1)
n <- 500;sig <- .6
x <- 0:(n-1)/(n-1)
f <- sin(4*pi*x)*exp(-x*2)*5/2
e <- rnorm(n,0,sig)
for (i in 2:n) e[i] <- 0.6*e[i-1] + e[i]
y <- f + e ## autocorrelated data
nei <- nei.cor(4,n) ## construct neighbourhoods to mitigate
b0 <- gam(y~s(x,k=40)) ## GCV based fit
gc <- gam.control(ncv.threads=2)
b1 <- gam(y~s(x,k=40),method="NCV",nei=nei,control=gc)
## use "QNCV", which is identical here...
b2 <- gam(y~s(x,k=40),method="QNCV",nei=nei,control=gc)
## plot GCV and NCV based fits...
f <- f - mean(f)
par(mfrow=c(1,2))
plot(b0,rug=FALSE,scheme=1);lines(x,f,col=2)
plot(b1,rug=FALSE,scheme=1);lines(x,f,col=2)
作者
Simon N. Wood simon.wood@r-project.org
参考
Chu and Marron (1991) Comparison of two bandwidth selectors with dependent errors. The Annals of Statistics. 19, 1906-1918
Arlot, S. and A. Celisse (2010). A survey of cross-validation procedures for model selection. Statistics Surveys 4, 40-79
Roberts et al. (2017) Cross-validation strategies for data with temporal, spatial, hierarchical, or phylogenetic structure. Ecography 40(8), 913-929.
Wood S.N. (2023) On Neighbourhood Cross Validation. in prep.
相关用法
- R vcov.gam 从 GAM 拟合中提取参数(估计器)协方差矩阵
- R gam.check 拟合 gam 模型的一些诊断
- R null.space.dimension TPRS 未惩罚函数空间的基础
- R gam.reparam 寻找平方根惩罚的稳定正交重新参数化。
- R extract.lme.cov 从 lme 对象中提取数据协方差矩阵
- R scat 用于重尾数据的 GAM 缩放 t 系列
- R choldrop 删除并排名第一 Cholesky 因子更新
- R smooth.construct.cr.smooth.spec GAM 中的惩罚三次回归样条
- R bandchol 带对角矩阵的 Choleski 分解
- R gam.side GAM 的可识别性边条件
- R cox.ph 附加 Cox 比例风险模型
- R mgcv.parallel mgcv 中的并行计算。
- R gamm 广义加性混合模型
- R pdTens 实现张量积平滑的 pdMat 类的函数
- R Predict.matrix GAM 中平滑项的预测方法
- R Predict.matrix.soap.film 皂膜光滑度预测矩阵
- R smooth.construct.bs.smooth.spec GAM 中的惩罚 B 样条
- R gamlss.gH 计算回归系数的对数似然导数
- R plot.gam 默认 GAM 绘图
- R mvn 多元正态加性模型
- R gfam 分组家庭
- R smooth.construct GAM 中平滑项的构造函数
- R pcls 惩罚约束最小二乘拟合
- R gam.fit3 使用 GCV、UBRE/AIC 或 RE/ML 导数计算进行 P-IRLS GAM 估计
- R rTweedie 生成 Tweedie 随机偏差
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Neighbourhood Cross Validation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。