当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R tensor.prod.model.matrix 行克罗内克积/张量积平滑构造


R语言 tensor.prod.model.matrix 位于 mgcv 包(package)。

说明

从模型矩阵或平滑边基的惩罚矩阵生成平滑张量积的模型矩阵或惩罚矩阵(边和结果可以是稀疏的)。模型矩阵构造使用行克罗内克积。

用法

tensor.prod.model.matrix(X)
tensor.prod.penalties(S)
a%.%b

参数

X

平滑边基的模型矩阵列表。项目可以是 "matrix""dgCMatrix" 类,但不能是两者的混合。

S

边基础的惩罚列表是平滑的。

a

行数与 A 相同的矩阵。

b

行数与 B 相同的矩阵。

细节

如果 X[[1]]X[[2]] ... X[[m]] 是张量积平滑的边基的模型矩阵,则整个张量积平滑的模型矩阵的第 i 行由 X[[1]][i,]%x%X[[2]][i,]%x% ... X[[m]][i,] 给出,其中 %x% 是克罗内克乘积。当然,例程按列运行,而不是按行运行!

A%.%B 是这个“行克罗内克积”的运算符形式。

如果 S[[1]]S[[2]] ... S[[m]] 是边基数的惩罚矩阵,而 I[[1]]I[[2]] ... I[[m]] 是对应的单位矩阵,每个矩阵与其对应的维度相同惩罚,则张量积 smooth 有 m 个关联惩罚,其形式为:

S[[1]]%x%I[[2]]%x% ... I[[m]] ,

I[[1]]%x%S[[2]]%x% ... I[[m]]

...

I[[1]]%x%I[[2]]%x% ... S[[m]]

当然,在构造张量积平滑时,模型矩阵和惩罚矩阵以相同的顺序呈现很重要。

或者是张量积平滑的单个模型矩阵(与边际属于同一类),或者是张量积平滑的惩罚项列表。

例子

require(mgcv)
## Dense row Kronecker product example...
X <- list(matrix(0:3,2,2),matrix(c(5:8,0,0),2,3))
tensor.prod.model.matrix(X)
X[[1]]%.%X[[2]]

## sparse equivalent...
Xs <- lapply(X,as,"dgCMatrix")
tensor.prod.model.matrix(Xs)
Xs[[1]]%.%Xs[[2]]

S <- list(matrix(c(2,1,1,2),2,2),matrix(c(2,1,0,1,2,1,0,1,2),3,3))
tensor.prod.penalties(S)
## Sparse equivalent...
Ss <- lapply(S,as,"dgCMatrix")
tensor.prod.penalties(Ss)

作者

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

也可以看看

te , smooth.construct.tensor.smooth.spec

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Row Kronecker product/ tensor product smooth construction。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。