R: Prediction for hsmmspec

predict.hsmmspec {mhsmm} | R Documentation

## Prediction for hsmmspec

### Description

Predicts the underlying state sequence for an observed sequence `newdata` given a `hsmm` model

### Usage

    ## S3 method for class 'hsmmspec'
    predict(object, newdata, method = "viterbi",M=NA, ...)

### Arguments

`object` | An object of type `hsmmspec`
`newdata` | A vector or dataframe of observations
`method` | Prediction method (see details)
`M` | Maximum number of time spent in a state (truncates the waiting distribution)
`...` | further arguments passed to or from other methods.

### Details

If `method="viterbi"`, this technique applies the Viterbi algorithm for HSMMs, producing the most likely sequence of states given the observed data. If `method="smoothed"`, then the individually most likely (or smoothed) state sequence is produced, along with a matrix with the respective probabilities for each state. This method is different to predict.hsmm in that it takes the output from `hsmmspec` as input ie. it is useful for people who already know their model parameters.

### Value

Returns a `hsmm.data` object, suitable for plotting.

`newdata` | A vector or data.frame of observations
`s` | A vector containing the reconstructed state sequence
`N` | The lengths of each sequence
`p` | A matrix where the rows represent time steps and the columns are the probability for the respective state (only produced when `method="smoothed"`)

### Author(s)

Jared O'Connell jaredoconnell@gmail.com

### References

Guedon, Y. (2003), Estimating hidden semi-Markov chains from discrete sequences, Journal of Computational and Graphical Statistics, Volume 12, Number 3, page 604-639 - 2003

### See Also

`hsmmspec`, `predict.hsmm`

### Examples

    J <- 3
    init <- c(0,0,1)
    P <- matrix(c(0,.1,.4,.5,0,.6,.5,.9,0),nrow=J)
    B <- list(mu=c(10,15,20),sigma=c(2,1,1.5))
    d <- list(lambda=c(10,30,60),shift=c(10,100,30),type='poisson')
    model <- hsmmspec(init,P,parms.emission=B,sojourn=d,dens.emission=dnorm.hsmm)
    train <- simulate(model,r=rnorm.hsmm,nsim=100,seed=123456)
    mean(predict(model,train,M=500)$s!=train$s) #error rate when true model is known

[Package mhsmm version 0.4.16 Index]