t2
位於 mgcv
包(package)。 說明
用於在 gam
公式中定義張量積平滑的 te
的替代方案。結果是懲罰是單位矩陣的非重疊倍數(某些行和列歸零)的結構。該構造源自 Fabian Scheipl(mgcv
實現,2010 年),類似於平滑樣條方差分析(Gu,2002 年),但使用低秩懲罰回歸樣條邊際。這種結構的主要優點是它可以與 gamm4
包中的 gamm4
一起使用。
用法
t2(..., k=NA,bs="cr",m=NA,d=NA,by=NA,xt=NULL,
id=NULL,sp=NULL,full=FALSE,ord=NULL,pc=NULL)
參數
... |
變量列表,這些變量是該平滑函數的協變量。此處最好避免形式取決於數據值的轉換:例如 |
k |
用於表示平滑項的基數維度。如果未提供,則設置為 |
bs |
數組(或單個字符串)指定每個邊際基礎的類型。 |
m |
每個項的樣條階數及其懲罰(對於使用它的平滑類)。如果給出一個數字,則它用於所有術語。向量可用於為每個邊距提供不同的 |
d |
邊際基礎維度數組。例如,如果您想要由 2 維 t.p.r.s. 的張量積組成的 3 個協變量的平滑。基和一維基,然後設置 |
by |
與每個協變量具有相同維度的數值或因子變量。在數值向量的情況下,元素乘以相應協變量值評估的平滑度(“變化係數模型”結果)。在因子情況下,會為每個因子級別生成平滑的副本。有關更多詳細信息,請參閱 |
xt |
或者是單個對象,提供要傳遞給每個邊際基礎構造函數的任何額外信息,或者是此類對象的列表,每個對象對應一個邊際基礎。 |
id |
標識該術語的標簽或整數,以便將其平滑參數鏈接到相同類型的其他參數。如果兩個或多個平滑項具有相同的 |
sp |
為此項提供的任何平滑參數。必須是與此平滑的懲罰數長度相同的數組。正或零元素被視為固定平滑參數。負元素表示自動初始化。將 |
full |
如果 |
ord |
給出要保留的項順序的數組。這裏的順序是指構建組件時使用的邊範圍空間的數量。 |
pc |
如果不是 |
細節
多個協變量的平滑可以根據用於表示一個(或有時多個)協變量的平滑的基數的張量積來構造。為此,使用關聯的模型矩陣和懲罰矩陣生成‘marginal’ 堿基。這些被重新參數化,以便懲罰在所有地方都為零,除了前導對角線上的一些元素之外,它們都具有相同的非零值。對於每個邊際基礎,這種重新參數化會產生未懲罰和懲罰的參數子集(詳細信息請參見 Wood,2004 年的附錄)。
然後將重新參數化的邊際基數組合起來,生成所有協變量的單個函數的基數(維度由邊際基數的維度的乘積給出)。在這個設置中,有多個懲罰矩陣 - 全部為零,但對於前導對角線上的常量和零的混合。沒有兩個處罰在同一位置有非零條目。
本質上,張量積的基礎可以被認為是由邊平滑的懲罰(範圍)或未懲罰(零)空間基的一組乘積構造而成(參見 Gu,2002,第 2.4 節)。要構造其中一個集合,請從每個邊際選擇零空間或範圍空間,然後從這些基構造乘積基。結果會受到山脊懲罰(除非它恰好是完全邊零空間的乘積)。平滑的整個基礎是由可以以這種方式構建的所有不同的產品基礎構建的。平滑基礎的單獨懲罰分量各自具有方差分析(術語分解)方麵的解釋。有關更多信息,請參閱pen.edf
。
請注意,有兩種構建產品的方法。當 full=FALSE
時,空空間基數將被視為每個產品中的整體,但當 full=TRUE
時,每個空空間列將被視為單獨的空空間。後者會導致更多處罰,但與 SS-ANOVA 方法嚴格類似。
張量積平滑對於表示以不同單位測量的協變量的函數特別有用,盡管它們通常不如 t.p.r.s. 表現得那麽好。平滑縮放良好的協變量。
另請注意,如果在兩種情況下使用相同的邊際基數,則由較低階張量積平滑構造的 GAM 會嵌套在由較高階張量積平滑構造的 GAM 中(邊際平滑本身隻是張量積平滑的特殊情況。)
請注意,如果任何邊際不需要居中,則張量積平滑不應居中(施加可識別性約束)。張量積平滑的構造函數確保了這種情況的發生。
該函數不計算變量參數。
值
類 t2.smooth.spec
對象,定義張量積,平滑地由 smooth.construct.tensor.smooth.spec
函數轉換為基礎和懲罰。
返回的對象包含以下項目:
margin |
|
term |
文本字符串數組,給出該項作為函數的協變量的名稱。 |
by |
是任何 |
fx |
邏輯數組,其中包含該項的每個懲罰的元素(張量積平滑有多個懲罰)。 |
label |
適合這個平滑術語的文本標簽。 |
dim |
平滑器的維度 - 即它作為函數的協變量的數量。 |
mp |
|
np |
|
id |
提供給 |
sp |
提供給 |
例子
# following shows how tensor product 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~t2(x,z))
vis.gam(b2);title("tensor product")
b3<-gam(y~t2(x,z,bs=c("tp","tp")))
vis.gam(b3);title("tensor product")
par(old.par)
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),0)
b <- gam(y~t2(v,w,u,k=c(30,5),d=c(2,1),bs=c("ds","cr"),m=m))
## look at the edf per penalty. "rr" denotes interaction term
## (range space range space). "rn" is interaction of null space
## for u with range space for v,w...
pen.edf(b)
## plot results...
op <- par(mfrow=c(2,2))
vis.gam(b,cond=list(u=0),color="heat",zlim=c(-0.2,3.5))
vis.gam(b,cond=list(u=.33),color="heat",zlim=c(-0.2,3.5))
vis.gam(b,cond=list(u=.67),color="heat",zlim=c(-0.2,3.5))
vis.gam(b,cond=list(u=1),color="heat",zlim=c(-0.2,3.5))
par(op)
b <- gam(y~t2(v,w,u,k=c(25,5),d=c(2,1),bs=c("tp","cr"),full=TRUE),
method="ML")
## more penalties now. numbers in labels like "r1" indicate which
## basis function of a null space is involved in the term.
pen.edf(b)
作者
Simon N. Wood simon.wood@r-project.org and Fabian Scheipl
參考
Wood S.N., F. Scheipl and J.J. Faraway (2013, online Feb 2012) Straightforward intermediate rank tensor product smoothing in mixed models. Statistics and Computing. 23(3):341-360 doi:10.1007/s11222-012-9314-z
Gu, C. (2002) Smoothing Spline ANOVA, Springer.
Alternative approaches to functional ANOVA decompositions, *not* implemented by t2 terms, are discussed in:
Belitz and Lang (2008) Simultaneous selection of variables and smoothing parameters in structured additive regression models. Computational Statistics & Data Analysis, 53(1):61-81
Lee, D-J and M. Durban (2011) P-spline ANOVA type interaction models for spatio-temporal smoothing. Statistical Modelling, 11:49-69
Wood, S.N. (2006) Low-Rank Scale-Invariant Tensor Product Smooths for Generalized Additive Mixed Models. Biometrics 62(4): 1025-1036.
也可以看看
相關用法
- R twlss Tweedie 位置規模家庭
- R trichol 三對角矩陣的 Choleski 分解
- R trind.generator 生成上三角存儲的索引數組
- R te 在 GAM 公式中定義張量積平滑或張量積交互
- R tensor.prod.model.matrix 行克羅內克積/張量積平滑構造
- 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 alternative tensor product smooths in GAM formulae。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。