# calc.FX: Compute Matrix Product Bewteen Temporal Trends and a LUR... In SpatioTemporal: Spatio-Temporal Model Estimation

## Description

Computes the matrix products between a sparse matrix `F` containing the temporal trends and a list of land-use-regression components.

See the examples for details.

## Usage

 `1` ```calc.FX(F, LUR, loc.ind) ```

## Arguments

 `F` A (number of obs.) - by - (number of temporal trends) matrix containing the temporal trends. Usually `mesa.model\$F`, where `mesa.model` is obtained from `createSTmodel`. `LUR` A list of matrices, usually `mesa.model\$X`. Each matrix in the list should have the same number of rows, but the number of columns may vary. `loc.ind` A vector indicating which location each row in `F` corresponds to, usually `mesa.model\$obs\$idx`.

Returns a matrix

## Author(s)

Other block matrix functions: `blockMult`, `calc.FXtF2`, `calc.mu.B`, `calc.tFXF`, `calc.tFX`, `makeCholBlock`, `makeSigmaB`, `makeSigmaNu`
Other temporal trend functions: `calc.FXtF2`, `calc.tFXF`, `calc.tFX`, `expandF`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57``` ```##This starts with a couple of simple examples, more elaborate examples ##with real data can be found further down. require(Matrix) ##create a trend trend <- cbind(1:5,sin(1:5)) ##an index of locations idx <- c(rep(1:3,3),1:2,2:3) ##a list of time points for each location/observation T <- c(rep(1:3,each=3),4,4,5,5) ##create a list of matrices X <- list(matrix(1,3,1), matrix(runif(6),3,2)) ##expand the F matrix to match the locations/times in idx/T. F <- trend[T,] ##compute F %*% X FX <- calc.FX(F, X, idx) ##alternatievly this can be computed as block matrix ##times each (expanded) temporal trend Fexp <- expandF(F, idx) FX.alt <- Fexp %*% bdiag(X) ##compare results ##some examples using real data data(mesa.model) ##Some information about the size(s) of the model. dim <- loglikeSTdim(mesa.model) ##compute F %*% X FX <- calc.FX(mesa.model\$F, mesa.model\$LUR, mesa.model\$obs\$idx) ##The resulting matrix is ##(number of time points) - by - (number of land use covariates) ##where the number of land use covariates are computed over all the ##two + intercept temporal trends. ##Each column contains the temporal trend for the observations ##multiplied by the corresponding LUR-covariate par(mfrow=c(3,1)) plot(FX[,2]) points(mesa.model\$LUR[][mesa.model\$obs\$idx,2] * mesa.model\$F[,1], col=2, pch=3) plot(FX[,dim\$p+1]) points(mesa.model\$LUR[][mesa.model\$obs\$idx,1] * mesa.model\$F[,2], col=2, pch=3) plot(FX[,dim\$p+dim\$p+2]) points(mesa.model\$LUR[][mesa.model\$obs\$idx,2] * mesa.model\$F[,3], col=2, pch=3) ##If the regression parameters, alpha, are known (or estimated) ##The intercept part of the model is given by FX %*% alpha ```