Viterbi algorithm for state decoding in inhomogeneous HMMs
viterbi_g.RdThe Viterbi algorithm allows one to decode the most probable state sequence of an HMM.
Arguments
- delta
initial distribution of length N, or matrix of dimension c(k,N) for k independent tracks, if
trackIDis provided- Gamma
array of transition probability matrices of dimension c(N,N,n-1), as in a time series of length n, there are only n-1 transitions
If an array of dimension c(N,N,n) is provided for a single track, the first slice will be ignored.
If
trackIDis provided,Gammaneeds to be an array of dimension c(N,N,n), where n is the number of rows inallprobs. Then for each track the first transition matrix will be ignored.- 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 matrixGamma, matrix of state-dependent probabilitiesallprobs, and potentially atrackIDvariableIf you are using automatic differentiation either with
RTMB::MakeADFunorqremland includeforward_gin your likelihood function, the objects needed for state decoding are automatically reported after model fitting. Hence, you can pass the model object obtained from runningRTMB::report()or fromqremldirectly to this function.
See also
Other decoding functions:
stateprobs(),
stateprobs_g(),
stateprobs_p(),
viterbi(),
viterbi_p()