SARIMA is a seasonal autoregressive integrated moving-average model for forecasting time series with recurring seasonal structure. It extends ARIMA with seasonal counterparts for autoregression, integration, and moving averages. section 10.2.3
Specify SARIMA with two parameter groups:
- Use (p,d,q) for nonseasonal autoregressive order, integration order, and moving-average order. section 10.2.3
- Use (P,D,Q) for the corresponding seasonal orders; with a seven-day season, seasonal lag 1 means lag 7. section 10.2.3
- Try parameter combinations using a criterion such as AIC, which balances model complexity and overfitting. section 10.2.3
Daily blog-visit forecasting
For daily website visits with clear weekly seasonality, AutoARIMA selected SARIMA(2,0,1)(0,1,1): p=2, d=0, q=1, P=0, D=1, and Q=1. Cross-validation used 20 nonoverlapping seven-day windows and evaluated MAE and sMAPE. section 10.1 section 10.2.3
Listing 10.5 Fitting an AutoARIMA model
from statsforecast.arima import ARIMASummary #1
from statsforecast.models import AutoARIMA
autoarima_model = AutoARIMA(season_length=7)
sf = StatsForecast(models=[autoarima_model], freq=FREQ)
init = time()
autoarima_cv_fcsts = sf.cross_validation(
h=HORIZON,
df=df,
n_windows=N_WINDOWS,
step_size=HORIZON
)
print(f"AutoARIMA time: {time() - init} seconds")
autoarima_cv_fcsts.to_csv("autoarima_preds.csv", header=True, index=False)
Use the AutoARIMA listing to configure a seven-day seasonal period and generate cross-validation forecasts with statsforecast. section 10.2.3
