Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conformal-Chronos

Zero-Shot Uncertainty: Conformalizing Foundation Models for Financial Tail Risk

A research project applying Conformal Prediction to Amazon's Chronos-2 foundation model for financial time series forecasting with calibrated uncertainty quantification.

Project Overview

This project investigates whether pre-trained time series foundation models (specifically Amazon Chronos-2) can provide reliable uncertainty estimates for financial forecasting when combined with conformal prediction methods.

Installation

cd conformal_chronos
uv sync

Or install with pip:

pip install -e .

Additional Dependencies

For the Chronos model:

uv add git+https://github.com/amazon-science/chronos-forecasting.git

Project Structure

conformal_chronos/
├── src/conformal_chronos/
│   ├── data/           # Financial data loading (yfinance)
│   ├── models/         # Chronos wrapper and baselines (GARCH, Historical Simulation)
│   ├── conformal/      # Split conformal prediction
│   ├── evaluation/     # Metrics (coverage, Winkler, VaR)
│   └── utils/          # Configuration management
├── notebooks/          # Exploration notebooks
├── scripts/            # Experiment runners
├── results/            # Experiment outputs and figures
└── tests/              # Unit tests

Quick Start

from conformal_chronos import (
    FinancialDataLoader,
    ChronosForecaster,
    SplitConformalPredictor,
    coverage_rate,
)

loader = FinancialDataLoader(tickers=["AAPL"], start_date="2020-01-01")
data = loader.download_data()

forecaster = ChronosForecaster(model_size="chronos-2")
forecaster.load_model()

context = data["AAPL"]["close"].values[-512:]
result = forecaster.predict_quantiles(context, prediction_length=5)

conformal = SplitConformalPredictor(coverage_level=0.9)
conformal.calibrate(residuals, absolute=True)
interval = conformal.predict_interval(result.point_forecast)

coverage = coverage_rate(test_actuals, interval.lower, interval.upper)

Running Experiments

The main experiment script uses hardcoded configuration for reproducibility:

python scripts/run_experiment.py

Experiment Configuration

The experiment is configured with the following parameters (see scripts/run_experiment.py):

Parameter Value Description
Model amazon/chronos-2 Chronos-2 foundation model
Stocks 12 S&P 500 constituents AAPL, MSFT, NVDA, GOOGL, JPM, V, MA, WMT, COST, MCD, JNJ, UNH
Date Range 2020-01-01 to 2025-12-31 5-year evaluation period
Test Days 30 Rolling evaluation window
Calibration Days 60 Conformal calibration window
Coverage Target 90% Target prediction interval coverage
Horizons 1, 5 1-day and 5-day forecasts
Random Seed 42 For reproducibility

Key Components

Data Loader

  • Downloads S&P 500 stock data via yfinance
  • Computes returns, log returns, and rolling volatility
  • Handles train/calibration/test splits for conformal prediction

Chronos Forecaster

  • Wrapper for Amazon's Chronos-2 foundation model
  • Uses predict_quantiles() for direct quantile prediction
  • Returns mean point forecasts and native quantile predictions
  • Supports context windows up to 512 tokens

Conformal Prediction

  • Split Conformal Prediction for time series
  • Non-conformity score: absolute residual |y - ŷ|
  • Symmetric interval construction around point forecast
  • Rolling calibration window (60 days) for local stationarity

Baselines

  • GARCH(1,1): Econometric volatility model with Student-t innovations
  • Historical Simulation: Non-parametric VaR estimation (252-day window)
  • Chronos-Native: Raw quantile outputs without conformal calibration

Evaluation Metrics

  • Coverage rate (target: 90%)
  • Average interval width
  • Winkler score (proper scoring rule for intervals)
  • VaR exceedance rate (downside risk)

Results

Experiment results are saved to results/:

  • experiment_results.csv: Per-ticker, per-method metrics
  • summary_statistics.json: Aggregated statistics
  • detailed_forecasts.csv: Full forecast time series
  • figures/: Publication-ready visualizations

About

Zero-shot financial forecasting with calibrated uncertainty using Chronos-2 and Conformal Prediction

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages