smoothCon
位於 mgcv
包(package)。 說明
用於構建 GAM 中的平滑項並進行預測的包裝函數。包裝器的目的是允許平滑項的user-transparant重新參數化,以便在需要時允許將可識別性約束吸收到每個項的參數化中。該例程還自動處理‘by’變量和可識別性約束的構造,盡管這種行為可以是over-ridden。
用法
smoothCon(object,data,knots=NULL,absorb.cons=FALSE,
scale.penalty=TRUE,n=nrow(data),dataX=NULL,
null.space.penalty=FALSE,sparse.cons=0,
diagonal.penalty=FALSE,apply.by=TRUE,modCon=0)
PredictMat(object,data,n=nrow(data))
參數
object |
是平滑規範對象或平滑對象。 |
data |
包含要評估平滑項的(命名)協變量值的 DataFrame 、模型框或列表。如果它是一個列表,則必須提供 |
knots |
可選 DataFrame ,提供用於基礎施工的任何結位置。 |
absorb.cons |
設置為 |
scale.penalty |
懲罰係數矩陣是否應該縮放為與項模型矩陣與其自身的內積大致相同的‘size’?這可以提高 |
n |
每個協變量的值的數量,或者如果協變量是矩陣,則該矩陣中的行數:如果 |
dataX |
有時應使用 |
null.space.penalty |
如果在平滑中添加額外的懲罰,這將懲罰懲罰零空間中平滑的分量:提供了一種完全懲罰模型外項的方法。 |
apply.by |
設置為 |
sparse.cons |
如果 |
diagonal.penalty |
如果 |
modCon |
強製修改任何平滑提供的約束。 0 - 不執行任何操作。 1 - 刪除提供的約束,替換為自動生成的約束。 2 - 設置擬合和預測約束來預測約束。 3 - 設置擬合並預測約束以擬合約束。 |
細節
這些包裝函數的存在是為了允許使用 smooth.construct
和 Predict.matrix
方法函數指定的平滑重新參數化,以便在擬合時不再需要可識別性約束。這是以用戶透明的方式完成的,但在 GAM 的使用中通常並不重要。該例程還處理by
變量,並將創建默認的可識別性約束。
如果用戶定義的平滑構造函數本身處理 by
變量,則其返回的平滑對象應包含對象 by.done
。如果不存在,則 smoothCon
將使用默認代碼。同樣,如果用戶定義的 Predict.matrix
方法在內部處理 by
變量,則返回的矩陣應具有 "by.done"
屬性。
除非平滑構造函數包含約束矩陣 C
,否則會生成默認的居中約束,即協變量上的各項之和為零。為了沒有約束(在這種情況下,你最好有一個完整的排名懲罰!)矩陣C
應該沒有行。如果平滑器具有稀疏模型矩陣,則可以選擇使用不生成或生成有限填充的居中約束。
smoothCon
返回平滑列表,因為因子 by
變量會產生平滑的多個副本,每個副本都乘以與一個因子級別關聯的虛擬變量。 smoothCon
在 by
變量存在的情況下修改平滑對象標簽,以確保它們是唯一的,它還存儲與平滑關聯的變量因子的級別,以供 PredictMat
稍後使用。
gam
使用的參數化可以通過 gam.control
進行控製。
值
從 smoothCon
中,由適當的 smooth.construct
方法函數返回的 smooth
對象列表。如果要吸收約束,則對象將具有屬性 "qrc"
和 "nCons"
。 "nCons"
是約束的數量。 "qrc"
通常是約束矩陣的 qr 分解(由 qr
返回),但如果它是單個正整數,則它是要設置為零的係數的索引,如果它是負數,則這表示參數之和為零。
對於 predictMat
,該矩陣將與平滑相關的參數映射到在 object
中給出的協變量值處評估的平滑值向量。
例子
## example of using smoothCon and PredictMat to set up a basis
## to use for regression and make predictions using the result
library(MASS) ## load for mcycle data.
## set up a smoother...
sm <- smoothCon(s(times,k=10),data=mcycle,knots=NULL)[[1]]
## use it to fit a regression spline model...
beta <- coef(lm(mcycle$accel~sm$X-1))
with(mcycle,plot(times,accel)) ## plot data
times <- seq(0,60,length=200) ## creat prediction times
## Get matrix mapping beta to spline prediction at 'times'
Xp <- PredictMat(sm,data.frame(times=times))
lines(times,Xp%*%beta) ## add smooth to plot
## Same again but using a penalized regression spline of
## rank 30....
sm <- smoothCon(s(times,k=30),data=mcycle,knots=NULL)[[1]]
E <- t(mroot(sm$S[[1]])) ## square root penalty
X <- rbind(sm$X,0.1*E) ## augmented model matrix
y <- c(mcycle$accel,rep(0,nrow(E))) ## augmented data
beta <- coef(lm(y~X-1)) ## fit penalized regression spline
Xp <- PredictMat(sm,data.frame(times=times)) ## prediction matrix
with(mcycle,plot(times,accel)) ## plot data
lines(times,Xp%*%beta) ## overlay smooth
作者
Simon N. Wood simon.wood@r-project.org
參考
https://www.maths.ed.ac.uk/~swood34/
也可以看看
相關用法
- R smooth.construct.cr.smooth.spec GAM 中的懲罰三次回歸樣條
- R smooth.construct.bs.smooth.spec GAM 中的懲罰 B 樣條
- R smooth.construct GAM 中平滑項的構造函數
- R smooth.construct.sz.smooth.spec GAM 中的約束因子平滑交互
- R smooth.construct.re.smooth.spec GAM 中的簡單隨機效應
- R smooth.info 提供有關平滑規範的額外信息的通用函數
- R smooth2random 將平滑轉換為適合估計隨機效應的形式
- 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.ds.smooth.spec 低階 Duchon 1977 樣條
- 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.terms 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大神的英文原創作品 Prediction/Construction wrapper functions for GAM smooth terms。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。