sermal - 4 years ago 146

R Question

I have a train sequence and model with finite set of values (discrete distribution). I'm training this model, getting the hidden states for X sequence by Viterbi algorithm and I want to predict the next hidden state. How can I calculate it?

`library(RHmm)`

seq.train <- rbinom(1000, 1, 0.5)

hmm <- HMMFit(seq.train, dis = 'DISCRETE', nStates = 3)

x <- c(1, 1, 1, 0, 0, 1)

v <- viterbi(hmm, x)

Recommended for you: Get network issues from **WhatsUp Gold**. **Not end users.**

Answer Source

You don't need Viterbi algorithm to compute the next hidden state. All you need is the estimated transition matrix, and the posterior state distribution of the last training observation.

```
> Gamma <- RHmm::forwardbackward(hmm, seq.train)$Gamma
> Gamma[nrow(Gamma), ]
[1] 0.008210024 0.035381361 0.956408615
> Gamma[nrow(Gamma), ] %*% hmm$HMM$transMat
[,1] [,2] [,3]
[1,] 0.2222393 0.293037 0.4847237
```

See this CrossValidated answer.

Recommended from our users: **Dynamic Network Monitoring from WhatsUp Gold from IPSwitch**. ** Free Download**