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


R smooth.construct.cr.smooth.spec GAM 中的懲罰三次回歸樣條


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

說明

gam 可以使用單變量懲罰三次回歸樣條平滑,通過 s(x,bs="cr") 等術語指定。 s(x,bs="cs") 指定懲罰三次回歸樣條,其懲罰已修改為在足夠高的平滑參數下收縮到零(當平滑參數達到無窮大時,普通三次樣條趨於直線。)s(x,bs="cc") 指定循環懲罰樣條三次回歸樣條曲線平滑。

使用“Cardinal”樣條底座:Wood (2017) 第 5.3.1 和 5.3.2 節提供了完整的詳細信息。這些基地的設置成本非常低。對於給定的基本尺寸 k ,它們的性能通常比薄板回歸樣條稍差,但比 p-splines 好一點。請參閱te 在多個變量的張量積平滑中使用這些基數。

默認 k 為 10。

用法

## S3 method for class 'cr.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'cs.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'cc.smooth.spec'
smooth.construct(object, data, knots)

參數

object

平滑規範對象,通常由術語 s(...,bs="cr",...)s(...,bs="cs",...)s(...,bs="cc",...) 生成

data

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

knots

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

細節

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

如果未提供,則樣條線的結將均勻地放置在該術語所指的整個協變量值中:例如,如果使用 x 的 11 結樣條線擬合 101 個數據,則每 10 個處就會有一個結 (已排序)x 值。使用的參數化根據其在節點處的值來表示樣條線。相鄰結處的值由三次多項式的部分連接,三次多項式的部分被約束為連續直至並包括結處的二階導數。生成的曲線是通過節點處的值的自然三次樣條(給定兩個額外條件,指定曲線的二階導數在兩端節點處應為零)。

平滑的收縮版本,eigen-decomposes 擺動懲罰矩陣,並將其 2 個零特征值設置為最小嚴格正特征值的小倍數。然後將懲罰設置為矩陣,其特征向量與原始懲罰的特征向量相對應,但特征值設置為擾動版本。該懲罰矩陣具有滿秩,並且在足夠高的平滑參數下將曲線收縮到零。

請注意,除非提供結,否則循環平滑器將在最小和最大協變量值處包。如果僅提供兩個結,則將它們作為平滑器的端點(假設所有數據都位於它們之間),並自動生成剩餘的結。

循環平滑不受二階導數在第一個和最後一個節點處為零的條件的影響。

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

xp

給出用於生成基礎的結位置。

F

對於類 "cr.smooth""cs.smooth" 對象,t(F) 將節點處的函數值轉換為節點處的二階導數。

BD

"cyclic.smooth" 類對象包括矩陣 BD,它將節點處的函數值轉換為節點處的二階導數。

例子

## cyclic spline example...
  require(mgcv)
  set.seed(6)
  x <- sort(runif(200)*10)
  z <- runif(200)
  f <- sin(x*2*pi/10)+.5
  y <- rpois(exp(f),exp(f)) 

## finished simulating data, now fit model...
  b <- gam(y ~ s(x,bs="cc",k=12) + s(z),family=poisson,
                      knots=list(x=seq(0,10,length=12)))
## or more simply
   b <- gam(y ~ s(x,bs="cc",k=12) + s(z),family=poisson,
                      knots=list(x=c(0,10)))

## plot results...
  par(mfrow=c(2,2))
  plot(x,y);plot(b,select=1,shade=TRUE);lines(x,f-mean(f),col=2)
  plot(b,select=2,shade=TRUE);plot(fitted(b),residuals(b))
  

作者

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

參考

Wood S.N. (2017) Generalized Additive Models: An Introduction with R (2nd edition). Chapman and Hall/CRC Press.

相關用法


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