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 |
平滑的規範對象,通常由術語 |
data |
僅包含該術語所需的數據(包括任何 |
knots |
包含為基礎設置提供的任何結的列表 - 與 |
細節
此類的默認基本維度是 k=M+k.def
,其中 M
是零空間維度(未懲罰函數空間的維度),k.def
對於維度 1 為 10,對於維度 2 為 30,對於更高維度為 100。這本質上是任意的,應該進行檢查,但與所有懲罰回歸平滑器一樣,結果在統計上對確切的選擇不敏感,隻要它不是小到強製過度平滑(平滑器的自由度主要由其平滑參數控製) )。
構造函數通常不直接調用,而是由 gam
在內部使用。要用於基礎設置,建議使用 smooth.construct2
。
對於這些類,規範 object
將包含有關如何在其 xt
字段中處理大型數據集的信息。默認情況下,如果唯一預測變量組合的數量超過 2000,則對 2000 ‘knots’ 進行隨機子采樣,從中生成完整基礎的降級特征值近似。默認值可以通過 xt
參數修改為 s
。它作為一個列表提供,其中包含元素 max.knots
和 seed
,其中包含用於代替 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
也可以看看
相關用法
- R smooth.construct.cr.smooth.spec GAM 中的懲罰三次回歸樣條
- R smooth.construct.bs.smooth.spec GAM 中的懲罰 B 樣條
- R smooth.construct.sz.smooth.spec GAM 中的約束因子平滑交互
- R smooth.construct.re.smooth.spec GAM 中的簡單隨機效應
- R smooth.construct.mrf.smooth.spec 馬爾可夫隨機場平滑
- R smooth.construct.gp.smooth.spec 低階高斯過程平滑
- R smooth.construct.tp.smooth.spec GAM 中的懲罰薄板回歸樣條
- R smooth.construct.ad.smooth.spec GAM 中的自適應平滑
- R smooth.construct.so.smooth.spec 皂膜平滑劑
- R smooth.construct.fs.smooth.spec GAM 中平滑交互的因子
- R smooth.construct.ps.smooth.spec GAM 中的 P 樣條
- R smooth.construct.sos.smooth.spec 球體上的樣條線
- R smooth.construct.tensor.smooth.spec 張量積平滑構造函數
- R smooth.construct.t2.smooth.spec 張量積平滑構造函數
- R smooth.construct GAM 中平滑項的構造函數
- R smooth.info 提供有關平滑規範的額外信息的通用函數
- R smooth.terms GAM 中的平滑術語
- R smooth2random 將平滑轉換為適合估計隨機效應的形式
- R smoothCon GAM 平滑項的預測/構造包裝函數
- R scat 用於重尾數據的 GAM 縮放 t 係列
- R slanczos 計算對稱矩陣的截斷特征分解
- R single.index 具有 mgcv 的單指數模型
- R sp.vcov 從 (RE)ML GAM 擬合中提取平滑參數估計器協方差矩陣
- R shash Sinh-arcsinh 位置比例和形狀模型族
- R s 在 GAM 公式中定義平滑
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Low rank Duchon 1977 splines。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。