ssu_test implements the SSU statistic of Kurozumi & Nishi
(2025): a sup-type test for a bubble based on testing for a
stochastic (rather than deterministic) unit root in the squared
first differences, (Delta y_t)^2 = mu2 + omega*y_{t-1}^2 +
eta_t, bias-corrected against its dependence on the correlation
between this regression's and the plain ADF regression's innovations.
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.- minw
A positive integer. The minimum window size (default = \((0.01 + 1.8/\sqrt{T})T\), where T denotes the sample size).
- sig_lvl
Significance level on the package-wide 0-100 scale, one of
90,95,99(the levels Kurozumi & Nishi's Table I tabulates).
Value
An object of class ssu_test_obj: a list with the
statistic path (stat, one value per candidate end point from
minw to n), the constant crit from Table I, and
sadf (the maximum, compared against crit) and
detected.
Details
A different generalization from the rest of exuber's volatility
-robustness tests: it doesn't touch the innovation variance at all,
but instead allows the explosive AR coefficient itself to vary
stochastically over time, 1 + c1/T + a*u_t/sqrt(T), rather than
the deterministic 1 + c/T^alpha every recursive-ADF-family
statistic in this package assumes.
Only the single-recursion SSU statistic (sup over the end
point, start fixed at the beginning of the sample) is implemented –
not GSSU (the double-recursion generalization), the paper's
separate CUSUM/CUSUM-SQ statistics, or the union-of-rejections
procedure combining SSU/GSSU with SADF/GSADF.
Note
The critical value is a published closed-table constant
(Kurozumi & Nishi (2025)'s Table I, via the internal ssu_q()
helper) – no simulation needed.
Returns its own class (not radf_obj), so it does not plug into
summary()/\link{datestamp}/tidy; it has its own print() and
autoplot() methods instead. Prints its own
statistic/critical-value summary – see
vignette("naming-and-analysis", package = "exuber") for the full
picture of which functions do and don't fit that pipeline.
References
Kurozumi, E., & Nishi, M. (2025). Bubble testing with stochastically varying explosive coefficient. Journal of Time Series Analysis, 46(5), 945-965.
See also
radf for the deterministic-coefficient
recursive ADF-family alternative this complements.
Other volatility-robust tests:
radf_kp(),
radf_sbz(),
radf_sbz_union(),
radf_sign(),
radf_sign_dm(),
radf_tt()
Examples
# \donttest{
# A stochastically varying explosive root, rho_t = 1 + 3/n + 4 * u_t / sqrt(n):
# the alternative ssu_test() is built for (a fixed-root DGP is lbi_test()'s)
y <- sim_psy1(n = 150, te = 75, tf = 150, c = 3, alpha = 1, seed = 2001,
coef_noise = rnorm(149), coef_a = 4)
res <- ssu_test(y, sig_lvl = 95)
print(res)
#>
#> ── ssu_test (n = 150, minw = 23, sig_lvl = 95%, crit = 3.3) ────────────────────
#>
#> series sadf detected
#> series1 14.53 TRUE
#>
# Plot the recursive SSU statistic path against its critical value
autoplot(res)
# }
