Skip to main content

ARIMA Forecasting

Automatic ARIMA/SARIMA — classic statistical univariate time series forecasting


Overview

  • Model ID: arima-forecasting
  • Framework: pmdarima (auto_arima)
  • Best for: Univariate time series, interpretable statistical models
  • GPU required: No (CPU-only)
  • Training time: 1-10 minutes

ARIMA (AutoRegressive Integrated Moving Average) is a classic statistical model for time series forecasting. ColabHive uses pmdarima with automatic order selection (p, d, q) and optional seasonal components (P, D, Q, m).


When to Use

Perfect for:

  • Univariate time series (single series)
  • Datasets with clear seasonal patterns (daily, weekly, monthly)
  • Use cases requiring interpretable models
  • Small datasets (ARIMA works well with few data points)
  • Production systems requiring fast, lightweight inference

Not ideal for:

  • Multi-column forecasting (use classical-forecasting-auto)
  • Very long-horizon forecasts (>1 year) with complex patterns
  • Non-stationary series without differencing

Quick Start

from colabhive import ColabHive

client = ColabHive(api_key="...", account_id="...")

# Upload time series dataset
dataset = client.datasets.upload(
name="sales-series",
file="./sales.csv",
)

# Train ARIMA (auto order selection)
job = client.training.create(
model="arima-forecasting",
dataset_id=dataset.id,
hyperparameters={
"date_column": "date",
"target_column": "sales",
"seasonal": True,
"m": 12, # Monthly seasonality
}
)

job.wait()
print(job.get_metrics())

Dataset Format

Your CSV should have at minimum a date column and a target column:

date,sales
2023-01-01,1200
2023-02-01,1350
2023-03-01,1100
...

Requirements:

  • Date column must be parseable by pandas (YYYY-MM-DD recommended)
  • Minimum 24 data points for reliable order selection
  • Regularly spaced time intervals (daily, monthly, etc.)

Hyperparameters

ParameterDefaultDescription
date_column"date"Name of the date/timestamp column
target_column"target"Name of the column to forecast
seasonaltrueEnable seasonal ARIMA (SARIMA)
m1Seasonal period (12=monthly, 7=daily-weekly, 4=quarterly)
max_p5Max AR order to search
max_q5Max MA order to search
max_d2Max differencing order
information_criterion"aic"Model selection criterion (aic, bic, hqic)
forecast_horizon12Number of periods to forecast

Common m values

Frequencym value
Daily (weekly seasonality)7
Monthly (yearly seasonality)12
Quarterly4
Weekly (yearly seasonality)52
No seasonality1

Output Metrics

After training, job.get_metrics() returns:

{
"aic": 245.3,
"bic": 260.1,
"mae": 42.5,
"rmse": 58.3,
"mape": 3.8,
"order": [2, 1, 1],
"seasonal_order": [1, 1, 0, 12]
}
  • AIC/BIC: Lower is better (model complexity penalty)
  • MAE: Mean Absolute Error
  • RMSE: Root Mean Squared Error
  • MAPE: Mean Absolute Percentage Error (%)
  • order: Final (p, d, q) selected
  • seasonal_order: Final (P, D, Q, m) selected

Register and Use for Inference

# Register as inference endpoint
endpoint = client.training.register_for_inference(
run_id=job.id,
name="arima-sales-forecast",
description="Monthly sales ARIMA model",
visibility="account",
)

# Predict next 6 months
result = client.endpoints.infer(
endpoint_id=endpoint.endpoint_id,
input_data={"forecast_horizon": 6},
)
print(result["result"])

Comparison with Other Time Series Models

ModelUnivariateMulti-seriesGPUAuto-selectBest for
arima-forecastingClassic statistical, interpretable
prophet-forecastingSeasonal patterns, holidays, credible intervals
classical-forecasting-autoMulti-column, auto model selection per series
timesfm-2.5-finetune-gpuFoundation model, quantile predictions, complex patterns

Learn More