I want to compute the following conditional probabilities for an HMM, where I shall refer to the state at time $t$ as $X_t$ and the observation at time $t$ is $O_t$:

$$\text{Pr}\left(X_t | O_1, \ldots, O_t, X_{t-1}\right).$$

How do I go about doing that? Firstly, will this distribution on $X_t$ even depend on the prior observations, i.e., $O_1, \ldots, O_{t-1}$? Does calculating this probability have anything to do with the Viterbi algorithm for computing the best sequence of states given the observations?

Now, I have attempted to solve this and this is as far as I got:

Firstly, I believe, as I suggested above, that (A1) "$X_t$ doesn't depend on $O_1, \ldots, O_{t-1}$", because these observations depend on states on or before $t-1$, and given $X_{t-1}$, they are not relevant. Then, the problem boils down to, after some manipulation:

$$\text{Pr}\left(X_t | O_t, X_{t-1}\right) = \frac{\text{Pr}(O_t | X_t)\text{Pr}(X_t | X_{t-1})}{\text{Pr}(O_t)}.$$

Now, is assumption (A1) correct? If so, how to compute $\text{Pr}(O_t)$, as that is the only term that is unknown? The two probabilities in the numerator correspond to the conditional probability of the observation, given the state (emission distribution) and the other is the transition probability matrix of the Markov chain, both of which can be estimated using well known methods.


1 Answer 1


(A1) is correct as long as your HMM is a first-order HMM, meaning that the state at time $t$ only depends on the state at time $t-1$. In that case, every information relevant to $X_{t}$ in $O_{1},...,O_{t-1}$ is already included in $X_{t-1}$.

Then, to compute Pr($O_{t}$), you can notice that $\sum_{x\in\{\text{states}\}}\text{Pr}(x|O_{t}, X_{t-1}) = 1$. They all have the same denominator, Pr($O_{t}$), so you can just compute each term of the sum assuming that $\text{Pr}(O_{t})=1$ and then scale the sum to 1.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.