Skip to contents

Package

exuber-package exuber
exuber: Econometric Analysis of Explosive Time Series
exuber_functions()
Look Up exuber's Test/Procedure Functions by Family

Recursive Augmented Dickey-Fuller

Estimation and critical values, the core of the package. Each function is listed with the methods that consume its output.

radf()

radf()
Recursive Augmented Dickey-Fuller Test
summary(<radf_obj>)
Summarizing radf models
tidy(<radf_obj>)
Tidy a radf_obj object
augment(<radf_obj>)
Augment a radf_obj object
autoplot(<radf_obj>) autoplot2(<radf_obj>) shade()
Plotting radf models

Critical values

One engine per null distribution; each _cv() has a _distr() twin that returns the full simulated distribution instead of its quantiles

radf_mc_cv() radf_mc_distr()
Monte Carlo Critical Values
radf_wb_cv() radf_wb_distr()
Wild Bootstrap Critical Values
radf_wb_ps_cv() radf_wb_ps_distr()
Wild Bootstrap Critical Values (Phillips & Shi 2020)
radf_sb_cv() radf_sb_distr()
Panel Sieve Bootstrap Critical Values
tidy(<radf_cv>)
Tidy a radf_cv object
augment(<radf_cv>)
Augment a radf_cv object
tidy(<radf_distr>)
Tidy a radf_distr object
autoplot(<radf_distr>)
Plotting a radf_distr object

Joining statistics and critical values

tidy_join()
Tidy into a joint model
tidy_join(<radf_obj>)
Tidy into a joint model
augment_join()
Augment into a joint model
augment_join(<radf_obj>)
Augment into a joint model

Analysis

The core workflow, in order: check which series reject the null, date the explosive episodes, and then measure how fast each one is growing.

diagnostics()

diagnostics()
Diagnostics on hypothesis testing

datestamp()

datestamp()
Date-stamping periods of mildly explosive behavior
tidy(<ds_radf>)
Tidy a ds_radf object
autoplot(<ds_radf>)
Plotting a ds_radf object

rootstamp()

rootstamp()
Confidence Interval and Doubling Time for an Explosive Root
autoplot(<rootstamp_est>)
Plot method for rootstamp() output on a single sub-sample
autoplot(<rootstamp_episodes>)
Plot method for rootstamp() output on datestamped episodes

Heteroskedasticity-robust (time-transformed)

An alternative to radf_wb_cv() under time-varying volatility that needs no bootstrap.

radf_tt()
Time-Transformed Test for Explosive Bubbles under Non-stationary Volatility
radf_tt_cv()
Monte Carlo critical values for the time-transformed test (STADF/GSTADF)

Volatility-robust (other routes)

Further tests that remain valid when the innovation variance changes over time. See docs/volatility-robustness.md.

radf_sbz()

radf_sbz()
WLS/Kernel-Volatility Bubble Statistic (SBZ)
radf_sbz_cv()
Wild Bootstrap Critical Values for the SBZ Statistic
radf_sbz_union()
SBZ Weighted Least Squares Bubble Test with Union-of-Rejections
autoplot(<radf_sbz_union_obj>)
Plot method for radf_sbz_union() output

radf_sign()

radf_sign()
Sign-Based Bubble Test (sPWY / sPSY)
radf_sign_cv()
Monte Carlo Critical Values for the Sign-Based Test
radf_sign_dm()
Recursively Demeaned Sign-Based Bubble Test (s-bar-PWY / s-bar-PSY)
radf_sign_dm_cv()
Monte Carlo Critical Values for the Recursively Demeaned Sign-Based Test

ssu_test()

ssu_test()
Stochastic Unit Root Bubble Test (Kurozumi & Nishi 2025)
autoplot(<ssu_test_obj>)
Plot method for ssu_test() output

cusum_test()

cusum_test()
CUSUM and CUSUM-of-Squares Bubble Tests (Kurozumi & Nishi 2025)
autoplot(<cusum_test_obj>)
Plot method for cusum_test() output

radf_kp()

radf_kp()
Kernel-Purged Heteroskedasticity-Robust PSY Test

Dating procedures

Standalone dating procedures that need no critical value, and recovery dating. See docs/dating-and-root-inference.md. rootstamp() is listed under Analysis above because it is the last step of the core workflow and not an alternative to datestamp().

dating_pdc()

dating_pdc()
Sequential Sample-Splitting Bubble Dating (PDC/KS)
autoplot(<dating_pdc_obj>)
Plot method for dating_pdc() output

dating_hls()

dating_hls()
SSR/BIC Bubble Dating (Harvey, Leybourne & Sollis 2017)
autoplot(<dating_hls_obj>)
Plot method for dating_hls() output

