---
title: "reslr: quick start guide"
author: "Maeve Upton, Andrew Parnell and Niamh Cahill"
date: "`r Sys.Date()`"
output: 
  rmarkdown::html_vignette:
       toc: true
vignette: >
  %\VignetteIndexEntry{reslr: quick start guide}
  %\VignetteEncoding{UTF-8}
  %\VignetteEngine{knitr::rmarkdown}
editor_options: 
  chunk_output_type: console
---
```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"#,
  #fig.path = "qs_vig/"
)
options(rmarkdown.html_vignette.check_title = FALSE)
```
## Step 1: install `reslr`

Use:
```{r, eval = FALSE, results='hide',message=FALSE}
# Not on CRAN yet
#install.packages("reslr")
#devtools::install_github("maeveupton/reslr")
install_github("maeveupton/reslr")
```
then,
```{r, start, message=FALSE}
library(reslr)
```

Note: The JAGS software is a requirement for this instruction sheet and refer back to main vignettes for more information.

## Step 2: load in the data into `reslr`

There is a large example dataset included in the `reslr` package called `NAACproxydata`. In this example, we demonstrate how to include proxy record data which is stored in a csv file. This csv file of data can be found in the package and the `readr` function reads the csv file:

```{r, run_data_qs, eval = TRUE}
path_to_data <- system.file("extdata", "one_data_site_ex.csv", package = "reslr")
example_one_datasite <- read.csv(path_to_data)
```

Using the `reslr_load` function to read in the data into the `reslr` package:
```{r, loadslr_qs, eval = TRUE, message=FALSE, results='hide'}
example_one_site_input <- reslr_load(
  data = example_one_datasite)
```


## Step 3: plot the data

```{r, plotdata_qs,fig.align = 'center',fig.width = 7,fig.height = 5,eval = TRUE}
plot(
  x = example_one_site_input,
  title = "Plot of the raw data",
  xlab = "Year (CE)",
  ylab = "Relative Sea Level (m)",
  plot_tide_gauges = FALSE,
  plot_caption = TRUE
)
```

## Step 4:  Run your statistical model and check convergence

Select your modelling technique from the modelling options available:

| Statistical Model | Model Information | `model_type` code | 
| ---- | ------- | -- |
| Errors in variables simple linear regression | A straight line of best fit taking account of any age and measurement errors in the RSL values using the method of Cahill et al (2015). Use for single proxy site. | **"eiv_slr_t"** |
| Errors in variables change point model | An extension of the linear regression modelling process. It uses piece-wise linear sections and estimates where/when trend changes occur in the data (Cahill et al. 2015). | **"eiv_cp_t"** |
| Errors in variables integrated Gaussian Process | A non linear fit that utilities a Gaussian process prior on the rate of sea-level change that is then integrated (Cahill et al. 2015). | **"eiv_igp_t"** |
| Noisy Input spline in time | A non-linear fit using regression splines using the method of Upton et al (2023). | **"ni_spline_t"** |
| Noisy Input spline in space and time | A non-linear fit for a set of sites across a region using the method of Upton et al (2023). | **"ni_spline_st"**|
| Noisy Input Generalised Additive model for the decomposition of the RSL signal | A non-linear fit for a set of sites across a region and provides a decomposition of the signal into regional, local-linear (commonly GIA) and local non-linear components. Again this full model is as described in Upton et al (2023). | **"ni_gam_decomp"** |


For this example, it is a single site and we are interested in how it varies over time select the Noisy Input spline in time. If it was multiple sites, we recommend using a spatial temporal model, i.e. Noisy Input spline in space and time, or for decomposing the signal, i.e. Noisy Input Generalised Additive model. 

Once the model is chosen use the `reslr_mcmc` function to run it:

```{r, runslr_qs,eval = TRUE,message=FALSE, results='hide'}
res_one_site_example <- reslr_mcmc(
  input_data = example_one_site_input,
  model_type = "ni_spline_t",
  CI = 0.95
)
```

The convergence of the algorithm is examined and he parameter estimates from the model can be investigated using the following:
```{r, summaryslr_qs, eval = TRUE}
summary(res_one_site_example)
```

## Step 5: Plot the results
The model fit results can be visualised using the following function:
```{r, plotres_qs, fig.align = 'center',fig.width = 7,fig.height = 5,eval = TRUE}
plot(res_one_site_example,
  xlab = "Year (CE)",
  ylab = "Relative Sea Level (m)",
  plot_type = "model_fit_plot"
)
```
For the rate of change plot use:

```{r, plotresrate_qs, fig.align = 'center',fig.width = 7,fig.height = 5,eval = TRUE}
plot(res_one_site_example,
  plot_type = "rate_plot"
)
```

To examine the data creating these plots the user types the following:
```{r, dataframeslrres_qs, eval = TRUE}
output_dataframes <- res_one_site_example$output_dataframes
head(output_dataframes)
```


To examine the additional options in the `reslr` package, see the main vignette.
