This function builds the infinitesimal generator matrix for a continuous-time Markov chain from an unconstrained parameter vector.
generator(
beta,
Z = NULL,
Eta = NULL,
byrow = FALSE,
report = TRUE,
param = NULL
)infinitesimal generator matrix of dimension c(nStates, nStates) or array of such matrices of dimension c(nStates, nStates, nObs) if Z or Eta is provided.
parameters; either
a vector of length nStates * (nStates-1), or
a matrix of dimension c(nStates * (nStates-1), p+1) if design matrix Z is also provided.
optional covariate design matrix with or without intercept column, i.e. of dimension c(nObs, p) or c(nObs, p+1).
If provided, beta needs to be a matrix of dimension c(nStates * (nStates-1), p+1).
optional pre-calculated matrix of linear predictors of dimension c(nObs, nStates * (nStates-1)).
If provided, Z and beta will be ignored.
logical indicating if the generator matrix should be filled by row
logical, indicating whether the generator matrix Q should be reported from the fitted model. Defaults to TRUE, but only works if when automatic differentiation with RTMB is used.
depricated, please use argument beta instead.
Off-diagonal entries are calculated as \(\exp(\beta_i)\) to ensure positivity. The diagonal entries are then set to the negative row sums, which is required for generator matrices.
If a design matrix Z or a matrix of linear predictors Eta is provided, the function will automatically call generator_g to build the generator matrix based on the design matrix and coefficient matrix.
In that case, the argument beta needs to be a matrix of coefficients of dimension c(nStates * (nStates-1), p+1), where the first column contains the intercepts.
Other transition probability matrix functions:
generator_g(),
tpm(),
tpm_ct(),
tpm_emb(),
tpm_emb_g(),
tpm_g(),
tpm_g2(),
tpm_p()
# 2 states: 2 free off-diagonal elements
generator(rep(-1, 2))
# 3 states: 6 free off-diagonal elements
generator(rep(-2, 6))
Run the code above in your browser using DataLab