tensor.prod.model.matrix {mgcv} | R Documentation |

## Utility functions for constructing tensor product smooths

### Description

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.

### Usage

tensor.prod.model.matrix(X)
tensor.prod.penalties(S)

### Arguments

`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. |

### Details

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.

### Value

Either a single model matrix for a tensor product smooth, or a list of penalty terms for a tensor
product smooth.

### Author(s)

Simon N. Wood simon.wood@r-project.org

### References

http://www.stats.gla.ac.uk/~simon/

### See Also

`te`

, `smooth.construct.tensor.smooth.spec`

### Examples

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)

[Package

*mgcv* version 1.3-12

Index]