← All work
04 · Null result

Is volatility-regime onset forecastable?

In one line

Whether the onset of a volatility regime can be forecast at daily frequency, and why the answer is no.

Program
Penn State SURE Program, Department of Statistics
Mentor · PI
Dr. ByeongJip Kim · Prof. Xiaoyue (Maggie) Niu
Period
May – July 2026
Stack
Python, NumPy, SciPy — code private, in Eureka’s research directory
Output
Presented to faculty and the research cohort, July 2026; poster, September 2026
01

The question

Volatility regimes are easy to identify after the fact. Knowing the market is volatile right now is close to trivial. The useful question is whether a model can tell you a volatile regime is about to start, before it has.

I tested that at daily frequency on the KOSPI 200, using conditional predictive distributions from volatility models. The answer was no, and most of the work went into making sure that answer could be trusted.

02

The models

GARCH and particle-filter stochastic volatility, implemented from scratch, each with Gaussian and Hansen’s skewed-t innovations: four specifications in total. Validation ran in three stages before any conclusion was drawn.

  1. 1Parameter recovery on a known data-generating process. Simulate a series from known parameters, fit the model, and confirm the fit recovers them. A model that can’t recover parameters it generated itself has no business being pointed at a real market.
  2. 2Walk-forward comparison on market data, fitting only on the past and scoring each specification out of sample.
  3. 3The pre-registered detection test, in the next section.

On top of the models sits a pipeline producing a conditional predictive distribution for each day of KOSPI 200 returns from 1996 to 2026. It also needed VKOSPI, the Korean counterpart of the VIX: the volatility of the KOSPI 200 over the next 30 days, implied by option prices. The published series doesn’t reach back that far, so I reconstructed it for the earlier period.

03

Pre-registration

The detection experiment was fixed before any results were seen.

  • Matched alarm rates, so every method competes at the same false-alarm budget. A method that alarms more often will catch more onsets for free.
  • Block-bootstrap significance, because volatility is serially dependent and an ordinary bootstrap would overstate certainty.
  • A planted-signal positive control. An artificial alarm placed three days before each onset has to be detected, or the test itself is broken. It was detected at the smallest p-value the bootstrap could resolve.
  • A minimum-detectable-effect power analysis, so a negative result could be told apart from a test too weak to see anything.
It earned its placeMy first definition of an “event” failed the positive control: the detector couldn’t find a signal I had planted by construction, which meant the definition carried no information. I replaced the definition rather than tuning around it.
04

The 42% result

The experiment returned a 42% detection rate at p < 0.001. That is the point where stopping would have been easy.

Broken down episode by episode, the detections sat in the middle of volatile periods, not at their start. A trivial rule, raising an alarm once volatility is already high, recovered almost all of them. Under the same test, detecting onsets specifically failed. The headline number was real, and it measured the wrong thing. I also corrected three points in my own interim summary once the decomposition made them visible.

05

The mechanism

A negative result is worth reporting only if you can say why it happened.

A conditional forecast built from past returns is, by construction, a function of those returns. It tracks a volatility regime accurately once the regime exists, and carries nothing about one that hasn’t started. The forecast is a rearview mirror with excellent resolution.

With the power analysis fixed in advance, that makes this a powered null rather than an inconclusive one. The test was sensitive enough to find an effect of the specified size, the effect wasn’t there, and there is a structural reason it couldn’t be.

06

Also built

  • Bayesian online changepoint detection applied to volatility breaks, testing whether the predictive distributions could flag a break at a horizon not yet realized.
  • Variance-risk-premium infrastructure. An implied volatility surface across maturities and strikes, realized variance, and the premium extracted by variance-swap-style integration, following the VIX methodology.
07

Limits

  • Onset detection is extremely data-hungry. Volatility regimes don’t start often, so thirty years of daily data yields only pending: n onsets to test against. That scarcity is why the power analysis had to be fixed before the test rather than after.
  • One index at one frequency. Whether the null holds intraday or in other markets is untested.
  • The null covers forecasts built from returns. Order flow, cross-asset information or option-implied quantities could carry onset signal this design cannot see. That’s the next experiment, not a flaw in this one.
  • The reconstructed early VKOSPI adds uncertainty to the first decade of the sample.
Read previousResume RendererRead nextPower-system stability & oscillation prediction