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


R pspline 使用 pspline 基礎平滑樣條線


R語言 pspline 位於 survival 包(package)。

說明

指定預測變量的懲罰樣條基礎。這是通過擬合相對較小的一組樣條曲線並懲罰積分二階導數來完成的。傳統的平滑樣條每次觀察使用一個基,但幾位作者指出,對於大於約 2-3 倍自由度的任意數量的基函數,擬合的最終結果是無法區分的。 Eilers 和 Marx 指出,如果基函數均勻分布,這會導致計算顯著簡化,他們將結果稱為p-spline。

用法

pspline(x, df=4, theta, nterm=2.5 * df, degree=3, eps=0.1, method,
   Boundary.knots=range(x), intercept=FALSE, penalty=TRUE, combine, ...)

psplineinverse(x)

參數

x

對於 psline:協變量向量。該函數不適用於因子變量。對於 psplineinverse x 將是 pspline 調用的結果。

df

所需的自由度。必須給出參數 dftheta ' 之一,但不能同時給出兩者。如果 df=0 ,則 AIC = (loglik -df) 用於選擇 "optimal" 自由度。如果選擇 AIC,則可以使用可選參數“caic=T”來指定 Hurvich 等人的修正後的 AIC。等人。

theta

配合的粗糙度懲罰。它是自由度的單調函數,其中 theta=1 對應於線性擬合,theta=0 對應於 nterm 自由度的無約束擬合。

nterm

基礎中樣條的數量

degree

樣條階數

eps

df 的準確性

method

選擇調整參數的方法theta。如果給出了 theta,則假定'fixed'。如果給出自由度,則假定'df'。如果 method='aic' 則使用 Akaike 信息準則自動選擇自由度。

...

控製函數的可選參數

Boundary.knots

樣條線在邊界結之外是線性的。這些默認為數據範圍。

intercept

如果為 TRUE,則基函數包括截距。

penalty

如果為 FALSE,則排除大量與懲罰擬合有關的屬性。這對於創建用於其他用途的 pspline 基礎矩陣很有用。

combine

可選的遞增整數向量。如果combine 的兩個相鄰值相等,則擬合的相應係數被迫相等。這對於單調配合很有用,請參閱插圖了解更多詳細信息。

包含樣條基礎的 pspline, coxph.penalty 類對象,具有被 coxph 或 survreg 函數識別為懲罰項的適當屬性。

對於 psplineinverse,原始 x 向量被重建。

例子

lfit6 <- survreg(Surv(time, status)~pspline(age, df=2), lung)
plot(lung$age, predict(lfit6), xlab='Age', ylab="Spline prediction")
title("Cancer Data")
fit0 <- coxph(Surv(time, status) ~ ph.ecog + age, lung)
fit1 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,3), lung)
fit3 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,8), lung)
fit0
fit1
fit3

參考

Eilers, Paul H. and Marx, Brian D. (1996). Flexible smoothing with B-splines and penalties. Statistical Science, 11, 89-121.

Hurvich, C.M. and Simonoff, J.S. and Tsai, Chih-Ling (1998). Smoothing parameter selection in nonparametric regression using an improved Akaike information criterion, JRSSB, volume 60, 271-293.

也可以看看

coxphsurvregridgefrailty

相關用法


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