library(knitr)
knitr::opts_chunk$set(
    fig.align = "center",
    fig.height = 5.5,
    fig.width = 6,
    warning = FALSE,
    collapse = TRUE,
    dev.args = list(pointsize = 10),
    out.width = "90%",
    par = TRUE
)
knit_hooks$set(par = function(before, options, envir)
  { if (before && options$fig.show != "none") 
       par(family = "sans", mar = c(4.1,4.1,1.1,1.1), mgp = c(3,1,0), tcl = -0.5)
})
library(MHMMR)

Introduction

MHMMR: Flexible and user-friendly probabilistic joint segmentation of multivariate time series (or multivariate structured longitudinal data) with regime changes by a multiple regression model governed by a hidden Markov process, fitted by the EM (Baum-Welch) algorithm. This document gives a quick tour of MHMMR (version r packageVersion("MHMMR")) functionalities.

It was written in R Markdown, using the knitr package for production.

See help(package="MHMMR") for further details and references provided by citation("MHMMR").

Load data

data("toydataset")
x <- toydataset$x
y <- toydataset[,c("y1", "y2", "y3")]

Set up MHMMR model parameters

K <- 5 # Number of regimes (states)
p <- 3 # Dimension of beta (order of the polynomial regressors)
variance_type <- "heteroskedastic" # "heteroskedastic" or "homoskedastic" model

Set up EM parameters

n_tries <- 1
max_iter <- 1500
threshold <- 1e-6
verbose <- TRUE

Estimation

mhmmr <- emMHMMR(X = x, Y = y, K, p, variance_type, n_tries, 
                 max_iter, threshold, verbose)

Summary

mhmmr$summary()

Plots

Predicted time series and predicted regime probabilities

mhmmr$plot(what = "predicted")

Filtered time series and filtering regime probabilities

mhmmr$plot(what = "filtered")

Fitted regressors

mhmmr$plot(what = "regressors")

Smoothed time series and segmentation

mhmmr$plot(what = "smoothed")

Log-likelihood

mhmmr$plot(what = "loglikelihood")


fchamroukhi/MHMMR documentation built on Aug. 9, 2019, 2:05 a.m.