---
title: "A-quick-tour-of-mixHMMR"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{A-quick-tour-of-mixHMMR}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include=FALSE}
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)
})
```

```{r, message = FALSE, echo = FALSE}
library(flamingos)
```

# Introduction

**mixHMMR**: Simultaneous model-based clustering and segmentation of 
heterogeneous and dynamical functional data (curves/times series) with changes 
in regime by a mixture of gaussian regression models with hidden Markov 
processes, fitted by the EM/Baum-Welch algorithm.

It was written in R Markdown, using the [knitr](https://cran.r-project.org/package=knitr)
package for production. 

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

# Load data

```{r}
data("toydataset")
x <- toydataset$x
Y <- t(toydataset[,2:ncol(toydataset)])
```

# Set up mixHMMR model parameters

```{r}
K <- 3 # Number of clusters
R <- 3 # Number of regimes/states
p <- 1 # Degree of the polynomial regression
variance_type <- "heteroskedastic" # "heteroskedastic" or "homoskedastic" model
```

# Set up EM parameters

```{r}
ordered_states <- TRUE
n_tries <- 1
max_iter <- 1000
init_kmeans <- TRUE
threshold <- 1e-6
verbose <- TRUE
```

# Estimation

```{r, echo=TRUE}
mixhmmr <- emMixHMMR(X = x, Y = Y, K, R, p, variance_type, ordered_states, 
                     init_kmeans, n_tries, max_iter, threshold, verbose)
```

# Summary

```{r}
mixhmmr$summary()
```

# Plots

```{r}
mixhmmr$plot()
```
