Volatility is not observed directly. We see returns, square them, and use that noisy signal to infer a conditional variance that becomes an input to tomorrow's forecast. Deng, Shen, and Chan turn this circular problem into an alternating algorithm: fit a neural regression, update the hidden variance path, and repeat.
The elegant result is that the procedure can forget a bad initial variance after only logarithmically many rounds. The important fine print is a contraction: changing a lagged variance must change the next one by less than the original perturbation. The theory requires that feedback below one; the numerical implementation does not explicitly enforce it.
Turn hidden volatility into regression
A GARCH model—generalized autoregressive conditional heteroskedasticity—lets today's conditional variance depend on past returns and past variances. The nonparametric version replaces a fixed linear equation with an unknown function f. Because a squared return has conditional expectation equal to variance, squared returns become noisy regression targets.
The catch is that lagged variances inside the feature vector are also hidden. The estimator initializes all of them to a positive constant, fits a nonnegative neural network to squared returns, uses its outputs as the next variance path, and refits. This is closer to alternating imputation than to an ordinary one-shot neural network.
def variance_path(returns, c, alpha, feedback, initial):
variance = [initial] * len(returns)
for t in range(1, len(returns)):
variance[t] = (
c
+ alpha * returns[t - 1] ** 2
+ feedback * variance[t - 1]
)
return varianceThe site runs the tested TypeScript version; Python and C++ are line-for-line translations. This transparent GARCH(1,1) special case isolates the feedback loop. The paper replaces the affine update with a bounded, positive MLP fitted anew at each outer iteration.
The guarantee is a stability guarantee
Suppose two runs use the same returns but start one variance unit apart. In the linear special case their gap after m updates isDm; squared error is D2m. The paper generalizes this idea to a weighted norm over several variance lags and balances propagated error against approximation and sampling error.
Even 0.99 is not practically memoryless: the squared gap needs about 34.5 iterations merely to halve. “Below one” is therefore a qualitative threshold, not a promise of fast forgetting near the boundary.
Where flexibility helps—and where it does not
In the stationary simulations, the correctly specified parametric models naturally win their own linear designs. The neural estimator becomes useful when the variance map is nonlinear. The table below reproduces the paper's median latent excess QLIKE values, scaled by 100; lower is better.
| Paper design | Gaussian MLE | NN-MLP | Lower value |
|---|---|---|---|
| A (linear GARCH) | 0.06 | 0.81 | MLE |
| B (linear EGARCH) | 0.75 | 0.74 | NN-MLP |
| C (linear GJR) | 1.58 | 0.59 | NN-MLP |
| D (nonlinear 3,3) | 3.87 | 1.53 | NN-MLP |
| E (nonlinear 3,4) | 3.86 | 1.54 | NN-MLP |
| F (nonlinear 4,3) | 6.10 | 2.97 | NN-MLP |
| G (nonlinear 4,4) | 9.02 | 2.54 | NN-MLP |
| H (nonlinear 5,5) | 3.19 | 1.95 | NN-MLP |
The neural method has the smallest median variance-path MSE in all five nonlinear designs and the smallest median excess QLIKE in three of them. That is a more restrained conclusion than “neural beats GARCH”: the parametric baselines remain excellent when their functional form is correct.
QLIKE punishes a dangerous miss asymmetrically
QLIKE is a volatility loss: for variance proxy z and positive forecast v, it is z/v + log v. In expectation, its excess over the truth depends only on the true-to-forecast variance ratio. Underforecasting variance by half is penalized more than overforecasting it by a factor of two.
Recent data help when the map moves
Equal weighting targets a stable recursion. For gradual changes, the authors test linear, exponential, and recent-window weights. Every changing-design and loss combination improves with at least one weighted neural variant, but the winning weighting rule changes by scenario—there is no universal half-life.
| Change | Metric | NN-MLP | Best weighted | Rule |
|---|---|---|---|---|
| Scale change | path MSE | 6.50 | 4.79 | recent window |
| Function change | path MSE | 1.43 | 0.97 | exponential |
| Joint change | path MSE | 9.89 | 7.04 | recent window |
| Scale change | excess QLIKE | 11.27 | 3.11 | recent window |
| Function change | excess QLIKE | 4.99 | 2.29 | exponential |
| Joint change | excess QLIKE | 6.61 | 2.38 | recent window |
What to probe next
First, estimate the learned network's Lipschitz constant with respect to variance inputs at every outer iteration. Then compare unconstrained training with spectral normalization or explicit norm projection, not just weight decay. Report how often the empirical feedback bound crosses one and whether those crossings predict sensitivity to initialization.
Next, repeat the study under heavy-tailed innovations and long memory— both are named as open problems—and include a simple parametric model alongside the flexible estimator. A practitioner should earn the neural model's extra flexibility by demonstrating nonlinear residual structure, not assume it from the outset. The linear regression page is a useful reminder of how much a transparent baseline can already explain.
References
- Deng, R., Shen, G., and Chan, N. H. (2026). Nonparametric GARCH: An Iterated Neural Estimator. arXiv
- Bollerslev, T. (1986). Generalized autoregressive conditional heteroskedasticity. Journal of Econometrics 31(3)
- Patton, A. J. (2011). Volatility forecast comparison using imperfect volatility proxies. Journal of Econometrics 160(1)