# initHMM: Initialisation of HMM's In HMM: HMM - Hidden Markov Models

## Description

This function initialises a general discrete time and discrete space Hidden Markov Model (HMM). A HMM consists of an alphabet of states and emission symbols. A HMM assumes that the states are hidden from the observer, while only the emissions of the states are observable. The HMM is designed to make inference on the states through the observation of emissions. The stochastics of the HMM is fully described by the initial starting probabilities of the states, the transition probabilities between states and the emission probabilities of the states.

## Usage

 `1` ```initHMM(States, Symbols, startProbs=NULL, transProbs=NULL, emissionProbs=NULL) ```

## Arguments

 `States ` Vector with the names of the states. `Symbols ` Vector with the names of the symbols. `startProbs ` Vector with the starting probabilities of the states. `transProbs ` Stochastic matrix containing the transition probabilities between the states. `emissionProbs` Stochastic matrix containing the emission probabilities of the states.

## Format

Dimension and Format of the Arguments.

States

Vector of strings.

Symbols

Vector of strings.

startProbs

Vector with the starting probabilities of the states. The entries must sum to 1.

transProbs

`transProbs` is a (number of states)x(number of states)-sized matrix, which contains the transition probabilities between states. The entry `transProbs[X,Y]` gives the probability of a transition from state `X` to state `Y`. The rows of the matrix must sum to 1.

emissionProbs

`emissionProbs` is a (number of states)x(number of states)-sized matrix, which contains the emission probabilities of the states. The entry `emissionProbs[X,e]` gives the probability of emission `e` from state `X`. The rows of the matrix must sum to 1.

## Details

In `transProbs` and `emissionProbs` NA's can be used in order to forbid specific transitions and emissions. This might be useful for Viterbi training or the Baum-Welch algorithm when using pseudocounts.

## Value

The function `initHMM` returns a HMM that consists of a list of 5 elements:

 `States` Vector with the names of the states. `Symbols` Vector with the names of the symbols. `startProbs` Annotated vector with the starting probabilities of the states. `transProbs` Annotated matrix containing the transition probabilities between the states. `emissionProbs` Annotated matrix containing the emission probabilities of the states.

## Author(s)

Lin Himmelmann <[email protected]>, Scientific Software Development

## References

For an introduction in the HMM-literature see for example:

• Lawrence R. Rabiner: A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. Proceedings of the IEEE 77(2) p.257-286, 1989.

• Olivier Cappe, Eric Moulines, Tobias Ryden: Inference in Hidden Markov Models. Springer. ISBN 0-387-40264-0.

• Ephraim Y., Merhav N.: Hidden Markov processes. IEEE Trans. Inform. Theory 48 p.1518-1569, 2002.

See `simHMM` to simulate a path of states and observations from a Hidden Markov Model.

## Examples

 ```1 2 3 4 5``` ```# Initialise HMM nr.1 initHMM(c("X","Y"), c("a","b","c")) # Initialise HMM nr.2 initHMM(c("X","Y"), c("a","b"), c(.3,.7), matrix(c(.9,.1,.1,.9),2), matrix(c(.3,.7,.7,.3),2)) ```

### Example output

```\$States
[1] "X" "Y"

\$Symbols
[1] "a" "b" "c"

\$startProbs
X   Y
0.5 0.5

\$transProbs
to
from    X    Y
X 0.75 0.25
Y 0.25 0.75

\$emissionProbs
symbols
states         a         b         c
X 0.3333333 0.3333333 0.3333333
Y 0.3333333 0.3333333 0.3333333

\$States
[1] "X" "Y"

\$Symbols
[1] "a" "b"

\$startProbs
X   Y
0.3 0.7

\$transProbs
to
from   X   Y
X 0.9 0.1
Y 0.1 0.9

\$emissionProbs
symbols
states   a   b
X 0.3 0.7
Y 0.7 0.3
```

HMM documentation built on May 1, 2019, 8:47 p.m.