# cholInvArray: Precision matrices to variance matrices for Winbugs output In glmmBUGS: Generalised Linear Mixed Models with BUGS and JAGS

## Description

Given an array containing simulations from the posterior of a precision matrix, each individual precision matrix is converted to variances, covariances, and correlations.

## Usage

 `1` ```cholInvArray(x, prefix = "T", chol=FALSE) ```

## Arguments

 `x` An array of winbugs output, with precision matrix entries of the form "T[1,3]" `prefix` The name of the precision matrix in winbugs, the "T" in "T[1,2 ]" `chol` If TRUE, the cholesky decomposition is returned instead of the inverse

## Details

Inverts the matrices with the cholesky decomposition, but operating on all matrices simultaneously using array arithmetic.

## Value

An array with the third dimension's precision matrix entries changed to

 `"sdT[i,i]"` for the standard deviation of component i `"covT[i,j]"` for the covariance between i and j `"corrT[i,j]"` for the correlations between i and j

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22``` ```# create a random positive definite matrix by # generating a lower triangle N=4 lmat = diag(runif(N, 1, 10)) thetri = lower.tri(lmat) lmat[thetri] = rnorm(sum(thetri), 0, 2) # precmat = solve(lmat %*% t(lmat)) precmat = solve(lmat %*% t(lmat)) # put this matrix into an array precarray = array(c(precmat), dim=c(1,1,length(precmat))) dimnames(precarray) = list(NULL, NULL, paste("T[", rep(1:N, N), ",", rep(1:N, rep(N,N)), "]",sep="") ) # invert it with cholInvArray and the solve function cholInvArray(precarray)[1,1,] # the off diagonals of solve(precmat) should be # the covT elements of cholInvArray(precarray) solve(precmat) # the standard deviations in cholInvArray(precarray) should be the # root of the diagonals of solve(precmat) sqrt(diag(solve(precmat))) ```

glmmBUGS documentation built on May 2, 2018, 1:03 a.m.