Viterbi algorithm for state decoding in periodically inhomogeneous HMMs
viterbi_p.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 providedThis could e.g. be the periodically stationary distribution (for each track).
- Gamma
array of transition probability matrices for each time point in the cycle of dimension c(N,N,L), where L is the length of the cycle
- allprobs
matrix of state-dependent probabilities/ density values of dimension c(n, N)
- tod
(Integer valued) variable for cycle indexing in 1, ..., L, mapping the data index to a generalised time of day (length n)
For half-hourly data L = 48. It could, however, also be day of year for daily data and L = 365.
- 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_pin 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_g()