
Bias-Corrected Single-Bubble Dating (Kejriwal, Nguyen & Perron 2025)
Source:R/dating_knp.R
dating_knp.Rddating_knp dates a single bubble episode (origination, collapse)
by minimising a residual-omission-corrected sum of squared residuals
over a three-regime model (unit root, explosive, unit root resuming
from a shifted level after an instantaneous collapse). Plain OLS over
this model is provably inconsistent – the origination-date estimate
converges to the true collapse date, not the origination date
– which omit = TRUE (the default) fixes by dropping the
single squared residual at the candidate collapse date from the
objective before minimising.
Arguments
- data
A univariate or multivariate numeric time series object, a numeric vector or matrix, or a data.frame. A column may have leading and/or trailing
NAvalues (an uneven/unbalanced panel where series enter or exit the sample at different times) – those periods are filled withNAinbadf/bsadfand excluded from that series'adf/sadf/gsadf. InteriorNAvalues (a gap in the middle of a series) are not supported. When any series is padded this way, the panel statistic (bsadf_panel/gsadf_panel) is not available and is returned asNA, with a warning.- trim
Minimum fraction of the (differenced) sample required in each regime (default 0.05).
- omit
Use Kejriwal, Nguyen & Perron's consistency-restoring correction (default
TRUE).FALSEgives the plain, provably inconsistent OLS estimator (their Theorem 1) – kept mainly to demonstrate the correction's effect, not for practical dating.
Value
An object of class dating_knp_obj: a list with
origination, collapse (dates) and delta (the
fitted explosive AR coefficient).
Note
This is a residual-sum-of-squares model-selection dating procedure, not a hypothesis test – it needs no critical values at all.
References
Kejriwal, M., Nguyen, L., & Perron, P. (2025). An improved procedure for retrospectively dating the emergence and collapse of bubbles. Journal of Time Series Analysis, 46(5), 867-883.
See also
dating_hls, dating_pdc for related
SSR-based dating approaches.
Examples
# \donttest{
res <- dating_knp(sim_data$sim_psy1, trim = 0.05)
#> Warning: Unknown or uninitialised column: `sim_psy1`.
#> Error: unsupported class
print(res)
#> Error: object 'res' not found
# }