tensor.prod.model.matrix {mgcv} | R Documentation |
Produce model matrices or penalty matrices for a tensor product smooth from the model matrices or penalty matrices for the marginal bases of the smooth.
tensor.prod.model.matrix(X) tensor.prod.penalties(S)
X |
a list of model matrices for the marginal bases of a smooth |
S |
a list of penalties for the marginal bases of a smooth. |
If X[[1]]
, X[[2]]
... X[[m]]
are the model matrices of the marginal bases of
a tensor product smooth then the ith row of the model matrix for the whole tensor product smooth is given by
X[[1]][i,]%x%X[[2]][i,]%x% ... X[[m]][i,]
, where %x%
is the Kronecker product. Of course
the routine operates column-wise, not row-wise!
If S[[1]]
, S[[2]]
... S[[m]]
are the penalty matrices for the marginal bases, and
I[[1]]
, I[[2]]
... I[[m]]
are corresponding identity matrices, each of the same
dimension as its corresponding penalty, then the tensor product smooth has m associate penalties of the form:
S[[1]]%x%I[[2]]%x% ... I[[m]]
,
I[[1]]%x%S[[2]]%x% ... I[[m]]
...
I[[1]]%x%I[[2]]%x% ... S[[m]]
.
Of course it's important that the model matrices and penalty matrices are presented in the same order when constructing tensor product smooths.
Either a single model matrix for a tensor product smooth, or a list of penalty terms for a tensor product smooth.
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
require(mgcv) X <- list(matrix(1:4,2,2),matrix(5:10,2,3)) tensor.prod.model.matrix(X) 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)