pc.cormat {INLA} | R Documentation

## Utility functions for the PC prior for a correlation matrix

### Description

Functions to evaluate and sample from the PC prior for a correlation matrix.

The parameterisation of a correlation matrix of dimension `p` has `dim` parameters: `theta` which are in the interval -pi to pi. The alternative parameterisation is through the off-diagonal elements `r` of the correlation matrix `R`. The functions `⁠inla.pc.cormat.<A>2<B>⁠` convert between parameterisations `⁠<A>⁠` to parameterisations `⁠<B>⁠`, where both `⁠<A>⁠` and `⁠<B>⁠` are one of `theta`, `r` and `R`, and `p` and `dim`.

### Usage

    inla.pc.cormat.dim2p(dim)

    inla.pc.cormat.p2dim(p)

    inla.pc.cormat.theta2R(theta)

    inla.pc.cormat.R2theta(R)

    inla.pc.cormat.r2R(r)

    inla.pc.cormat.R2r(R)

    inla.pc.cormat.r2theta(r)

    inla.pc.cormat.theta2r(theta)

    inla.pc.cormat.permute(R)

    inla.pc.cormat.rtheta(n = 1, p, lambda = 1)

    inla.pc.cormat.dtheta(theta, lambda = 1, log = FALSE)

### Arguments

`dim` | The dimension of `theta`, the parameterisatin of the correlation matrix
`p` | The dimension the correlation matrix
`theta` | A vector of parameters for the correlation matrix
`R` | A correlation matrix
`r` | The off diagonal elements of a correlation matrix
`n` | Number of observations
`lambda` | The rate parameter in the prior
`log` | Logical. Return the density in natural or log-scale.

### Value

`inla.pc.cormat.rtheta` generate samples from the prior, returning a matrix where each row is a sample of `theta`. `inla.pc.cormat.dtheta` evaluates the density of `theta`. `inla.pc.cormat.permute` randomly permutes a correlation matrix, which is useful if an exchangable sample of a correlation matrix is required.

### Author(s)

Havard Rue hrue@r-inla.org

### Examples

      p = 4
      print(paste("theta has length", inla.pc.cormat.p2dim(p)))
      theta = inla.pc.cormat.rtheta(n=1, p=4, lambda = 1)
      print("sample theta:")
      print(theta)
      print(paste("log.dens", inla.pc.cormat.dtheta(theta, log=TRUE)))
      print("r:")
      r = inla.pc.cormat.theta2r(theta)
      print(r)
      print("A sample from the non-exchangable prior, R:")
      R = inla.pc.cormat.r2R(r)
      print(R)
      print("A sample from the exchangable prior, R:")
      R = inla.pc.cormat.permute(R)
      print(R)

[Package INLA version 26.08.22 Index]