Forecasting and Trading Commodity Contract Spreads with Gaussian Processes
Bibliographic record
Abstract
Gaussian Processes are general statistical models for nonlinear regression and classification that have recently received wide attention in the machine learning community, having originally been introduced in geostatistics (where they are known under the name “Kriging”.) They differ from neural networks in that they engage in a full Bayesian treatment, supplying a complete posterior distribution of forecasts. For regression, they are also computationally relatively simple to implement, the basic model requiring only solving a system of linear equations, albeit one of size equal to the number of training examples (requiring O(N3) computation). This paper examines the use Gaussian Processes to forecast the evolution of futures contracts spreads arising on the commodities markets. Contrarily to most forecasting techniques which rely on modeling the short-term dynamics of a time series (e.g. arima and most neural-network models), an appropriate representation of the input and target variables allows the Gaussian Process to forecast the complete future trajectory of the spread. Furthermore, as a customary outcome of using Gaussian Processes, the forecast includes not only the expectation of future spread prices (across time-steps), but their joint autocovariance matrix as well. We introduce a technique to exploit this joint autocovariance matrix in order to profitably trade spreads, based on maximizing an information ratio criterion between candidate entry-exit points and constantly monitoring the position with revised forecasts as the spread realization unfolds. This approach results in a qualitatively very different methodology than a classical mean-variance portfolio construction based on short-term forecasts, yielding models that do not overtrade yet react quickly to changes in market conditions. We present simultation results on historical data to validate the approach.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.002 | 0.006 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.000 | 0.001 |
| Bibliometrics | 0.001 | 0.001 |
| Science and technology studies | 0.000 | 0.001 |
| Scholarly communication | 0.001 | 0.002 |
| Open science | 0.001 | 0.001 |
| Research integrity | 0.001 | 0.001 |
| Insufficient payload (model declined to judge) | 0.001 | 0.000 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".