dating_hlw()

dating_hlw()
Multi-Bubble SSR/BIC Dating (Harvey, Leybourne & Whitehouse 2020)
autoplot(<dating_hlw_obj>)
Plot method for dating_hlw() output

dating_knp()

dating_knp()
Bias-Corrected Bubble Dating (Kejriwal, Nguyen & Perron 2025)
autoplot(<dating_knp_obj>)
Plot method for dating_knp() output

radf_recovery()

radf_recovery()
Reverse-Regression Dating of Crisis Origination and Market Recovery
radf_recovery_cv()
Monte Carlo Critical Values for Reverse-Regression Recovery Dating
autoplot(<radf_recovery_obj>)
Plot method for radf_recovery() output

Real-time monitoring

Sequential, real-time bubble detection. See docs/monitoring.md. Each monitor is listed with its static, full-sample counterpart where one exists.

monitor()

monitor()
Real-Time Monitoring for Explosive Bubbles
autoplot(<monitor_obj>)
Plot method for monitor() output

monitor_cusum()

monitor_cusum()
CUSUM Real-Time Monitoring for Explosive Bubbles
autoplot(<monitor_cusum_obj>)
Plot method for monitor_cusum() output

monitor_lbi()

monitor_lbi()
Sequential LBI Monitoring for an Unknown Bubble Start Date (Breitung & Diegel 2025)
autoplot(<monitor_lbi_obj>)
Plot method for monitor_lbi() output
lbi_test()
Locally Best Invariant Test for a Bubble (Breitung & Diegel 2025)
autoplot(<lbi_test_obj>)
Plot method for lbi_test() output

monitor_quantile()

monitor_quantile()
QPWY/QPSY Recursive Quantile Monitoring (Wu, Shi & Wu 2025)
autoplot(<monitor_quantile_obj>)
Plot method for monitor_quantile() output
quantile_test()
Quantile Unit Root Test for Bubble Detection (Global Test)
autoplot(<quantile_test_obj>)
Plot method for quantile_test() output

Multivariate / panel bubble tests

Panel and cross-series tests. See docs/multivariate.md.

radf_common()

radf_common()
Common-Bubble Detection via PCA + PSY
radf_common_cv()
Critical Values for the Common-Bubble (PCA + PSY) Test

cobubble_test()

cobubble_test()
Test for Co-explosive Behaviour Between Two Series
autoplot(<cobubble_test_obj>)
Plot method for cobubble_test() output

contagion_reg()

contagion_reg()
Bubble Contagion Regression (Greenaway-McGrevy & Phillips 2016)
autoplot(<contagion_reg_obj>)
Plot method for contagion_reg() output

Simulation

Original DGPs

sim_psy1()
Simulation of a single-bubble process
sim_psy2()
Simulation of a two-bubble process
sim_ps1()
Simulation of a single-bubble process with multiple forms of collapse regime
sim_blan()
Simulation of a Blanchard (1979) / Rotermann-Wilfling (2018) bubble process
sim_evans()
Simulation of an Evans (1991) bubble process
sim_div()
Simulation of dividends

Additional DGPs

Data generating processes for cases that the original sim_*() functions of exuber do not cover: time-varying volatility, non-Gaussian innovations, long memory, and distinct multi-series and branching mechanisms. See docs/simulation-dgps.md.

sim_innov()
Simulate innovations with heavy-tailed/skewed marginal distributions
sim_vol_break()
Simulate innovations with a permanent volatility break
sim_vol_garch()
Simulate GARCH(1,1)/TGARCH(1,1) innovations
sim_vol_cir()
Simulate CIR-type stochastic-volatility innovations
sim_vol_sv()
Simulate AR(1) lognormal stochastic-volatility innovations
sim_fi()
Simulate fractionally-integrated (long-memory) innovations
sim_common()
Simulation of a latent common-factor bubble across multiple series
sim_coexplosive()
Simulation of a bivariate co-explosive pair
sim_tree()
Simulation of a stochastic branching-tree bubble
sim_mar()
Simulation of a mixed causal-noncausal AR(1,1) bubble
sim_msbubble()
Simulation of a Markov-switching present-value bubble
sim_falsebubble()
Simulation of a deterministic technology-adoption "false bubble" null

Bundled data

sim_data sim_data_wdate
Simulated dataset

Helpers

psy_minw() psy_ds()
Helper functions in accordance to PSY(2015)
index() `index<-`()
Retrieve/Replace the index
series_names() `series_names<-`()
Retrieve/Replace series names
ps_tb()
Helper function to find tb from Phillips and Shi (2020)
scale_exuber_manual() theme_exuber()
Exuber scale and theme functions