factor.smooth
位於 mgcv
包(package)。 說明
一個或多個因子與平滑效果的相互作用,會為每個因子水平產生單獨的平滑效果。這些平滑可以具有不同的平滑參數,或者全部具有相同的平滑參數。有幾種方法可以設置它們。
- 因子
by
變量。 -
如果平滑的
by
變量(使用s
、te
、ti
或t2
指定)是一個因子,則為每個因子級別生成單獨的平滑。如果因子是有序的,則不會為其第一個級別生成平滑:這對於設置具有參考級別平滑然後除第一個(參考)之外的每個因子級別的參考平滑差異的模型很有用。為平滑指定id
會強製對因子的所有級別使用相同的平滑參數。例如,s(x,by=fac,id=1)
將為fac
的每個級別生成單獨的平滑x
,每個平滑具有相同的平滑參數。有關更多信息,請參閱gam.models。 - 總和為零平滑交互
-
bs="sz"
這些因子平滑交互是使用s(...,bs="sz")
指定的。可能提供多個因子,並且為因子水平的每個組合生成平滑。平滑的構造是為了排除“主效應”平滑,或為因子水平的低階組合產生的單個平滑的影響。例如,對於單個因子,不同因子級別的平滑受到很大限製,以致等效樣條係數的所有因子級別的總和均為零。這允許有意義且可識別的模型構建,其中主效應平滑加上每個因子水平與主效應之間差異的平滑。這種構造通常比具有有序因子構造的by
變量更自然。請參閱smooth.construct.sz.smooth.spec
。 - 隨機擺動曲線
-
bs="fs"
此方法為單個因子的每個水平生成一條平滑曲線,將曲線視為完全隨機的。這意味著原則上可以使用主效應加上因子水平平滑偏離該效應來構建模型。但是,模型不會像"sz"
方法那樣強製讓主效應完成盡可能多的工作。這種方法對於gamm
來說非常有效,因為它利用了lme
中可用的嵌套估計。請參閱smooth.construct.fs.smooth.spec
。
例子
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)
bd <- bam(y~s(x0)+ s(x1) + s(x1,fac,bs="sz",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.
也可以看看
smooth.construct.fs.smooth.spec
, smooth.construct.sz.smooth.spec
相關用法
- R fs.test FELSPLINE 測試函數
- R full.score 用於 nlm 內的 GCV/UBRE 分數
- R formXtViX GAMM 協方差矩陣的形式分量
- R fix.family.link 修改族以用於 GAM 擬合和檢查
- R formula.gam GAM公式
- R fixDependence 檢測一個矩陣與另一個矩陣的線性相關性
- R vcov.gam 從 GAM 擬合中提取參數(估計器)協方差矩陣
- R gam.check 擬合 gam 模型的一些診斷
- R null.space.dimension TPRS 未懲罰函數空間的基礎
- R gam.reparam 尋找平方根懲罰的穩定正交重新參數化。
- R extract.lme.cov 從 lme 對象中提取數據協方差矩陣
- R scat 用於重尾數據的 GAM 縮放 t 係列
- R choldrop 刪除並排名第一 Cholesky 因子更新
- R smooth.construct.cr.smooth.spec GAM 中的懲罰三次回歸樣條
- R bandchol 帶對角矩陣的 Choleski 分解
- R gam.side GAM 的可識別性邊條件
- R cox.ph 附加 Cox 比例風險模型
- R mgcv.parallel mgcv 中的並行計算。
- R gamm 廣義加性混合模型
- R pdTens 實現張量積平滑的 pdMat 類的函數
- R Predict.matrix GAM 中平滑項的預測方法
- R Predict.matrix.soap.film 皂膜光滑度預測矩陣
- R smooth.construct.bs.smooth.spec GAM 中的懲罰 B 樣條
- R gamlss.gH 計算回歸係數的對數似然導數
- R plot.gam 默認 GAM 繪圖
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Factor smooth interactions in GAMs。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。