Skip to main content
This notebook was originally executed using DataBricks
The purpose of this notebook is to create a scalability benchmark (time and performance). To that end, Nixtla’s StatsForecast (using the ETS model) is trained on the M5 dataset using spark to distribute the training. As a comparison, Facebook’s Prophet model is used. An AWS cluster (mounted on databricks) of 11 instances of type m5.2xlarge (8 cores, 32 GB RAM) with runtime 10.4 LTS was used. This notebook was used as base case. The example uses the M5 dataset. It consists of 30,490 bottom time series.

Main results

MethodTime (mins)Performance (wRMSSE)
StatsForecast7.50.68
Prophet18.230.77

Installing libraries

StatsForecast pipeline

Forecast

With statsforecast you don’t have to download your data. The distributed backend can handle a file with your data.

Evaluating performance

The M5 competition used the weighted root mean squared scaled error. You can find details of the metric here.
wrmsse
Total0.682358
Level10.449115
Level20.533754
Level30.592317
Level40.497086
Level50.572189
Level60.593880
Level70.665358
Level80.652183
Level90.734492
Level101.012633
Level110.969902
Level120.915380

Prophet pipeline

Download data

Forecast function using Prophet

Training Prophet on the M5 dataset

Evaluating performance

The M5 competition used the weighted root mean squared scaled error. You can find details of the metric here.
wrmsse
Total0.771800
Level10.507905
Level20.586328
Level30.666686
Level40.549358
Level50.655003
Level60.647176
Level70.747047
Level80.743422
Level90.824667
Level101.207069
Level111.108780
Level121.018163