A 200-tree Random Forest beat two recurrent networks on all ten US large caps studied here, training in about five seconds.
The win is clear.
Using it to size positions requires more: an unambiguously timed volatility forecast and a comparison with the models a desk already runs.
Thirteen lagged features for each stock
Volatility clustering supplies the premise. Large moves tend to follow large moves, giving recent returns and realised volatility a basis for predicting near-term volatility. Pragadeeshwaran, Tarun Narayanan and Bhavadharini measure realised volatility (RV) as the standard deviation of daily log returns over a rolling 5-day window, annualised by √252. They use daily adjusted closes and volume from Yahoo Finance for AAPL, MSFT, GOOGL, AMZN, TSLA, JPM, GS, BAC, XOM and CVX. January 2018 to December 2024 supplies 1,759 trading days.
For each stock, the input has 13 columns: five lagged returns, five lagged RVs, log(1 + volume) and an integer sector code. All are standardised on the training data. The Random Forest takes the vector as a flat input, using 200 trees with max depth 8 and at least 5 samples per leaf. The LSTM and GRU instead take 20-day windows, each using two layers of 64 and 32 units with 20% dropout. GARCH(1,1) and GJR-GARCH are re-estimated over a rolling 252-day window. A single 80/20 temporal split gives the machine-learning models about 1,400 training days and 350 test days; the results table identifies the test period as 2023 to 2024.
The forest sweeps the point forecasts. Its mean test RMSE is 0.0892, followed by GRU at 0.1083 and LSTM at 0.1192. The separation grows under QLIKE, which penalises underforecasts more heavily: 0.3105, 0.4618 and 0.6159.
Every ticker goes to the forest.
TSLA proves hardest, with RF RMSE of 0.1867; MSFT is easiest at 0.0591. GRU beats LSTM on nine of ten stocks. Its only loss is JPM, at 0.1253 against 0.1140. The forest takes about 5.2 seconds to train, compared with 34.1 for LSTM and 37.4 for GRU.
Which five days does the model predict?
Each model predicts RV_{t+1}, described as "the realised volatility over the five days immediately following observation t." The wording permits two targets. A window running from t+1 to t+5 would be a genuine weekly forecast. A one-step forecast of the rolling series would instead predict the window ending at t+1. In that case, as many as four of the window's five returns also appear in rv_lag1.
The ablation results fit the second reading more naturally. On AAPL, a forest using returns alone already achieves RMSE of 0.0783. Adding five RV lags and volume improves the mean by just 3.17%. AMZN deteriorates from 0.0845 to 0.0872, as does BAC from 0.0738 to 0.0789. XOM slips slightly, from 0.0674 to 0.0675. Lagged RV usually dominates prediction of future RV, but it would contribute little if lagged returns already supplied as many as four-fifths of the target.
There is also a sign discrepancy. The ablation table gives BAC "+6.9%" despite the rise in RMSE; the prose reports -6.9%. Under the overlap interpretation, construction of the target inflates every model's accuracy. The forest's advantage would then lie in reproducing a largely known number. That alignment needs resolving before a sizing backtest can begin.
GARCH has a VaR row, but no RMSE
A practitioner needs the forest's point error compared with GARCH. Both GARCH models have dashes in the main table's RMSE, MAE and QLIKE cells. Yet the conclusion calls the forest best "compared to all other models used", even though Table 2 gives no GARCH point error. The abstract confines that claim to deep learning methods. We also did not find either a persistence forecast, carrying today's RV forward, or a HAR-RV model. The same omission came up in our review of an SADC volatility ranking.
GARCH does appear in the VaR comparison. At 95%, the approximate breach rates are about 5.5% for GARCH(1,1) and 5.3% for GJR, both with Kupiec p > 0.05. The forest records about 5.2% (p > 0.05), GRU about 5.8% (p > 0.05), and LSTM about 6.4%, labelled "Mixed". With roughly 350 test days, a 5% rate means about 17.5 expected breaches. A rate of 6.4% amounts to about 22. Counts this close give the Kupiec test little power to distinguish the models. Non-rejection excludes gross miscalibration while leaving the five models unranked.
The abstract states: "GARCH models remain a viable option for estimating risk measures and calibrating VaR, especially during period of stability in the financial markets." No number supports the stability qualifier. The regime table gives RMSE only for RF, LSTM and GRU, with no GARCH VaR results separated by regime. The conclusion also extends the GARCH claim to expected shortfall. Although the paper says ES was computed, we found no ES figure anywhere in it. Nor do the authors provide a Diebold-Mariano or similar test for any gap between models.
Stress raises error by 3.7 to 4.3 times
All the models deteriorate by a similar multiple under stress. In the calm regime, pooled RMSE is 0.0776 for the forest, 0.1005 for LSTM and 0.0907 for GRU. The stressed-regime figures are 0.2881, 0.4292 and 0.3902. The paper reports a stressed-to-calm ratio of about 3.7 to 4.3. Difficulty forecasting tail volatility is among the authors' key findings. They interpret TSLA's +0.9% ablation gain as evidence that its volatility "is primarily driven by news flow rather than autocorrelation". The overlap interpretation above also accommodates that small gain.
K-Means clustering on RV levels defines the regimes. Table 5 pools RMSE across all tickers, yet its "% of Days" column repeats the AAPL shares in Fig 5 exactly: 65.8% calm, 29.6% normal and 4.6% stressed. The named stress episodes are Q4 2018, March to April 2020 and the 2022 hikes. Each precedes the test window labelled 2023 to 2024. We could not determine how the stressed-regime RMSEs were measured out of sample.
Before we test volatility sizing
We are building a version now. It must clear four gates before the 0.0892 has any significance for a book:
- define the target strictly from returns over t+1 to t+5, stamping features at the close of t so labels never overlap inputs;
- include a persistence baseline, without which a 3.17% ablation gain is too small to interpret;
- aggregate GARCH forecasts to the same five-day horizon, then score them on the same RMSE and QLIKE as the forest;
- judge a volatility-targeted portfolio by realised risk and turnover, since daily forecast jumps can cost more in trading than they save.
Whatever those tests show, the five-second training time remains relevant.
The ranking against GARCH is still open. For a risk desk, that is the comparison that matters.