# Forward and backward variables

### Description

Compute the forward and backward variables of a `depmix`

object.

### Usage

1 2 | ```
## S4 method for signature 'mix'
forwardbackward(object, return.all=TRUE, useC=TRUE, ...)
``` |

### Arguments

`object` |
A depmix object. |

`return.all` |
If FALSE, only gamma and xi and the log likelihood are returned (which are the only variables needed in using EM). |

`useC` |
Flag used to set whether the C-code is used to compute the forward, backward, gamma and xi variables or not; the R-code is basically obsolete (but retained for now for debugging purposes). |

`...` |
Not currently used. |

### Value

`forwardbackward`

returns a list of the following (the variables
are named after the notation from Rabiner, 1989):

`alpha` |
The forward variables. |

`beta` |
The backward variables. |

`gamma` |
The smoothed state probabilities. |

`xi` |
The smoothed transition probabilities. |

`sca` |
The scale factors (called lambda in Rabiner, 1989). |

`logLike` |
The log likelihood (computed as |

If return.all=FALSE, only gamma, xi and the log likelihood are returned.

### Author(s)

Maarten Speekenbrink & Ingmar Visser

### References

Lawrence R. Rabiner (1989). A tutorial on hidden Markov models and
selected applications in speech recognition. *Proceedings of
IEEE*, 77-2, p. 267-295.

### Examples

1 2 3 4 5 6 7 8 9 10 | ```
data(speed)
# 2-state model on rt and corr from speed data set
# with Pacc as covariate on the transition matrix
# ntimes is used to specify the lengths of 3 separate series
mod1 <- depmix(list(rt~1,corr~1),data=speed,transition=~Pacc,nstates=2,
family=list(gaussian(),multinomial("identity")),ntimes=c(168,134,137))
fb <- forwardbackward(mod1)
all.equal(-sum(log(fb$sca)),fb$logLike)
``` |