---
title: "minimal_example"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{minimal_example}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

The following is a minimal example of a simple model fit. 

```{r setup}
# Load libraries
library(RColorBrewer)
library(ggplot2)
library(dplyr)
library(reshape2)
library(latex2exp)
library(lddmm)

theme_set(theme_bw(base_size = 14))
cols = brewer.pal(9, "Set1")
```


```{r, eval = FALSE, results = 'hide', fig.show = 'hide', warning = FALSE, message = FALSE}
# Load the data
data('data')

# Descriptive plots
plot_accuracy(data)
plot_RT(data)

# Run the model
hypers = NULL
hypers$s_sigma_mu = hypers$s_sigma_b = 0.1

# Change the number of iterations when running the model
# Here the number is small so that the code can run in less than 1 minute
Niter = 25
burnin = 15
thin = 1
samp_size = (Niter - burnin) / thin

set.seed(123)
fit = LDDMM(data = data, 
             hypers = hypers, 
             Niter = Niter, 
             burnin = burnin, 
             thin = thin)

# Plot the results
plot_post_pars(data, fit, par = 'drift')
plot_post_pars(data, fit, par = 'boundary')

# Compute the WAIC to compare models
compute_WAIC(fit)
```

To extract relevant posterior draws or posterior summaries instead of
simply plotting them, one can use the functions `extract_post_mean` or
`extract_post_draws`. 
The following auxiliary functions are available by selecting the corresponding argument in the `LDDMM()` function:

* `boundaries = "constant"`: constant boundary
parameters over time, $b_{d,s}^{(i)}(t) = b_{d,s} + u_{d,s}^{(i)}$ using
the article notation
* `boundaries = "fixed"`: fixed boundaries across input
predictors, $b_{d,s}^{(i)}(t) = b_{d}(t) + u^{(i)}_{d}(t)$ using the
article notation
* `boundaries = "fixed-constant"`: fixed *and* constant boundaries, $b_{d,s}^{(i)}(t) = b_{d} + u_{d}^{(i)}$
using the article notation

.
