(S)ARIMA(X)

Time-series

  • Data per periode
  • Rond een trend
  • Vaak met regelmatige patronen

Time-series

  • Data per periode
  • Rond een trend
  • Vaak met regelmatige patronen

ARIMA

ARIMA strengths

  • Werkt met weinig input data
  • Hoge 'explainability'
  • Hoge 'adaptability'

Model

  • AR: Auto-regressive
  • MA: Moving Average

Model

  • AR: Auto-regressive
  • I: Integrated
  • MA: Moving Average

Model

  • S: Seasonal
  • AR: Auto-regressive
  • I: Integrated
  • MA: Moving Average

Model

  • S: Seasonal
  • AR: Auto-regressive
  • I: Integrated
  • MA: Moving Average
  • X: Exogenous data

Model

  • S: Seasonal (s, P, D, Q)
  • AR: Auto-regressive (p)
  • I: Integrated (d)
  • MA: Moving Average (q)
  • X: Exogenous data

Model

𝜙𝑝(𝐿)𝜙̃ 𝑃(𝐿𝑠)Δ𝑑Δ𝐷𝑠𝑦𝑡=𝐴(𝑡)+𝜃𝑞(𝐿)𝜃̃ 𝑄(𝐿𝑠)𝜁𝑡 

Model

𝜙𝑝(𝐿)𝜙̃ 𝑃(𝐿𝑠)Δ𝑑Δ𝐷𝑠𝑦𝑡=𝐴(𝑡)+𝜃𝑞(𝐿)𝜃̃ 𝑄(𝐿𝑠)𝜁𝑡 

Model

Y = AVG + a*AR + b*MA + ERROR

Model

Y = AVG + a*AR + b*MA + ERROR

Mean

Model

Not in model

Model

Y = AVG + I(a*AR + b*MA) + ERROR

Model

Y = AVG + I(a*AR + b*MA) +

Is(a*ARs + b*MAs) + ERROR

Model

Y = AVG + I(a*AR + b*MA) +

Is(a*ARs + b*MAs) + c*EXOG + ERROR

Hoe werkt het ook weer?

Input

Hoe werkt het ook weer?

Input

Parameters

Hoe werkt het ook weer?

Input

Parameters

Model

Hoe werkt het ook weer?

Input

Parameters

Model

Training

Hoe werkt het ook weer?

Input

Parameters

Model

Training

More training

Hoe werkt het ook weer?

Input

Parameters

Model

Training

More training

Output

Hoe werkt het ook weer?

Input data

  • Genoeg data nodig, 10k, 100k, 1M, 100, 1k
  • Gebalanceerd
  • Gecleaned
  • Geformatteerd
  • Garbage in, garbage out

Input data

  • Genoeg data nodig, 10k, 100k, 1M, 100, 1k
  • Gebalanceerd
  • Gecleaned
  • Geformatteerd
  • Garbage in, garbage out

Input data

  • Genoeg data nodig, 10k, 100k, 1M, 100, 1k
  • Gebalanceerd
  • Gecleaned
  • Geformatteerd
  • Garbage in, garbage out

Input data

  • Genoeg data nodig, 10k, 100k, 1M, 100, 1k
  • Gebalanceerd
  • Gecleaned
  • Geformatteerd
  • Garbage in, garbage out

Input data

  • Genoeg data nodig, 10k, 100k, 1M, 100, 1k
  • Gebalanceerd
  • Gecleaned
  • Geformatteerd
  • Garbage in, garbage out

Input data

  • Genoeg data nodig, 10k, 100k, 1M, 100, 1k
  • Gebalanceerd
  • Gecleaned
  • Geformatteerd
  • Garbage in, garbage out

5-fold cross validation

 

 

 

Data set

 

 

 

5-fold cross validation

Data set 1

Data set 2

Data set 3

Data set 4

Data set 5

5-fold cross validation

Data set 1

Data set 2

Data set 3

Data set 4

Data set 5

Training

Training

Training

Validation

Testing

5-fold cross validation

Data set 1

Data set 2

Data set 3

Data set 4

Data set 5

Training

Training

Training

Validation

Testing

Hyperparameter search

  • Brute force

Hyperparameter search

  • Brute force
  • Alternatives
    • Grid search
    • Factorial design

Hyperparameter search

  • Gebruik multithreading/GPU/TPU
  • Kies score/error
  • Kies handige volgorde
  • Log elke hyperparam combinatie
  • Sla modellen op
  • Handle exceptions

Demo

Hoe te gebruiken?

  • Trainen offline/op server/in cloud
  • Predictions schrijven naar file/doorgeven via API
  • Model periodiek hergenereren met nieuwe data (ook exogene data updaten)

Improvements

  • Kijken wat het effect is van:
    • Verschillende timeframes
    • Andere exogene data
  • Vergelijken met andere modellen
    • Holt-Winter

Vragen?

(S)ARIMA(X)

By mjorden

(S)ARIMA(X)

  • 28