make_model: make a hhsmmspec model for a specified emission distribution

View source: R/make-model.R

make_modelR 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 initial_estimate

mstep

the mstep function of the EM algorithm with an style simillar to that of mixmvnorm_mstep

dens.emission

the density of the emission distribution with an style simillar to that of dmixmvnorm

semi

logical and of one of the following forms:

  • a logical value: if TRUE all states are considered as semi-Markovian else Markovian

  • a logical vector of length nstate: the TRUE associated states are considered as semi-Markovian and FALSE associated states are considered as Markovian

  • NULL if ltr=TRUE then semi = c(rep(TRUE,nstate-1),FALSE), else semi = rep(TRUE,nstate)

M

maximum number of waiting times in each state

sojourn

the sojourn time distribution which is one of the following cases:

  • "nonparametric" non-parametric sojourn distribution

  • "nbinom" negative binomial sojourn distribution

  • "logarithmic" logarithmic sojourn distribution

  • "poisson" poisson sojourn distribution

  • "gamma" gamma sojourn distribution

  • "weibull" weibull sojourn distribution

  • "lnorm" log-normal sojourn distribution

  • "auto" automatic determination of the sojourn distribution using the chi-square test

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 its type

  • 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")


hhsmm documentation built on Aug. 8, 2023, 9:06 a.m.

Related to make_model in hhsmm...