build_mm: Build a Markov Model

View source: R/build_mm.R

build_mmR Documentation

Build a Markov Model

Description

Function build_mm() builds and automatically estimates a Markov model. It is also a shortcut for constructing a Markov model as a restricted case of an hmm object.

Usage

build_mm(observations)

Arguments

observations

An stslist object (see TraMineR::seqdef()) containing the sequences.

Details

Unlike the other build functions in seqHMM, the build_mm() function automatically estimates the model parameters. In case of no missing values, initial and transition probabilities are directly estimated from the observed initial state probabilities and transition counts. In case of missing values, the EM algorithm is run once.

Note that it is possible that the data contains a symbol from which there are no transitions anywhere (even to itself), which would lead to a row in transition matrix full of zeros. In this case the build_mm() (as well as the EM algorithm) assumes that the the state is absorbing in a way that probability of staying in this state is 1.

Value

Object of class hmm with following elements:

  • observations
    State sequence object or a list of such containing the data.

  • transition_probs
    A matrix of transition probabilities.

  • emission_probs
    A matrix or a list of matrices of emission probabilities.

  • initial_probs
    A vector of initial probabilities.

  • state_names
    Names for hidden states.

  • symbol_names
    Names for observed states.

  • channel_names
    Names for channels of sequence data

  • length_of_sequences
    (Maximum) length of sequences.

  • sequence_lengths
    A vector of sequence lengths.

  • n_sequences
    Number of sequences.

  • n_symbols
    Number of observed states (in each channel).

  • n_states
    Number of hidden states.

  • n_channels
    Number of channels.

See Also

plot.hmm() for plotting the model.

Examples

# Construct sequence data
data("mvad", package = "TraMineR")

mvad_alphabet <-
  c("employment", "FE", "HE", "joblessness", "school", "training")
mvad_labels <- c(
  "employment", "further education", "higher education",
  "joblessness", "school", "training"
)
mvad_scodes <- c("EM", "FE", "HE", "JL", "SC", "TR")
mvad_seq <- seqdef(mvad, 15:86,
  alphabet = mvad_alphabet,
  states = mvad_scodes, labels = mvad_labels, xtstep = 6,
  cpal = colorpalette[[6]]
)

# Estimate the Markov model
mm_mvad <- build_mm(observations = mvad_seq)


seqHMM documentation built on June 8, 2025, 10:16 a.m.