make_model {hhsmm} | R Documentation |
make a hhsmmspec model for a specified emission distribution
Description
Provides a hhsmmspec model by using the parameters
obtained by initial_estimate
for the emission distribution
characterized by mstep and dens.emission
Usage
make_model(
par,
mstep = mixmvnorm_mstep,
dens.emission = dmixmvnorm,
semi = NULL,
M,
sojourn
)
Arguments
par |
the parameters obtained by |
mstep |
the mstep function of the EM algorithm with an style simillar to that of |
dens.emission |
the density of the emission distribution with an style simillar to that of |
semi |
logical and of one of the following forms:
|
M |
maximum number of waiting times in each state |
sojourn |
the sojourn time distribution which is one of the following cases:
|
Value
a hhsmmspec
model containing the following items:
-
init
initial probabilities of states -
transition
transition matrix -
parms.emission
parameters of the mixture normal emission (mu
,sigma
,mix.p
) -
sojourn
list of sojourn distribution parameters and itstype
-
dens.emission
the emission probability density function -
mstep
the M step function of the EM algorithm -
semi
a logical vector of length nstate with the TRUE associated states are considered as semi-Markovian
Author(s)
Morteza Amini, morteza.amini@ut.ac.ir, Afarin Bayat, aftbayat@gmail.com
Examples
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)
clus = initial_cluster(train, nstate = 3, nmix = c(2, 2, 2), ltr = FALSE,
final.absorb = FALSE, verbose = TRUE)
par = initial_estimate(clus, verbose = TRUE)
model = make_model(par, semi = NULL, M = max(train$N), sojourn = "gamma")