Build all transition probability matrices of an inhomogeneous HMM
tpm_g.RdIn an HMM, we often 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\)) of the transition probability matrix and then applying the inverse multinomial logistic link (also known as softmax) 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,
Eta = NULL,
byrow = FALSE,
ref = NULL,
ad = NULL,
report = TRUE,
sparse = FALSE
)Arguments
- Z
Covariate design matrix with or without intercept column, i.e. of dimension
c(nObs, p)orc(nObs, p+1). If not provided, intercept column is added automatically.- beta
Matrix of coefficients for the off-diagonal elements of the transition probability matrix of dimension
c(nStates * (nStates-1), p+1). First columns contains the intercepts.- Eta
optional pre-calculated matrix of linear predictors of dimension
c(nObs, nStates * (nStates-1)). If provided, noZandbetaare necessary and will be ignored.- byrow
logical indicating if each transition probability matrix should be filled by row. Defaults to
FALSE, but should be set toTRUEif one wants to work with a matrix of beta parameters returned by popular HMM packages likemoveHMM,momentuHMM, orhmmTMB.- ref
optional integer vector of length
nStatesgiving, for each row, the column index of the reference state (its predictor is fixed to 0). Defaults to the diagonal (ref = 1:nStates).- ad
logical; whether to use automatic differentiation. Determined automatically — for debugging only.
- report
logical; if
TRUE(default),delta,Gamma,allprobs, andtrackIDare reported from the fitted model. Requiresad = TRUE.- sparse
logical, indicating whether sparsity in the rows of
Zshould be exploited.
See also
Other transition probability matrix functions:
generator(),
generator_g(),
tpm(),
tpm_ct(),
tpm_emb(),
tpm_emb_g(),
tpm_g2(),
tpm_p()
Examples
## inhomogeneous Markov chain
# t.p.m. depends on covariates
z1 <- runif(100); z2 <- runif(100) # 2 covariates
Z <- cbind(1, z1, z2) # design matrix
beta0 <- c(-2, -2); beta1 = c(1, -2); beta2 = c(2, -1) # coefficients for intercept and covariates
beta <- cbind(beta0, beta1, beta2) # coefficient matrix; with intercepts!
#' Gamma <- tpm(beta, Z) # array with 100 slices