Learn R Programming

LaMa (version 1.0.0)

tpm_g: Build all transition probability matrices of an inhomogeneous HMM

Description

In an HMM, we can model the influence of covariates on the state process, by linking them to the transition probabiltiy matrix. Most commonly, this is done by specifying a linear predictor

\( \eta_{ij}^{(t)} = \beta^{(ij)}_0 + \beta^{(ij)}_1 z_{t1} + \dots + \beta^{(ij)}_p z_{tp} \)

for each off-diagonal element (\(i \neq j\)) and then applying the inverse multinomial logistic link to each row. This function efficiently calculates all transition probabilty matrices for a given design matrix \(Z\) and parameter matrix beta.

Usage

tpm_g(Z, beta, byrow = FALSE)

Value

Array of transition probability matrices of dimension c(N,N,n)

Arguments

Z

Covariate design matrix (excluding intercept column) of dimension c(n, p), where p can also be one (i.e. Z can be a vector).

beta

Matrix of coefficients for the off-diagonal elements of the transition probability matrix. Needs to be of dimension c(N*(N-1), p+1), where the first column contains the intercepts.

byrow

Logical that indicates if each transition probability matrix should be filled by row. Defaults to FALSE, but should be set to TRUE if one wants to work with a matrix of beta parameters returned by popular HMM packages like moveHMM, momentuHMM, or hmmTMB.

Examples

Run this code
n = 1000
Z = matrix(runif(n*2), ncol = 2)
beta = matrix(c(-1, 1, 2, -2, 1, -2), nrow = 2, byrow = TRUE)
Gamma = tpm_g(Z, beta)

Run the code above in your browser using DataLab