A-quick-tour-of-MHMMR

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(samurais)

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.

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

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

Load data

data("multivtoydataset")

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(multivtoydataset$x, multivtoydataset[,c("y1", "y2", "y3")], 
                 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")


Try the samurais package in your browser

Any scripts or data that you put into this service are public.

samurais documentation built on July 28, 2019, 5:02 p.m.