viterbi: Viterbi algorithm for state decoding in homogeneous HMMs
Description
The Viterbi algorithm allows one to decode the most probable state sequence of an HMM.
Usage
viterbi(delta, Gamma, allprobs, trackID = NULL, mod = NULL)
Value
vector of decoded states of length n
Arguments
delta
initial distribution of length N, or matrix of dimension c(k,N) for k independent tracks, if trackID is provided
Gamma
transition probability matrix of dimension c(N,N) or array of transition probability matrices of dimension c(N,N,k) if trackID is provided
allprobs
matrix of state-dependent probabilities/ density values of dimension c(n, N)
trackID
optional vector of k track IDs, if multiple tracks need to be decoded separately
mod
optional model object containing initial distribution delta, transition probability matrix Gamma, matrix of state-dependent probabilities allprobs, and potentially a trackID variable
If you are using automatic differentiation either with RTMB::MakeADFun or qreml and include forward in your likelihood function, the objects needed for state decoding are automatically reported after model fitting.
Hence, you can pass the model object obtained from running RTMB::report() or from qreml directly to this function.
See Also
Other decoding functions:
stateprobs(),
stateprobs_g(),
stateprobs_p(),
viterbi_g(),
viterbi_p()