HMM_one_step {regmhmm} | R Documentation |
Single EM Iteration for Fitting Hidden Markov Models (HMM)
Description
Execute a single iteration of the Expectation-Maximization (EM) algorithm tailored for fitting Hidden Markov Models (HMMs).
Usage
HMM_one_step(
delta,
Y_mat,
A,
B,
X_cube,
family,
eps_IRLS = 1e-04,
max_N_IRLS = 300L
)
Arguments
delta |
a vector of length S specifying the initial probabilities. |
Y_mat |
a matrix of observations of size N x T. |
A |
a matrix of size S x S specifying the transition probabilities. |
B |
a matrix of size S x (p + 1) specifying the GLM parameters of the emission probabilities. |
X_cube |
a design array of size T x p x N. |
family |
the family of the response. |
eps_IRLS |
convergence tolerance in the iteratively reweighted least squares step. |
max_N_IRLS |
the maximal number of IRLS iterations. |
Value
A list object with the following slots:
delta_hat |
the estimate of delta. |
A_hat |
the estimate of A. |
B_hat |
the estimate of B. |
log_likelihood |
the log-likelihood of the model. |
Examples
# Example usage of the function
seed_num <- 1
p_noise <- 2
N <- 100
N_persub <- 10
parameters_setting <- list(
init_vec = c(0.5, 0.5),
trans_mat = matrix(c(0.7, 0.3, 0.2, 0.8), nrow = 2, byrow = TRUE),
emis_mat = matrix(c(1, 0.5, 0.5, 2), nrow = 2, byrow = TRUE)
)
simulated_data <- simulate_HMM_data(seed_num, p_noise, N, N_persub, parameters_setting)
init_start = c(0.5, 0.5)
trans_start = matrix(c(0.5, 0.5, 0.5, 0.5), nrow = 2)
emis_start = matrix(rep(1, 8), nrow = 2)
HMM_fit_raw_one_step <- HMM_one_step(delta=as.matrix(init_start),
Y_mat=simulated_data$y_mat,
A=trans_start,
B=emis_start,
X_cube=simulated_data$X_array,
family="P")
[Package regmhmm version 1.0.0 Index]