View source: R/predict-hhsmm.R
predict.hhsmm | R Documentation |
Predicts the state sequence of a fitted hidden hybrid Markov/semi-Markov model estimated by
hhsmmfit
for a new (test) data of class "hhsmmdata"
with an optional prediction of the
residual useful lifetime (RUL) for a left to right model
## S3 method for class 'hhsmm'
predict(
object,
newdata,
...,
future = 0,
method = "viterbi",
RUL.estimate = FALSE,
confidence = "max",
conf.level = 0.95
)
object |
a fitted model of class |
newdata |
a new (test) data of class |
... |
additional parameters for the dens.emission and mstep functions |
future |
number of future states to be predicted |
method |
the prediction method with two options:
|
RUL.estimate |
logical. if TRUE the residual useful lifetime (RUL) of a left to right model, as well as the prediction interval will also be predicted (default is FALSE) |
confidence |
the method for obtaining the prediction interval of the RUL, with two cases:
|
conf.level |
the confidence level of the prediction interval (default 0.95) |
a list containing the following items:
x
the observation sequence
s
the predicted state sequence
N
the vector of sequence lengths
p
the state probabilities
RUL
the point predicts of the RUL
RUL.low
the lower bounds for the prediction intervals of the RUL
RUL.up
the upper bounds for the prediction intervals of the RUL
Morteza Amini, morteza.amini@ut.ac.ir, Afarin Bayat, aftbayat@gmail.com
Guedon, Y. (2005). Hidden hybrid Markov/semi-Markov chains. Computational statistics and Data analysis, 49(3), 663-688.
OConnell, J., & Hojsgaard, S. (2011). Hidden semi Markov models for multiple observation sequences: The mhsmm package for R. Journal of Statistical Software, 39(4), 1-22.
predict.hhsmmspec
J <- 3
initial <- c(1, 0, 0)
semi <- c(FALSE, TRUE, FALSE)
P <- matrix(c(0.8, 0.1, 0.1, 0.5, 0, 0.5, 0.1, 0.2, 0.7), nrow = J,
byrow = TRUE)
par <- list(mu = list(list(7, 8), list(10, 9, 11), list(12, 14)),
sigma = list(list(3.8, 4.9), list(4.3, 4.2, 5.4), list(4.5, 6.1)),
mix.p = list(c(0.3, 0.7), c(0.2, 0.3, 0.5), c(0.5, 0.5)))
sojourn <- list(shape = c(0, 3, 0), scale = c(0, 10, 0), type = "gamma")
model <- hhsmmspec(init = initial, transition = P, parms.emis = par,
dens.emis = dmixmvnorm, sojourn = sojourn, semi = semi)
train <- simulate(model, nsim = c(10, 8, 8, 18), seed = 1234, remission = rmixmvnorm)
test <- simulate(model, nsim = c(7, 3, 3, 8), seed = 1234, remission = rmixmvnorm)
clus = initial_cluster(train, nstate = 3, nmix = c(2, 2, 2),ltr = FALSE,
final.absorb = FALSE, verbose = TRUE)
semi <- c(FALSE, TRUE, FALSE)
initmodel1 = initialize_model(clus = clus,sojourn = "gamma",
M = max(train$N), semi = semi)
fit1 = hhsmmfit(x = train, model = initmodel1, M = max(train$N))
yhat1 <- predict(fit1, test)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.