pmdarima

# init model
model = pm.auto_arima(data, ... , seasonal=True, m=12)

# for out-sample data (validation/testing set)
test_pred, confint = model.predict(n_periods=Ntest, return_conf_int=True)

# for in-sample data (training set)
train_pred = model.predict_in_sample(start=0, end=-1)

Seasonal ARIMA(SARIMA)

Model Seclection, AIC and BIC

How to find the best model:

Untitled

How to deal with overfitting

Untitled

Untitled

How to find the best parameter for ARIMA

One solution is adding penalty term