An open API service indexing awesome lists of open source software.

https://github.com/kvasilopoulos/exuber

Econometric Analysis of Explosive Time Series
https://github.com/kvasilopoulos/exuber

dickey-fuller explosive-dynamics simulation time-series

Last synced: 3 months ago
JSON representation

Econometric Analysis of Explosive Time Series

Awesome Lists containing this project

README

          

---
output:
github_document:
html_preview: true
---

```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/"
)
```

# exuber

[![CRAN status](https://www.r-pkg.org/badges/version/exuber)](https://CRAN.R-project.org/package=exuber)
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)
[![R-CMD-check](https://github.com/kvasilopoulos/exuber/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/kvasilopoulos/exuber/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/kvasilopoulos/exuber/graph/badge.svg)](https://app.codecov.io/gh/kvasilopoulos/exuber)

Testing for and dating periods of explosive dynamics (exuberance) in time series
using the univariate and panel recursive unit root tests proposed by [Phillips et al. (2015)](https://doi.org/10.1111/iere.12132) and [Pavlidis et al. (2016)]( https://doi.org/10.1007/s11146-015-9531-2). The recursive least-squares algorithm utilizes the matrix inversion lemma to avoid matrix inversion which results in significant speed improvements. Simulation of a variety of periodically-collapsing bubble processes.

### Overview

Testing for explosive dynamics is comprised of two distinct parts :

* Estimation
* Critical Values

**Some Context:** Conventional testing techniques compute critical values,and p-values from a standard distribution, where the user does not need to specify critical values explicitly. However, the recent literature in explosive dynamics require the use of non-standard distributions, which require the use of techniques that sample empirical distributions in order to calculate the critical values.

#### Estimation

The cornerstone function of the package is:

* `radf()`: Recursive Augmented Dickey-Fuller Test.

This function offers a vectorized estimation (i.e. single and/or multiple time-series)
for individual and panel estimation. The estimation can parse data from multiple classes and handle dates as index.

#### Critical Values

There are several options for generating critical values:

* `radf_mc_cv()`: Monte Carlo
* `radf_wb_cv()`: Wild Bootstrap
* `radf_sb_cv()`: Sieve Bootstrap (Panel)

On default `exuber` will use Monte Carlo simulated critical values if no other option is provided. The package offers these critical values in the form of `data` (up to 600 observations), that are obtained with the `mc_cv()` function.

### Analysis

For the analysis you should include both the output from estimation (`object`) and critical values (`cv`). The below methods break the process into small simple steps:

* `summary()` summarizes the model.
* `diagnostics()` shows which series reject the null hypothesis .
* `datestamp()` computes the origination, termination and duration of episodes (if any).

These combined provide a comprehensive analysis on the exuberant behavior of the model.

### Installation

```{r installation, eval = FALSE}
# Install release version from CRAN
install.packages("exuber")
```

You can install the development version of exuber from GitHub.

```{r installation-dev, eval = FALSE}
# install.packages("devtools")
devtools::install_github("kvasilopoulos/exuber")
```

If you encounter a clear bug, please file a reproducible example on [GitHub](https://github.com/kvasilopoulos/exuber/issues).

### Usage

```{r usage}

library(exuber)

rsim_data <- radf(sim_data)

summary(rsim_data)

diagnostics(rsim_data)

datestamp(rsim_data)

autoplot(rsim_data)

```

---

Please note that the 'exuber' project is released with a [Contributor Code of Conduct](https://kvasilopoulos.github.io/exuber/CODE_OF_CONDUCT). By contributing to this project, you agree to abide by its terms.