forward: Computation of Forward and Backward Variables

Description Usage Arguments Value Author(s) References See Also Examples

Description

These functions calculate the forward and backward variables for a given model and observation sequence. All computations are carried out in log-space.

Usage

1
2
3
4
## S4 method for signature 'hmm'
forward(hmm, obs)
## S4 method for signature 'hmm'
backward(hmm, obs)

Arguments

hmm

An object of class hmm or one of its subclasses representing the hidden Markov model.

obs

A vector containing the observation sequence.

Value

backward returns the N \times T matrix of (log transformed) backward variables, where N is the number of states of hmm and T is the length of obs.

forward returns a list with components

logProb

log[P(obs|hmm)]

alpha.scaled

The matrix of log transformed forward variables. This has the same dimensions as the matrix returned by backward

Author(s)

Peter Humburg

References

Rabiner, L. R. 1989 A tutorial on hidden Markov models and selected applications in speech recognition. Proceedings of the IEEE, 77(2), 257–286.

See Also

hmm

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## create two state HMM with t distributions
state.names <- c("one","two")
transition <- c(0.1, 0.02)
location <- c(1, 2)
scale <- c(1, 1)
df <- c(4, 6)
model <- getHMM(list(a=transition, mu=location, sigma=scale, nu=df), 
    state.names)

## obtain observation sequence from model
obs <- sampleSeq(model, 100)

## calculate the probability of the observation given the model
fwd <- forward(model, obs)
fwd$logProb

## compute posterior probabilities
bwd <- backward(model,obs)
post <- bwd + fwd$alpha.scaled
post <- t(t(post) - apply(post,2,logSum))

## get sequence of most likely states
state.seq <- state.names[apply(post,2,which.max)]

tileHMM documentation built on May 30, 2017, 3:41 a.m.