Calculate conditional local state probabilities in HMMs
stateprobs.RdComputes $$\Pr(\text{State}_t = j \mid X_1, ..., X_T)$$ for a given HMM.
Usage
stateprobs(
delta,
Gamma,
allprobs,
trackID = NULL,
mod = NULL,
forecast = FALSE,
tod = NULL
)Arguments
- delta
initial distribution; either
a vector of length
nStates,a matrix of dimension
c(nTracks, nStates)iftrackIDis provided, ora model object as for
mod, so thatmodcan be passed as the first argument
- Gamma
transition probability matrix; either
a matrix of dimension
c(nStates, nStates),an array of dimension
c(nStates, nStates, nTracks)iftrackIDis provided,an array of dimension
c(nStates, nStates, nObs)for time-varying transition probabilities, oran array of dimension
c(nStates, nStates, L)for periodic transition probabilities, iftodis provided
- allprobs
matrix of state-dependent probabilities or density values of dimension
c(nObs, nStates)- trackID
optional vector of length
nObscontainingnTracksunique IDs that separate tracks. The observations of each track need to be consecutive.- mod
optional model object containing
delta,Gamma,allprobs, and optionallytrackID. When usingRTMB::MakeADFunorqremlwithforwardin the likelihood, these are reported automatically after model fitting and the object returned byobj$report(),lamaorqremlcan be passed directly.- forecast
logical, indicating if forecast probabilities \(\Pr(\text{State}_t = j \mid X_1, ..., X_{t-1})\) should be calculated instead.
- tod
optional integer vector of length
nObswith values in 1, ..., L, indexing the slices ofGammafor periodic models
See also
Other decoding functions:
stateprobs_g(),
stateprobs_p(),
viterbi(),
viterbi_g(),
viterbi_p()
Examples
Gamma = tpm(c(-1,-2))
delta = stationary(Gamma)
allprobs = matrix(runif(10), nrow = 10, ncol = 2)
probs = stateprobs(delta, Gamma, allprobs)