te
位於 mgcv
包(package)。 說明
用於定義張量積平滑和 gam
模型公式中的交互的函數。 te
生成完整的張量積平滑,而 ti
生成張量積交互,適用於還存在主效應(以及任何較低的交互)的情況。
這些函數不評估平滑度 - 它們的存在純粹是為了幫助使用基於張量積的平滑度建立模型。旨在從具有 basis-penalty 表示的任何邊平滑構造張量積(限製是每個邊平滑必須隻有一個懲罰)。
用法
te(..., k=NA,bs="cr",m=NA,d=NA,by=NA,fx=FALSE,
np=TRUE,xt=NULL,id=NULL,sp=NULL,pc=NULL)
ti(..., k=NA,bs="cr",m=NA,d=NA,by=NA,fx=FALSE,
np=TRUE,xt=NULL,id=NULL,sp=NULL,mc=NULL,pc=NULL)
參數
... |
變量列表,這些變量是該平滑函數的協變量。此處最好避免形式取決於數據值的轉換:例如 |
k |
用於表示平滑項的基數維度。如果未提供,則設置為 |
bs |
數組(或單個字符串)指定每個邊際基礎的類型。 |
m |
每個項的樣條階數及其懲罰(對於使用它的平滑類)。如果給出一個數字,則它用於所有術語。向量可用於為每個邊距提供不同的 |
d |
邊際基礎維度數組。例如,如果您想要由 2 維 t.p.r.s. 的張量積組成的 3 個協變量的平滑。基和一維基,然後設置 |
by |
與每個協變量具有相同維度的數值或因子變量。在數值向量的情況下,元素乘以相應協變量值評估的平滑度(“變化係數模型”結果)。在因子情況下,會為每個因子級別生成平滑的副本。有關更多詳細信息,請參閱 |
fx |
指示該項是否是固定 d.f。回歸樣條線 ( |
np |
|
xt |
或者是單個對象,提供要傳遞給每個邊際基礎構造函數的任何額外信息,或者是此類對象的列表,每個對象對應一個邊際基礎。 |
id |
標識該術語的標簽或整數,以便將其平滑參數鏈接到相同類型的其他參數。如果兩個或多個平滑項具有相同的 |
sp |
為此項提供的任何平滑參數。必須是與此平滑的懲罰數長度相同的數組。正或零元素被視為固定平滑參數。負元素表示自動初始化。將 |
mc |
對於 |
pc |
如果不是 |
細節
多個協變量的平滑可以根據用於表示一個(或有時多個)協變量的平滑的基數的張量積來構造。為此,使用關聯的模型矩陣和懲罰矩陣生成 ‘marginal’ 基數,然後將它們以 tensor.prod.model.matrix
和 tensor.prod.penalties
中說明的方式組合,以生成用於平滑但多個懲罰的單個模型矩陣(一個對於每個邊際基礎)。整個平滑的基本尺寸是邊平滑的基本尺寸的乘積。
張量積平滑對於表示以不同單位測量的協變量的函數特別有用,盡管它們通常不如 t.p.r.s. 表現得那麽好。平滑縮放良好的協變量。
例如,研究具有 main-effects + 交互結構的平滑模型有時很有用
這種函數方差分析由 ti
項支持,這些項產生張量積相互作用,其中主效應已被排除,假設它們將被單獨包含在內。例如~ ti(x) + ti(z) + ti(x,z)
將產生上述主效應+交互結構。這比嘗試使用代表交互作用的 s
或 te
術語進行相同的操作要好得多(盡管 mgcv 並不禁止這樣做)。從技術上講,ti
術語非常簡單:它們隻是從已應用了可識別性約束(通常是sum-to-zero)的邊際平滑構造張量積基:然後自動正確嵌套(與 GLM 框架中的所有交互一樣)。參見 Wood(2017 年,第 5.6.3 節)。
“正常參數化”(np=TRUE
)重新參數化張量積平滑的邊際平滑,以便參數是均勻分布在平滑協變量值範圍內的一組點處的函數值。這意味著與任何特定協變量方向相關的張量積的懲罰可以解釋為在該方向上應用的適當邊平滑的懲罰並在平滑上進行平均。目前,這僅適用於單個變量的邊際。當與 "cc"
、 "cr"
和 "cs"
之外的邊平滑一起使用時,此參數化會降低數值穩定性:如果這會導致問題,請設置 np=FALSE
。
請注意,如果任何邊際不需要居中,則張量積平滑不應居中(施加可識別性約束)。張量積平滑的構造函數確保了這種情況的發生。
該函數不計算變量參數。
值
類 tensor.smooth.spec
對象,定義張量積,平滑地由 smooth.construct.tensor.smooth.spec
函數轉換為基礎和懲罰。
返回的對象包含以下項目:
margin |
|
term |
文本字符串數組,給出該項作為函數的協變量的名稱。 |
by |
是任何 |
fx |
邏輯數組,其中包含該項的每個懲罰的元素(張量積平滑有多個懲罰)。 |
label |
適合這個平滑術語的文本標簽。 |
dim |
平滑器的維度 - 即它作為函數的協變量的數量。 |
mp |
|
np |
|
id |
提供給 |
sp |
提供給 |
inter |
|
mc |
提供給 |
例子
# following shows how tensor pruduct deals nicely with
# badly scaled covariates (range of x 5% of range of z )
require(mgcv)
test1 <- function(x,z,sx=0.3,sz=0.4) {
x <- x*20
(pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+
0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2))
}
n <- 500
old.par <- par(mfrow=c(2,2))
x <- runif(n)/20;z <- runif(n);
xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30)
pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30)))
truth <- matrix(test1(pr$x,pr$z),30,30)
f <- test1(x,z)
y <- f + rnorm(n)*0.2
b1 <- gam(y~s(x,z))
persp(xs,zs,truth);title("truth")
vis.gam(b1);title("t.p.r.s")
b2 <- gam(y~te(x,z))
vis.gam(b2);title("tensor product")
b3 <- gam(y~ ti(x) + ti(z) + ti(x,z))
vis.gam(b3);title("tensor anova")
## now illustrate partial ANOVA decomp...
vis.gam(b3);title("full anova")
b4 <- gam(y~ ti(x) + ti(x,z,mc=c(0,1))) ## note z constrained!
vis.gam(b4);title("partial anova")
plot(b4)
par(old.par)
## now with a multivariate marginal....
test2<-function(u,v,w,sv=0.3,sw=0.4)
{ ((pi**sv*sw)*(1.2*exp(-(v-0.2)^2/sv^2-(w-0.3)^2/sw^2)+
0.8*exp(-(v-0.7)^2/sv^2-(w-0.8)^2/sw^2)))*(u-0.5)^2*20
}
n <- 500
v <- runif(n);w<-runif(n);u<-runif(n)
f <- test2(u,v,w)
y <- f + rnorm(n)*0.2
# tensor product of 2D Duchon spline and 1D cr spline
m <- list(c(1,.5),rep(0,0)) ## example of list form of m
b <- gam(y~te(v,w,u,k=c(30,5),d=c(2,1),bs=c("ds","cr"),m=m))
plot(b)
作者
Simon N. Wood simon.wood@r-project.org
參考
Wood, S.N. (2006) Low rank scale invariant tensor product smooths for generalized additive mixed models. Biometrics 62(4):1025-1036 doi:10.1111/j.1541-0420.2006.00574.x
Wood S.N. (2017) Generalized Additive Models: An Introduction with R (2nd edition). Chapman and Hall/CRC Press. doi:10.1201/9781315370279
https://www.maths.ed.ac.uk/~swood34/
也可以看看
相關用法
- R tensor.prod.model.matrix 行克羅內克積/張量積平滑構造
- R t2 在 GAM 公式中定義替代張量積平滑
- R twlss Tweedie 位置規模家庭
- R trichol 三對角矩陣的 Choleski 分解
- R trind.generator 生成上三角存儲的索引數組
- R totalPenaltySpace 獲得零空間和罰矩陣範圍的(正交)基
- 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大神的英文原創作品 Define tensor product smooths or tensor product interactions in GAM formulae。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。