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