```from statsforecast import StatsForecast from st...
# statsforecast
m
Copy code
from statsforecast import StatsForecast
from statsforecast.models import MSTL, AutoARIMA, AutoCES, AutoETS, AutoTheta

season_length = 24
models = [
    AutoARIMA(season_length=season_length),
    AutoCES(season_length=season_length),
    AutoETS(season_length=season_length),
    AutoTheta(season_length=season_length),    
    MSTL(
        season_length=[24, 24 * 7], # (24) hours/day, (24 * 7) days/week   
        trend_forecaster=AutoARIMA(), # model used to forecast trend 
        alias='MSTL_AutoARIMA'
    ),
    MSTL(
        season_length=[24, 24 * 7], # (24) hours/day, (24 * 7) days/week   
        trend_forecaster=AutoCES(), # model used to forecast trend
        alias='MSTL_AutoCES'
    ),
    MSTL(
        season_length=[24, 24 * 7], # (24) hours/day, (24 * 7) days/week   
        trend_forecaster=AutoTheta(), # model used to forecast trend
        alias='MSTL_AutoTheta'
    )
]

sf = StatsForecast(
    models=models, # model used to fit each time series 
    freq='H', # frequency of the data
    n_jobs=-1
)

import warnings

n_windows = 26
crossvalidation_df = sf.cross_validation(
    df=features_melted_df, 
    h=24*7*4, 
    step_size=24*7, 
    n_windows=n_windows, 
)
The output I get when I run the above in a Jupyter notebook is confusing in terms of understanding progress.
j
Are you using statsforecast 1.7.4?
m
I'm using 1.7.3
j
Can you upgrade? This was fixed in that version
You won't see a progress bar at all. We're trying to make it work for multiprocessing but it doesn't at the moment
m
Makes sense. Getting status from multiprocessing is a pain.
I wouldn't care so much if it hadn't already been running for almost 20 hours. Previously I had MSTL + ARIMA, HoltWinters, DynamicOptimizedTheta & Seasonal Naive running in the same fashion and it took roughly 30 minutes. Looking at the list of models above I'm using, are there any model(s) that are particularly slower than others I might exclude? Asking because I'm trying to decide if I kill this run or not (and lose all the progress because it hasn't returned yet).
j
I'm not sure, sorry. You can run a quick profile on a sample to get a rough idea