Title: | Parsimonious Hidden Markov Models for Four-Way Data |
---|---|
Description: | Implements parsimonious hidden Markov models for four-way data via expectation- conditional maximization algorithm, as described in Tomarchio et al. (2020) <arXiv:2107.04330>. The matrix-variate normal distribution is used as emission distribution. For each hidden state, parsimony is reached via the eigen-decomposition of the covariance matrices of the emission distribution. This produces a family of 98 parsimonious hidden Markov models. |
Authors: | Salvatore D. Tomarchio [aut, cre], Antonio Punzo [aut], Antonello Maruotti [aut] |
Maintainer: | Salvatore D. Tomarchio <[email protected]> |
License: | GPL (>= 3) |
Version: | 1.0.0 |
Built: | 2024-12-12 06:54:41 UTC |
Source: | CRAN |
Fits, by using an ECM algorithm, parsimonious hidden Markov models to the given four-way data. Parallel computing is implemented and highly recommended for a faster model fitting. The Bayesian information criterion (BIC) is used to select the best fitting model.
HMM.fit( X, k = 1:3, init.par = NULL, mod.row = "all", mod.col = "all", ncores = 1, verbose = FALSE, ret.all = FALSE )
HMM.fit( X, k = 1:3, init.par = NULL, mod.row = "all", mod.col = "all", ncores = 1, verbose = FALSE, ret.all = FALSE )
X |
An array of dimension |
k |
An integer or a vector indicating the number of states of the models. |
init.par |
The initial values for starting the algorithms, as produced by the |
mod.row |
A character vector indicating the parsimonious structure of the row covariance matrix. Possible values are: "EII", "VII", "EEI", "VEI", "EVI", "VVI", "EEE", "VEE", "EVE", "EEV", "VVE", "VEV", "EVV", "VVV" or "all". When "all" is used, all of the 14 row parsimonious structures are considered. |
mod.col |
A character vector indicating the parsimonious structure of the column covariance matrix. Possible values are: "II", "EI", "VI", "EE", "VE", "EV", "VV", or "all". When "all" is used, all of the 7 column parsimonious structures are considered. |
ncores |
A positive integer indicating the number of cores used for running in parallel. |
verbose |
A logical indicating whether the running output should be displayed. |
ret.all |
A logical indicating whether to report the results of all the models or only those of the best model according to the BIC. |
A list with the following elements:
all.models |
The results related to the all the fitted models (only when |
BicWin |
The best fitting model according to the BIC. |
Summary |
A quick table showing summary results for the best fitting model according to the BIC. |
c.time |
Provides information on the computational times required to fit all the models for each state. |
data(simX) init <- HMM.init(X = simX, k = 2, nstartR = 1) res <- HMM.fit(X = simX, k = 2, init.par = init, mod.row = "VII", mod.col = "EE")
data(simX) init <- HMM.init(X = simX, k = 2, nstartR = 1) res <- HMM.fit(X = simX, k = 2, init.par = init, mod.row = "VII", mod.col = "EE")
Runs the initialization of the ECM algorithm used for fitting the parsimonious hidden Markov models. Parallel computing is implemented and highly recommended for a faster calculation.
HMM.init(X, k = 1:3, nstartR = 100, ncores = 1, verbose = FALSE)
HMM.init(X, k = 1:3, nstartR = 100, ncores = 1, verbose = FALSE)
X |
An array of dimension |
k |
An integer or a vector indicating the number of states of the models. |
nstartR |
An integer specifying the number of random starts to be considered. |
ncores |
A positive integer indicating the number of cores used for running in parallel. |
verbose |
A logical indicating whether the running output should be displayed. |
init |
A list of objects to be used by the |
data(simX) init <- HMM.init(X = simX, k = 2, nstartR = 1)
data(simX) init <- HMM.init(X = simX, k = 2, nstartR = 1)
A simulated four-way dataset with 2 states and VII - EE covariance structure.
data(simX)
data(simX)
A four-way array having p = 2
variables in the rows, r = 3
variables in the columns,
n = 50
data observations and t = 10
times.