vit_mHMM | R Documentation |

`vit_mHMM`

obtains the most likely state sequence (for each subject)
from an object of class `mHMM`

(generated by the function
`mHMM()`

), using (an extended version of) the Viterbi algorithm. This is
also known as global decoding.

vit_mHMM(object, s_data, burn_in = NULL)

`object` |
An object of class |

`s_data` |
A matrix containing the observations to be modeled, where the
rows represent the observations over time. In |

`burn_in` |
The number of iterations to be discarded from the MCMC
algorithm when inferring the transition probability matrix gamma and the
emission distribution of (each of) the dependent variable(s) for each
subject from |

Note that local decoding is also possible, by inferring the most frequent
state at each point in time for each subject from the sampled state path at
each iteration of the MCMC algorithm. This information is contained in the
output object `return_path`

of the function `mHMM()`

.

The function `vit_mHMM`

returns a matrix containing the most
likely state at each point in time. Each column represents a subject, and
each row represents a point in time. If sequence lengths differ over
subjects, states for none existing time points for subjects are filled with
`NA`

.

viterbi1967mHMMbayes

\insertRefrabiner1989mHMMbayes

`mHMM`

for analyzing multilevel hidden Markov data
and obtaining the input needed for `vit_mHMM`

, and
`sim_mHMM`

for simulating multilevel hidden Markov data.

###### Example on package example data, see ?nonverbal # First fit the multilevel HMM on the example data # specifying general model properties: m <- 2 n_dep <- 4 q_emiss <- c(3, 2, 3, 2) # specifying starting values start_TM <- diag(.8, m) start_TM[lower.tri(start_TM) | upper.tri(start_TM)] <- .2 start_EM <- list(matrix(c(0.05, 0.90, 0.05, 0.90, 0.05, 0.05), byrow = TRUE, nrow = m, ncol = q_emiss[1]), # vocalizing patient matrix(c(0.1, 0.9, 0.1, 0.9), byrow = TRUE, nrow = m, ncol = q_emiss[2]), # looking patient matrix(c(0.90, 0.05, 0.05, 0.05, 0.90, 0.05), byrow = TRUE, nrow = m, ncol = q_emiss[3]), # vocalizing therapist matrix(c(0.1, 0.9, 0.1, 0.9), byrow = TRUE, nrow = m, ncol = q_emiss[4])) # looking therapist # Fit the multilevel HMM model: # Note that for reasons of running time, J is set at a ridiculous low value. # One would typically use a number of iterations J of at least 1000, # and a burn_in of 200. out_2st <- mHMM(s_data = nonverbal, gen = list(m = m, n_dep = n_dep, q_emiss = q_emiss), start_val = c(list(start_TM), start_EM), mcmc = list(J = 3, burn_in = 1)) ###### obtain the most likely state sequence with the Viterbi algorithm states <- vit_mHMM(s_data = nonverbal, object = out_2st) ###### Example on simulated data # Simulate data for 10 subjects with each 100 observations: n_t <- 100 n <- 10 m <- 2 n_dep <- 1 q_emiss <- 3 gamma <- matrix(c(0.8, 0.2, 0.3, 0.7), ncol = m, byrow = TRUE) emiss_distr <- list(matrix(c(0.5, 0.5, 0.0, 0.1, 0.1, 0.8), nrow = m, ncol = q_emiss, byrow = TRUE)) data1 <- sim_mHMM(n_t = n_t, n = n, gen = list(m = m, n_dep = n_dep, q_emiss = q_emiss), gamma = gamma, emiss_distr = emiss_distr, var_gamma = .5, var_emiss = .5) # Fit the model on the simulated data: # Note that for reasons of running time, J is set at a ridiculous low value. # One would typically use a number of iterations J of at least 1000, # and a burn_in of 200. out_2st_sim <- mHMM(s_data = data1$obs, gen = list(m = m, n_dep = n_dep, q_emiss = q_emiss), start_val = c(list(gamma), emiss_distr), mcmc = list(J = 11, burn_in = 5)) ###### obtain the most likely state sequence with the Viterbi algorithm states <- vit_mHMM(s_data = data1$obs, object = out_2st_sim)

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.