calc.FXtF2 {SpatioTemporal} | R Documentation

## Compute Quadratic Form Bewteen Temporal Trends and Sigma B

### Description

Computes the quadratic form between a sparse matrix `F` containing the temporal trends and the covariance matrix for the beta fields (Sigma_B). Or possibly the product between two different `F`'s and a cross-covariance matrix.
See the examples for details.

### Usage

    calc.FXtF2(F, mat, loc.ind, F2 = F, loc.ind2 = loc.ind)

### Arguments

`F, F2` | (number of obs.) - by - (number of temporal trends) matrices containing the temporal trends. Usually `mesa.model$F`, where `mesa.model` is obtained from `createSTmodel`.
`mat` | A block diagonal, with equal size blocks. The number of blocks need to equal `dim(F)[2]`
`loc.ind, loc.ind2` | A vector indicating which location each row in `F` corresponds to, usually `mesa.model$obs$idx`.

### Value

Returns a square matrix with side `dim(F)[1]`

### Author(s)

Johan Lindstrom and Adam Szpiro

### See Also

Other block matrix functions: `blockMult`, `calc.FX`, `calc.mu.B`, `calc.tFXF`, `calc.tFX`, `makeCholBlock`, `makeSigmaB`, `makeSigmaNu`

Other temporal trend functions: `calc.FX`, `calc.tFXF`, `calc.tFX`, `expandF`

### Examples

    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)
    idx2 <- c(rep(1:2,3),2,2)
    ##a list of time points for each location/observation
    T <- c(rep(1:3,each=3),4,4,5,5)
    T2 <- c(rep(1:3,each=2),4,5)

    ##expand the F matrix to match the locations/times in idx/T.
    F <- trend[T,]
    F2 <- trend[T2,]

    ##first column gives time and second location for each observation
    cbind(T, idx)
    ##...and for the second set
    cbind(T2, idx2)

    ##create a cross covariance matrix
    C <- makeSigmaB(list(c(1,1),c(1,.5)), crossDist(1:max(idx),1:max(idx2)))

    ##compute F %*% X %*% F2'
    FXtF2 <- calc.FXtF2(F, C, loc.ind=idx, F2=F2, loc.ind2=idx2)

    ##which is equivalent to
    FXtF2.alt <- expandF(F, idx) %*% C %*% t( expandF(F2, idx2) )

    range(FXtF2 - FXtF2.alt)

[Package SpatioTemporal version 1.1.9.1 Index]