simuHMM function

Simulate Hidden Markov model with normally distributed errors

Simulate Hidden Markov model with normally distributed errors

This function simulates a Hidden Markov Model process.

simuHMM(mdl_h0, burnin = 100)

Arguments

  • mdl_h0: List containing the following DGP parameters

    • n: Length of series.
    • k: Number of regimes.
    • mu: A (k x q) vector of means.
    • sigma: A (q x q) covariance matrix.
    • q: Number of series.
    • P: A (k x k) transition matrix (columns must sum to one).
    • eps: An optional (T+burnin x q) matrix with standard normal errors to be used. Errors will be generated if not provided.
    • Z: A (T x qz) matrix with exogenous regressors (Optional) and where qz is the number of exogenous variables.
    • betaZ: A (qz x q) matrix true coefficients on exogenous regressors (Optional) and where qz is the number of exogenous variables.
  • burnin: Number of simulated observations to remove from beginning. Default is 100.

Returns

List with simulated series and its DGP parameters.

Examples

set.seed(1234) # ----- Univariate ----- # # Define DGP mdl_hmm <- list(n = 1000, q = 1, mu = as.matrix(c(5, -2)), sigma = list(as.matrix(5.0), as.matrix(7.0)), k = 2, P = rbind(c(0.90, 0.10), c(0.10, 0.90))) # Simulate process using simuHMM() function y_hmm_simu <- simuHMM(mdl_hmm) plot(y_hmm_simu) # ----- Multivariate ----- # # Define DGP mdl_hmm <- list(n = 1000, q = 2, mu = rbind(c(5, -2), c(10, 2)), sigma = list(rbind(c(5.0, 1.5), c(1.5, 1.0)), rbind(c(7.0, 3.0), c(3.0, 2.0))), k = 2, P = rbind(c(0.90, 0.10), c(0.10, 0.90))) # Simulate process using simuHMM() function y_hmm_simu <- simuHMM(mdl_hmm) plot(y_hmm_simu)
  • Maintainer: Gabriel Rodriguez Rondon
  • License: GPL (>= 2)
  • Last published: 2025-02-24