sim.hmm0norm2d: Simulation of a Bivariate HMM with Extra Zeros In HMMextra0s: Hidden Markov Models with Extra Zeros

Description

Simulates the observed process and the associated binary variable of a bivariate HMM with extra zeros.

Usage

 1 sim.hmm0norm2d(mu, sig, pie, gamma, delta, nsim = 1, mc.hist = NULL, seed = NULL)

Arguments

 pie is a vector of length m, the jth element of which is the probability of Z=1 when the process is in state j. gamma is the transition probability matrix (m * m) of the hidden Markov chain. mu is an m * 2 matrix, the jth row of which is the mean of the bivariate (Gaussian) distribution of the observations in state j. sig is a 2 * 2 * m array. The matrix sig[,,j] is the variance-covariance matrix of the bivariate (Gaussian) distribution of the observations in state j. delta is a vector of length m, the initial distribution vector of the Markov chain. nsim is an integer, the number of observations to simulate. mc.hist is a vector containing the history of the hidden Markov chain. This is mainly used for forecasting. If we fit an HMM to the data, and obtained the Viterbi path for the data, we can let mc.hist equal to the Viterbi path and then forecast futrue steps by simulation. seed is the seed for simulation. Default seed=NULL.

Value

 x is the simulated observed process. z is the simulated binary data with the value 1 indicating that an event was observed and 0 otherwise. mcy is the simulated hidden Markov chain.

Ting Wang

References

Wang, T., Zhuang, J., Buckby, J., Obara, K. and Tsuruoka, H. (2018) Identifying the recurrence patterns of non-volcanic tremors using a 2D hidden Markov model with extra zeros. Journal of Geophysical Research, doi: 10.1029/2017JB015360.

Examples

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ## Simulating a sequence of data without using any history. pie <- c(0.002,0.2,0.4) gamma <- matrix(c(0.99,0.007,0.003, 0.02,0.97,0.01, 0.04,0.01,0.95),byrow=TRUE, nrow=3) mu <- matrix(c(35.03,137.01, 35.01,137.29, 35.15,137.39),byrow=TRUE,nrow=3) sig <- array(NA,dim=c(2,2,3)) sig[,,1] <- matrix(c(0.005, -0.001, -0.001,0.01),byrow=TRUE,nrow=2) sig[,,2] <- matrix(c(0.0007,-0.0002, -0.0002,0.0006),byrow=TRUE,nrow=2) sig[,,3] <- matrix(c(0.002,0.0018, 0.0018,0.003),byrow=TRUE,nrow=2) delta <- c(1,0,0) y <- sim.hmm0norm2d(mu,sig,pie,gamma,delta, nsim=5000) ## Forecast future tremor occurrences and locations when tremor occurs. R <- y\$x Z <- y\$z HMMEST <- hmm0norm2d(R, Z, pie, gamma, mu, sig, delta) Viterbi3 <- Viterbi.hmm0norm2d(R,Z,HMMEST) y <- sim.hmm0norm2d(mu,sig,pie,gamma,delta,nsim=2,mc.hist=Viterbi3\$y) # This only forecasts two steps forward when we use nsim=2. # One can increase nsim to get longer simulated forecasts.

HMMextra0s documentation built on Aug. 3, 2021, 9:06 a.m.