| Title: | Parsimonious Hidden Markov Models for Four-Way Data | 
| Version: | 1.0.0 | 
| Description: | Implements parsimonious hidden Markov models for four-way data via expectation- conditional maximization algorithm, as described in Tomarchio et al. (2020) <doi:10.48550/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. | 
| License: | GPL (≥ 3) | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 7.1.1 | 
| Imports: | withr, snow, doSNOW, foreach, mclust, tensor, tidyr, data.table, LaplacesDemon | 
| Depends: | R (≥ 2.10) | 
| NeedsCompilation: | no | 
| Packaged: | 2021-11-29 17:24:17 UTC; Daniele | 
| Author: | Salvatore D. Tomarchio [aut, cre], Antonio Punzo [aut], Antonello Maruotti [aut] | 
| Maintainer: | Salvatore D. Tomarchio <daniele.tomarchio@unict.it> | 
| Repository: | CRAN | 
| Date/Publication: | 2021-11-30 21:20:02 UTC | 
Fitting for parsimonious hidden Markov models for four-way data
Description
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.
Usage
HMM.fit(
  X,
  k = 1:3,
  init.par = NULL,
  mod.row = "all",
  mod.col = "all",
  ncores = 1,
  verbose = FALSE,
  ret.all = FALSE
)
Arguments
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.  | 
Value
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.  | 
Examples
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")
Initialization for the ECM algorithm
Description
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.
Usage
HMM.init(X, k = 1:3, nstartR = 100, ncores = 1, verbose = FALSE)
Arguments
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.  | 
Value
init | 
 A list of objects to be used by the   | 
Examples
data(simX)
init <- HMM.init(X = simX, k = 2, nstartR = 1)
Simulated Data
Description
A simulated four-way dataset with 2 states and VII - EE covariance structure.
Usage
data(simX)
Format
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.