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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。