smooth.construct.fs.smooth.spec
位於 mgcv
包(package)。 說明
簡單因子平滑交互,與 gamm
一起使用時非常有效。此平滑類允許對因子的每個級別進行單獨的平滑,並且所有平滑具有相同的平滑參數。它是使用因子 by
變量的替代方法。
有關因子平滑交互的更通用替代方案,請參閱factor.smooth
(包括張量積平滑與因子的交互)。
用法
## S3 method for class 'fs.smooth.spec'
smooth.construct(object, data, knots)
## S3 method for class 'fs.interaction'
Predict.matrix(object, data)
參數
object |
對於 |
data |
僅包含該術語所需的數據(包括任何 |
knots |
包含為順利基礎設置提供的任何結的列表。 |
細節
此類為單因子變量的每個級別生成平滑。在 gam
公式中,這是通過類似 s(x,fac,bs="fs")
來完成的,它幾乎相當於 s(x,by=fac,id=1)
(使用 gam
參數 select=TRUE
)。這些項受到完全懲罰,每個零空間分量都有單獨的懲罰:因此它們不居中(無sum-to-zero約束)。
該類對於與 gamm
一起使用特別有用,其中估計有效地利用了因子內平滑的嵌套。但請注意: i) gamm
隻允許一個平滑條件因子,因此 s(x)+s(z,fac,bs="fs")+s(v,fac,bs="fs")
可以,但 s(x)+s(z,fac1,bs="fs")+s(v,fac2,bs="fs")
則不行; ii) 所有附加隨機效應和相關結構將被視為嵌套在平滑因子交互作用的因子內。為了促進這一點,從 gamm
調用構造函數,並將屬性 "gamm"
附加到平滑規範對象。結果與不這樣做的情況不同。
請注意,gamm4
包中的 gamm4
不受適用於 gamm
的任何限製,並且 "fs"
術語可以在沒有 side-effects 的情況下使用。仍然使用具有 "gamm"
屬性的平滑規範對象來調用構造函數。
任何單一懲罰基礎都可以用於在每個因子水平上進行平滑。默認值為 "tp"
,但可以在 s
的 xt
參數中提供替代方案(例如 s(x,fac,bs="fs",xt="cr")
或 s(x,fac,bs="fs",xt=list(bs="cr")
)。 s(...,bs="fs")
的 k
參數是指用於因子變量每個級別的基本維度。
請注意一個計算瓶頸:當前 gamm
(或 gamm4
)將為平滑結果生成完整的後驗協方差矩陣,包括因子每個級別的平滑結果。如果因子的級別超過數百個,則該矩陣可能會變得很大且計算成本高昂。即使是一兩百級,也應該注意保留k
。
此類的繪圖方法有兩種方案。 scheme==0
是彩色的,而 scheme==1
是黑白的。
值
類 "fs.interaction"
的對象或將因子平滑交互的係數映射到平滑本身的矩陣。 "fs.interaction"
對象的內容取決於是否使用具有屬性 gamm
的對象調用 smooth.construct
:請參見下文。
例子
library(mgcv)
set.seed(0)
## simulate data...
f0 <- function(x) 2 * sin(pi * x)
f1 <- function(x,a=2,b=-1) exp(a * x)+b
f2 <- function(x) 0.2 * x^11 * (10 * (1 - x))^6 + 10 *
(10 * x)^3 * (1 - x)^10
n <- 500;nf <- 25
fac <- sample(1:nf,n,replace=TRUE)
x0 <- runif(n);x1 <- runif(n);x2 <- runif(n)
a <- rnorm(nf)*.2 + 2;b <- rnorm(nf)*.5
f <- f0(x0) + f1(x1,a[fac],b[fac]) + f2(x2)
fac <- factor(fac)
y <- f + rnorm(n)*2
## so response depends on global smooths of x0 and
## x2, and a smooth of x1 for each level of fac.
## fit model...
bm <- gamm(y~s(x0)+ s(x1,fac,bs="fs",k=5)+s(x2,k=20))
plot(bm$gam,pages=1)
summary(bm$gam)
## Also efficient using bam(..., discrete=TRUE)
bd <- bam(y~s(x0)+ s(x1,fac,bs="fs",k=5)+s(x2,k=20),discrete=TRUE)
plot(bd,pages=1)
summary(bd)
## Could also use...
## b <- gam(y~s(x0)+ s(x1,fac,bs="fs",k=5)+s(x2,k=20),method="ML")
## ... but its slower (increasingly so with increasing nf)
## b <- gam(y~s(x0)+ t2(x1,fac,bs=c("tp","re"),k=5,full=TRUE)+
## s(x2,k=20),method="ML"))
## ... is exactly equivalent.
作者
Simon N. Wood simon.wood@r-project.org with input from Matteo Fasiolo.
也可以看看
相關用法
- 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.ds.smooth.spec 低階 Duchon 1977 樣條
- 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大神的英文原創作品 Factor smooth interactions in GAMs。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。