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


R smooth.construct.ds.smooth.spec 低階 Duchon 1977 樣條


R語言 smooth.construct.ds.smooth.spec 位於 mgcv 包(package)。

說明

薄板樣條平滑器是 Duchon (1977) 中討論的各向同性樣條的一個特例。這個更通用類的子集可以通過 gam 模型公式中的 s(x,z,bs="ds",m=c(1,.5) 等術語來調用。在 Duchon (1977) 的表示法中,m 由 m[1] 給出(默認值 2),而 s 由 m[2] 給出(默認值 0)。

Duchon (1977) 的構造將通常的薄板樣條懲罰概括如下。通常的 TPS 懲罰是由函數 w.r.t. 的混合偏 m 階導數向量的歐幾裏德範數平方的積分給出的。它的論點。 Duchon 在傅裏葉域中重新表達該懲罰,然後通過傅裏葉頻率的歐幾裏得範數對積分中的平方範數進行加權,並提高到 2s 次方。 s 是用戶選擇的常量,取整數值除以 2。如果 d 是平滑參數的數量,則要求 -d/2 < s < d/2。為了獲得連續函數,我們進一步要求 m + s > d/2。如果 s=0,則恢複通常的薄板樣條。

該構造完全符合 Wood (2003) 中針對薄板樣條給出的低階近似方法,具有類似的最優性屬性,因此這裏使用這種低階平滑方法。對於大型數據集,此處采用與tprs 情況中使用的相同的子采樣方法來降低計算成本。

這些平滑器允許在懲罰中使用比傳統薄板樣條更低階的導數,同時仍然產生連續函數。例如,我們可以設置 m = 1 和 s = d/2 - .5,以便對任何 d 使用一階導數懲罰(其優點是未懲罰函數的零空間維數僅為 d+1)。

用法

## S3 method for class 'ds.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'duchon.spline'
Predict.matrix(object, data)

參數

object

平滑的規範對象,通常由術語 s(...,bs="ds",...) 生成。

data

僅包含該術語所需的數據(包括任何 by 變量)的列表,其名稱對應於 object$term (和 object$by )。 by 變量是最後一個元素。

knots

包含為基礎設置提供的任何結的列表 - 與 data 具有相同的順序和相同的名稱。可以是NULL

細節

此類的默認基本維度是 k=M+k.def,其中 M 是零空間維度(未懲罰函數空間的維度),k.def 對於維度 1 為 10,對於維度 2 為 30,對於更高維度為 100。這本質上是任意的,應該進行檢查,但與所有懲罰回歸平滑器一樣,結果在統計上對確切的選擇不敏感,隻要它不是小到強製過度平滑(平滑器的自由度主要由其平滑參數控製) )。

構造函數通常不直接調用,而是由 gam 在內部使用。要用於基礎設置,建議使用 smooth.construct2

對於這些類,規範 object 將包含有關如何在其 xt 字段中處理大型數據集的信息。默認情況下,如果唯一預測變量組合的數量超過 2000,則對 2000 ‘knots’ 進行隨機子采樣,從中生成完整基礎的降級特征值近似。默認值可以通過 xt 參數修改為 s 。它作為一個列表提供,其中包含元素 max.knotsseed,其中包含用於代替 2000 的數字,以及要使用的隨機數種子(兩者都可以缺失)。請注意,隨機采樣不會影響 R 的 RNG 的狀態。

對於這些基礎 knots 有兩個用途。首先,如前所述,對於大型數據集,tp 基礎的計算可能非常耗時。用戶可以通過提供一組精簡的協變量值來保留該方法的大部分優點,從中獲取基礎 - 通常使用的協變量值的數量將大大小於數據的數量,並且遠大於基礎維度,k。如果唯一協變量值(組合)的數量超過 max.knots ,則自動采用此方法。第二種可能性是避免用於完全查找樣條基礎的特征分解,而僅使用所選結隱含的基礎:如果提供的結數量與基礎尺寸 k 匹配,就會發生這種情況。對於給定的基本尺寸,第二個選項速度更快,但結果較差(用戶在選擇結位置時必須非常小心)。

"duchon.spline" 的對象。除了 smooth.construct 下記錄的平滑類的常見元素之外,該對象還將包含:

shift

應用於每個協變量的移位記錄,以便將其以零為中心,並避免在該項的懲罰零空間基礎中可能發生的任何 co-linearity 問題。

Xu

此平滑的唯一協變量組合的矩陣(通過首先刪除重複位置來構建基礎)。

UZ

將平滑參數映射回完整 Duchon 樣條參數的矩陣。

null.space.dimension

根據此項的擺動懲罰,擺動為零的函數空間的維數。

例子

require(mgcv)
eg <- gamSim(2,n=200,scale=.05)
attach(eg)
op <- par(mfrow=c(2,2),mar=c(4,4,1,1))
b0 <- gam(y~s(x,z,bs="ds",m=c(2,0),k=50),data=data)  ## tps
b <- gam(y~s(x,z,bs="ds",m=c(1,.5),k=50),data=data)  ## first deriv penalty
b1 <- gam(y~s(x,z,bs="ds",m=c(2,.5),k=50),data=data) ## modified 2nd deriv

persp(truth$x,truth$z,truth$f,theta=30) ## truth
vis.gam(b0,theta=30)
vis.gam(b,theta=30)
vis.gam(b1,theta=30)

detach(eg)

作者

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

參考

Duchon, J. (1977) Splines minimizing rotation-invariant semi-norms in Solobev spaces. in W. Shemp and K. Zeller (eds) Construction theory of functions of several variables, 85-100, Springer, Berlin.

Wood, S.N. (2003) Thin plate regression splines. J.R.Statist.Soc.B 65(1):95-114

也可以看看

Spherical.Spline

相關用法


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