An error of 0.0077 dollars on next month's natural gas futures price demands an explanation. Ridge produces that result in this paper. Front-month NG averages 4.41 over the sample, with a range from 1.70 to 13.45. Nobody forecasts that. Until the figures make sense, ranking the five algorithms is premature.
The experiment they ran
Esmaeilpour Moghadam and Karami set Ridge, Lasso, Random Forest, Bagging and Gradient Boosting against one another across five markets. They exclude deep learning by design. A monthly sample is too small for the intended comparison, they argue, while adding transformers would weaken the control of the horse race.
The targets are end-of-month closing levels from Investing.com: the VIX, the S&P 500, gold, front-month natural gas futures and front-month Brent futures. Predictors include four newspaper-based uncertainty indices, Climate Policy Uncertainty, Global EPU on a PPP basis, geopolitical threats and geopolitical acts, alongside lagged financial variables.
A correlation screen removes Seven near-duplicate series. Those include DJI, XAU, the spot legs of Brent, WTI and natural gas, and WTI futures. The quoted correlations are 0.99 for natural gas spot against natural gas futures and 1.00 for gold against XAU.
The sample contains 296 monthly observations, though the dates conflict. The abstract gives January 2000 to July 2025. The data section gives January 2000 to August 2024. Counting 296 months forward from January 2000 ends at August 2024, which identifies the abstract as the source of the error.
The protocol is careful in the places that matter. The split is chronological at 80:20, and five-fold expanding-window cross-validation takes place entirely within the training block. A grid search selects hyperparameters from a stated space. For Ridge and Lasso, the lambda grid is {0.001, 0.01, 0.1, 1, 10, 100}. Training-sample moments are used to standardize predictors.
The paper says contemporaneous values of target variables are excluded because those values would be unavailable at the forecast origin. A random walk, ARIMA and ARIMAX serve as benchmarks. The authors report Diebold-Mariano tests, then repeat the full exercise using 70/30, 75/25 and 85/15 splits.
Ridge leads on VIX, with MAE 0.0228 and R2 0.999982. It also wins NG-F at MAE 0.0077 and Brent-F at MAE 0.1492. Lasso takes the S&P 500, with MAE 0.6829 and R2 0.999999, as well as gold at MAE 0.7535. No tree ensemble finishes first on any target.
The R2 explanation only goes so far
The paper does address the R2 values. It offers four explanations: monthly aggregation removes high-frequency noise, the predictors are persistent and cross-linked, validation respects the time series, and "the target variables are price levels rather than returns." The final explanation carries most of the weight. Persistent, trending levels make R2 on levels nearly uninformative.
The benchmark table shows the problem directly. On the S&P 500, a random walk records R2 0.9912 alongside MAE 85.42 index points. Lasso's 0.6829 is one hundred and twenty-fifth of that error. Relative to the full-sample means in the descriptive table, the best model misses the S&P 500 by 0.033%. Its VIX error is 0.11% of the 19.96 mean. Brent is missed by 0.22% of its 67.20 mean.
Monthly aggregation removes the path within each month. The month-over-month change remains, and that is the quantity a one step ahead forecast must anticipate. The paper's four explanations concern the R2. They leave an MAE of 0.68 index points unexplained.
The authors append their own caution: "the magnitude of the reported R2 values indicates that forecasting accuracy should be interpreted together with additional evaluation criteria, including statistical forecast comparison tests and robustness analyses." The 59-point holdout makes that warning consequential.
Another benchmark figure raises the same concern. The VIX random walk has a reported MAE of 0.8421, while the descriptive table puts the full-sample range between 9.51 and 59.89. Those figures suggest the benchmark differs from a plain last-value carry-forward.
Information available at forecast time
The exclusion rule has narrow wording. It covers contemporaneous values of the target variables but says nothing about contemporaneous observations for the other four financial series. The procedure as described therefore does not establish a look-ahead, and I will not claim one.
What I could not find was enough material to check the timing. The paper does not release the final retained feature matrix after the seven drops. It also omits the lag length for each financial predictor and the vintage convention used for the uncertainty indices. Each index has a month stamp, yet publication occurs after the month closes. The chosen vintage therefore matters.
Suppose the lagged financial block contains last month's target close and same-month levels for the other four assets. The exercise then becomes a cross-sectional identity: five co-moving price levels, four observed and one reconstructed. Errors of this scale could follow, then disappear as soon as someone tried to trade the forecast. I cannot demonstrate that this happened. The published description leaves readers unable to rule it out.
L1 and L2 separate sharply
Once the headline magnitudes are set aside, the paper still contains a useful warning. Within its linear models, the choice of penalty dominates the remaining differences. Lasso beats Ridge by an order of magnitude on the S&P 500, 0.6829 against 7.2028, and on gold, 0.7535 against 5.0029.
Natural gas reverses the result. Ridge beats Lasso by a factor of 76, with 0.0077 against 0.5840. Lasso's R2 falls to 0.8219, producing the largest cross-model gap reported anywhere in the paper.
The asymmetry makes mechanical sense. When correlated predictors share informative content, L1 can discard signal by setting members of a collinear group to zero. L2 retains the group and shrinks its coefficients. Treating Ridge and Lasso as interchangeable settings on one model is a real error, and the paper captures the consequence cleanly.
The ensembles supply the more interesting negative result. Across the five targets in the results table, RF, Bagging and GBM never record an outright win. GBM is the strongest ensemble for Brent, at MAE 0.2770. On VIX, RF has the lowest ensemble MAE at 0.10003, although Bagging posts the higher R2 of the pair at 0.999007.
The case for ensembles goes no further. The usual prior that tree methods should lead in volatility and energy markets receives no support here. Generalization depends entirely on the feature matrix. If those predictors nearly determine the target, linear reconstruction wins easily and the ensembles merely lose a fitting contest.
Fifty-nine observations decide the result
A 20% holdout from 296 observations leaves an out-of-sample window of about 59 months. The resulting Diebold-Mariano statistics are large: -5.28 for Ridge against a random walk on VIX, -7.36 for Lasso against a random walk on S&P 500, and -7.83 for Ridge against a random walk on NG-F.
The smallest margins all involve GBM. They are -2.08 for Brent, Ridge vs GBM; -2.09 for Gold, Lasso vs GBM; and -2.17 for NG-F, Ridge vs GBM. Every pairing in the table carries a negative statistic, while Model 1 is always named the winner. Because the sign convention is unstated, the direction of the loss differential cannot be reconstructed from the table alone.
The robustness section repeats the analysis at four splits. Rankings remain unchanged, and VIX Ridge MAE shifts only from 0.0269 to 0.0216. Stability across splits is useful evidence, though it cannot identify the timing concern above. Each split uses the same predictor construction. A shared feature-timing problem survives every change in the sample cut.
Before this enters a trading book
We are building a version with instruments available for actual trading, and those substitutions change the test. The S&P 500 index cannot be held, so SPY supplies the equity exposure. Gold and natural gas use dated GC and NG futures with real rolls. The VIX can enter as a signal. Any direct volatility position requires dated VX futures, and our usable coverage begins in 2019, well inside the paper's sample.
Brent futures are entirely unavailable to us. WTI (CL) can support a separate test of the same mechanism on another liquid energy future. The paper's Brent findings do not transfer to it.
A level MAE does not determine a position. The paper gives MAE, MSE and R2 and nothing else: no directional hit rate, no position rule, no turnover, no cost assumption, no drawdown. A publishable trading result would be sign accuracy on the predicted month-over-month change, net of a roll and a spread.
One disclosure would change my read: publication of the predictor matrix, with a release timestamp for every column and the exact lag used for each. Until then, the paper's genuine contribution is the heterogeneity between L1 and L2. That finding deserves another run on returns.