Heteroskedasticity-robust (time-transformed)
Time-Transformed Test for Explosive Bubbles under Non-stationary Volatility
radf_tt radf_tt(data, minw = NULL, kernel = c("uniform", "gaussian"), h = NULL) radf_tt computes the STADF and GSTADF test statistics of Kurozumi, Skrobotov & Tsarev, a heteroskedasticity-robust alternative to radf that needs no bootstrap. It time-deforms the series with a nonparametric estimate of its variance profile, after which the usual asymptotic recursive sup-ADF critical values for homoskedastic errors apply.
Arguments
| data | A univariate or multivariate numeric time series object, a numeric
vector or matrix, or a data.frame. A column may have leading or trailing
NA values, which describes an unbalanced panel in which series enter or
exit the sample at different times. Those periods are filled with NA in
badf and bsadf and excluded from the adf, sadf and
gsadf of that series. Interior NA values (a gap in the middle of
a series) are not supported. When any series is padded in this way, the panel
statistics (bsadf_panel and gsadf_panel) are not available, and
the function returns NA for them with a warning. |
| minw | A positive integer. The minimum window size (default = , where T denotes the sample size). |
| kernel | Kernel used in the local variance-profile regression,
"uniform" (default, as in the simulations of the paper) or
"gaussian". |
| h | Bandwidth for the variance-profile kernel regression. The default is
T^(-2/5), the midpoint on the log scale of the cross-validation search
range of the paper. |
Value
An object of class radf_tt_obj/radf_obj: the same adf/badf/sadf/bsadf/gsadf list as for radf, computed on the time-transformed series. It works with summary(), datestamp(), tidy() and autoplot() when paired with radf_tt_cv.
Details
We recommend radf_tt_cv for the critical values. They are pivotal (asymptotically free of the volatility process), so they do not have to be recomputed for each dataset, unlike a bootstrap. The wild bootstrap of Harvey, Leybourne, Sollis & Taylor in radf_wb_cv is a bootstrap-based alternative. Consider it if non-pivotality or the finite-sample robustness of the bootstrap is a specific concern.
Status
[Experimental]
Examples
These examples are copied from the package's own documentation and are run by R CMD check on every release.
The printed output (after #>) and the plots were produced by running them against the current package source.
# Volatility triples half-way through the sample. This is the case of
# non-stationary volatility that this test is built for, and plain radf()
# over-rejects here
y <- sim_psy1(n = 200, seed = 1, e = sim_vol_break(199))
res <- radf_tt(y, minw = 20)
print(res)
#>
#> ── radf_tt (minw = 20, kernel = uniform) ───────────────────────────────────────
#>
#> series adf sadf gsadf
#> series1 -0.9972 3.275 4.229
cv <- radf_tt_cv(n = 200, minw = 20)
summary(res, cv = cv)
#>
#> ── Summary (minw = 20, lag = 0) ────────── Time-Transformed MC (nboot = 2000) ──
#>
#> series1 :
#> # A tibble: 3 × 5
#> stat tstat `90` `95` `99`
#> <fct> <dbl> <dbl> <dbl> <dbl>
#> 1 adf -0.997 0.833 1.21 1.97
#> 2 sadf 3.27 2.31 2.65 3.35
#> 3 gsadf 4.23 3.27 3.65 4.42
tidy(res, cv = cv)
#> # A tibble: 1 × 4
#> id adf sadf gsadf
#> <fct> <dbl> <dbl> <dbl>
#> 1 series1 -0.997 3.27 4.23
datestamp(res, cv = cv)
#>
#> ── Datestamp (min_duration = 0) ───────────────────────── Time-Transformed MC ──
#>
#> series1 :
#> Start Peak End Duration Signal Ongoing
#> 1 21 38 89 68 negative FALSE
#> 2 148 148 149 1 positive FALSE
autoplot(res, cv = cv) See also
radf_tt_cv for the pivotal asymptotic critical values that need no bootstrap, and radf_wb_cv for the bootstrap-based alternative (Harvey, Leybourne, Sollis & Taylor).
Other volatility-robust tests: cusum_test(), radf_kp(), radf_sbz(), radf_sbz_union(), radf_sign(), radf_sign_dm(), ssu_test()
References
Kurozumi, E., Skrobotov, A., & Tsarev, A. (2024). Time-Transformed Test for Bubbles under Non-stationary Volatility. Journal of Financial Econometrics. 10.1093/jjfinec/nbae026
exuber