Skip to content

ARIMA

Forecaster id arima ยท tycheon.models.baselines.ARIMAForecaster

Source

Implemented in Tycheon on top of statsmodels (statsmodels.tsa.arima.model.ARIMA, version 0.15.0 at the time of writing). An ARIMA(p, d, q) with a constant is fitted to the last window log returns (default order (1, 0, 1), default window 500), scaled to percent so the optimiser is well conditioned, and simulated forward with simulate(..., anchor="end"). Prices are rebuilt from the simulated returns, so paths stay positive and carry the fitted model's serial dependence and innovation variance.

License

Tycheon: Apache-2.0. statsmodels: BSD-3-Clause (read from its PyPI metadata).

Training data

None. Fitted from the history passed to predict at forecast time. Needs at least 30 bars.

Intended use

A classical linear-time-series comparator. On daily returns the fitted AR and MA terms are usually close to zero, so ARIMA tends to behave like a random walk with a small drift, which is itself informative.

Limitations

  • Parameter uncertainty is not propagated. Paths are conditional on the point estimates, so intervals are optimistic for short histories.
  • Linear and homoskedastic: no volatility clustering (see GARCH).
  • Fit warnings (non-convergence, boundary estimates) are recorded in metadata.diagnostics["fit_warnings"], not suppressed; a forecast carrying them should be read with that in mind.
  • The order is fixed by the caller, not selected.

Calibration

Uncalibrated as built: the spread is the fitted model's own. Calibration is available for any forecaster: wrap it with ConformalCalibrator (split or adaptive conformal) and the forecast carries a status (calibrated, stale or uncalibrated) earned on a holdout it was not fitted on. See calibration.

How Tycheon runs it

CPU only, roughly 0.2 s per fit-and-simulate on 800 daily bars (a single observation on a development laptop). Seeded and reproducible through an explicit generator.

Baseline comparison

Not in the published benchmark run. Nothing on this card claims that ARIMA beats the random walk. Run it yourself with make benchmark-small after adding it to a config; every result is reported against the random walk with Diebold-Mariano tests. See benchmark methodology.

For research and risk analytics. Not investment advice.