當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R one.se.rule 更平滑模型的一個標準誤差規則


R語言 one.se.rule 位於 mgcv 包(package)。

說明

“一個標準誤差規則”(參見 Hastie、Tibshirani 和 Friedman,2009 年)是一種生成比通過自動平滑參數選擇方法直接估計的模型更平滑的模型的方法。在單一平滑參數的情況下,我們選擇平滑參數選擇標準最優值的一個標準誤差內的最大平滑參數。這種方法可以推廣到由 REML 或 ML 估計的多個平滑參數。

細節

在 REML 或 ML 平滑參數選擇下,漸近分布近似可用於對數平滑參數。讓 表示我們想要增加以獲得更平滑模型的對數平滑參數。 估計器的大樣本分布是 ,其中 sp.vcov 返回的矩陣。刪除 中已經處於“有效無窮大”的任何元素,以及 的相應行和列。對數平滑參數的標準誤差可以從 的前導對角線獲得。令它們的向量為 。現在假設我們想要將估計的對數平滑參數增加 。我們選擇 以便 ,其中 p 是 d 的維度,2p 是卡方 r.v 的方差。具有 p 個自由度。

我們的想法是,我們按其標準差的比例增加對數平滑參數,直到 RE/ML 根據其漸近分布增加 1 個標準差。

例子

 
require(mgcv)
set.seed(2) ## simulate some data...
dat <- gamSim(1,n=400,dist="normal",scale=2)
b <- gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat,method="REML")
b
## only the first 3 smoothing parameters are candidates for
## increasing here...
V <- sp.vcov(b)[1:3,1:3] ## the approx cov matrix of sps
d <- diag(V)^.5          ## sp se.
## compute the log smoothing parameter step...
d <- sqrt(2*length(d))/d
sp <- b$sp ## extract original sp estimates
sp[1:3] <- sp[1:3]*exp(d) ## apply the step
## refit with the increased smoothing parameters...
b1 <- gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat,method="REML",sp=sp)
b;b1 ## compare fits

作者

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

參考

Hastie, T, R. Tibshirani and J. Friedman (2009) The Elements of Statistical Learning 2nd ed. Springer.

也可以看看

gam

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 The one standard error rule for smoother models。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。