## Purpose

This R-package accompanies the research paper

T Rajala, P Packalen, M Myllymäki, A Kangas (2023): Improving detection of changepoints in short and noisy time-series with local correlations: Connecting the events in pixel neighbourhoods,

Journal of Agricultural, Biological and Environmental Statistics, https://doi.org/10.1007/s13253-023-00546-1

and implements the (proof-of-concept) Gibbs sampler for the described model.

The described model was developed because no ready made solution was found for the required analysis; see below.

## Installation

In addition to CRAN dependencies, install the `looptimer`

package.

```
#
devtools::install_github("antiphon/looptimer")
# install.packages("doParallel", "foreach", "sf", "stars", "dplyr", "tidyr"))
devtools::install_github("antiphon/tjdc")
```

This package has a vignette, so consider using `build_vignettes = TRUE`

. The vignette is also readable at the package site,

## Input data

Consider a timeseries data, stored as a vector *y*_{i} = (*y*_{i1},...,*y*_{iT}) of values *y*_{it} ∈ **R** recorded at times *t*_{1} < ... < *t*_{T}.

Now consider that each timeseries *y*_{i} is recorded on the nodes of (spatial) grid. Such as grid-time data array can be called a *datacube*: Dimension x-y of the cuboid describe location, and z describes time.

See the example datasets

```
data(package = "tjdc")
data("case_medium_zoom1")
data("case_medium_zoom1_details")
data("easystripes")
```

The datasets analysed in the original paper are available at Zenodo, https://zenodo.org/record/8009800 .

## The model

The package, or more specifically the model it implements, is designed to analyse datacubes assuming

- We want to know if, and when, there is a radical change in the mean of each
*y*_{i} - The series are short,
*T*≪ 100, like*T*= 11 in the paper’s main example - The unstructed variability (noise) is relatively high, e.g.
*C**V*≫ 5% - The changepoint events are spatially correlated, so taking place in “patches” of locations

## Functionality

The package provides wrappers for

- Running the Gibbs sampler
- Parallelising: Splitting the datacube spatially with minor overlap, parallel running the model, and then gathering the posteriors

The main fitting function is `tjdc::tj_fit_m0.6`

, proceed there.

For large problems it is recommended to use the file-storage options (see `tjdc::tj_fit_m0.6`

).