Viterbi algorithm for state decoding in periodically inhomogeneous HMMs
viterbi_p.Rd
The 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
trackID
is 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 atrackID
variableIf you are using automatic differentiation either with
RTMB::MakeADFun
orqreml
and includeforward_p
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 runningRTMB::report()
or fromqreml
directly to this function.
See also
Other decoding functions:
stateprobs()
,
stateprobs_g()
,
stateprobs_p()
,
viterbi()
,
viterbi_g()