sktime
import pandas as pd
import numpy as np
from sktime.forecasting.naive import NaiveForecaster
from sktime.forecasting.arima import ARIMA
from sktime.forecasting.model_evaluation import evaluate
from sktime.split import CutoffSplitter
from matplotlib import pyplot as plt
df = pd.read_csv('https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv')
y = df['Passengers']
cv = CutoffSplitter(fh=np.arange(1, 12), # Predict tomorrow to twelve days out
cutoffs=[len(y) - 12], # Create a single train/test split, 12 from the end of the data set
window_length=48) # Training window
for train_index, test_index in cv.split(y):
y_train, y_test = y[train_index], y[test_index]
# forecaster = NaiveForecaster(strategy='last')
forecaster = ARIMA(order=(1, 1, 1))
forecaster.fit(y_train, fh=np.arange(1, 12))
y_pred = forecaster.predict()
y_pred_int = forecaster.predict_interval(coverage=0.9)
plt.plot(y_pred)
plt.plot(y_test)
plt.plot(y_pred_int['Passengers'][0.9]['lower'])
plt.plot(y_pred_int['Passengers'][0.9]['upper'])