Learn R Programming

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) and Pavlidis et al. (2016). 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

# Install release version from CRAN
install.packages("exuber")

You can install the development version of exuber from GitHub.

# install.packages("devtools")
devtools::install_github("kvasilopoulos/exuber")

If you encounter a clear bug, please file a reproducible example on GitHub.

Usage


library(exuber)

rsim_data <- radf(sim_data)

summary(rsim_data)
#> Using `radf_crit` for `cv`.
#> 
#> -- Summary (minw = 19, lag = 0) ------------------- Monte Carlo (nrep = 2000) --
#> 
#> psy1 :
#> # A tibble: 3 x 5
#>   stat  tstat   `90`    `95`  `99`
#>   <fct> <dbl>  <dbl>   <dbl> <dbl>
#> 1 adf   -2.46 -0.413 -0.0812 0.652
#> 2 sadf   1.95  0.988  1.29   1.92 
#> 3 gsadf  5.19  1.71   1.97   2.57 
#> 
#> psy2 :
#> # A tibble: 3 x 5
#>   stat  tstat   `90`    `95`  `99`
#>   <fct> <dbl>  <dbl>   <dbl> <dbl>
#> 1 adf   -2.86 -0.413 -0.0812 0.652
#> 2 sadf   7.88  0.988  1.29   1.92 
#> 3 gsadf  7.88  1.71   1.97   2.57 
#> 
#> evans :
#> # A tibble: 3 x 5
#>   stat  tstat   `90`    `95`  `99`
#>   <fct> <dbl>  <dbl>   <dbl> <dbl>
#> 1 adf   -5.83 -0.413 -0.0812 0.652
#> 2 sadf   5.28  0.988  1.29   1.92 
#> 3 gsadf  5.99  1.71   1.97   2.57 
#> 
#> div :
#> # A tibble: 3 x 5
#>   stat  tstat   `90`    `95`  `99`
#>   <fct> <dbl>  <dbl>   <dbl> <dbl>
#> 1 adf   -1.95 -0.413 -0.0812 0.652
#> 2 sadf   1.11  0.988  1.29   1.92 
#> 3 gsadf  1.34  1.71   1.97   2.57 
#> 
#> blan :
#> # A tibble: 3 x 5
#>   stat  tstat   `90`    `95`  `99`
#>   <fct> <dbl>  <dbl>   <dbl> <dbl>
#> 1 adf   -5.15 -0.413 -0.0812 0.652
#> 2 sadf   3.93  0.988  1.29   1.92 
#> 3 gsadf 11.0   1.71   1.97   2.57

diagnostics(rsim_data)
#> Using `radf_crit` for `cv`.
#> 
#> -- Diagnostics (option = gsadf) --------------------------------- Monte Carlo --
#> 
#> psy1:     Rejects H0 at the 1% significance level
#> psy2:     Rejects H0 at the 1% significance level
#> evans:    Rejects H0 at the 1% significance level
#> div:      Cannot reject H0 
#> blan:     Rejects H0 at the 1% significance level

datestamp(rsim_data)
#> Using `radf_crit` for `cv`.
#> 
#> -- Datestamp (min_duration = 0) --------------------------------- Monte Carlo --
#> 
#> psy1 :
#>   Start Peak End Duration   Signal Ongoing
#> 1    44   48  56       12 positive   FALSE
#> 
#> psy2 :
#>   Start Peak End Duration   Signal Ongoing
#> 1    22   40  41       19 positive   FALSE
#> 2    62   70  71        9 positive   FALSE
#> 
#> evans :
#>   Start Peak End Duration   Signal Ongoing
#> 1    20   20  21        1 positive   FALSE
#> 2    44   44  45        1 positive   FALSE
#> 3    66   67  68        2 positive   FALSE
#> 
#> blan :
#>   Start Peak End Duration   Signal Ongoing
#> 1    34   36  37        3 positive   FALSE
#> 2    84   86  87        3 positive   FALSE

autoplot(rsim_data)
#> Using `radf_crit` for `cv`.


Please note that the ‘exuber’ project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Copy Link

Version

Install

install.packages('exuber')

Monthly Downloads

441

Version

1.0.2

License

GPL-3

Issues

Pull Requests

Stars

Forks

Last Published

March 22nd, 2023

Functions in exuber (1.0.2)

radf_crit

Stored Monte Carlo Critical Values
radf_mc_cv

Monte Carlo Critical Values
psy_minw

Helper functions in accordance to PSY(2015)
ps_tb

Helper function to find tb from the Phillips and Shi (2020)
radf

Recursive Augmented Dickey-Fuller Test
%>%

Pipe operator
radf_sb_cv

Panel Sieve Bootstrap Critical Values
install_exuberdata

Install exuberdata Package
radf_wb_cv

Wild Bootstrap Critical Values
index-rd

Retrieve/Replace the index
reexports

Objects exported from other packages
radf_wb_cv2

Wild Bootstrap Critical Values
sim_div

Simulation of dividends
sim_evans

Simulation of an Evans (1991) bubble process
scale_exuber_manual

Exuber scale and theme functions
series_names

Retrieve/Replace series names
sim_psy1

Simulation of a single-bubble process
sim_psy2

Simulation of a two-bubble process
tidy_join.radf_obj

Tidy into a joint model
summary.radf_obj

Summarizing radf models
sim_ps1

Simulation of a single-bubble process with multiple forms of collapse regime
tidy_join

Tidy into a joint model
tidy.radf_cv

Tidy a radf_cv object
tidy.ds_radf

Tidy a ds_radf object
tidy.radf_obj

Tidy a radf_obj object
sim_blan

Simulation of a Blanchard (1979) bubble process
sim_data

Simulated dataset
tidy.radf_distr

Tidy a radf_distr object
calc_pvalue

Calculate p-values
autoplot.radf_distr

Plotting a radf_distr object
autoplot.ds_radf

Plotting a ds_radf object
autoplot.radf_obj

Plotting radf models
diagnostics

Diagnostics on hypothesis testing
datestamp

Date-stamping periods of mildly explosive behavior
exuber-deprecated

Deprecated functions in package exuber.
exuber

exuber: Econometric Analysis of Explosive Time Series
autoplot2

Create a complete ggplot appropriate to a particular data type
exuber-defunct

Defunct functions in package exuber.