Как авто_арима pmdarima вычисляет ошибку из сумки?

#python #time-series #pmdarima

Вопрос:

У меня возникли проблемы с пониманием того, как auto_arima вычисляет ошибку «из сумки».

Если я правильно понимаю, для его вычисления должны потребоваться последние out_of_sample_size точки данных, но если я вручную вычислю среднеквадратичную ошибку по этим данным, я получу другой результат, см. MWE:

 from pmdarima import auto_arima
from sklearn.metrics import mean_squared_error as mse

print("pmdarima version: %s" % pm.__version__)

# Load the data and split it into separate pieces
data = pm.datasets.load_wineind()
oos_size = 12
arima = auto_arima(y=data,
                   out_of_sample_size=oos_size,
                   information_criterion='oob')

in_sample_preds = arima.predict_in_sample(X=None)
print('auto_arima mse', arima.oob_)
print('computed mse', mse(data[-oos_size:], in_sample_preds[-oos_size:]))
 

выходы

 pmdarima version: 1.8.2
auto_arima mse 30562632.597773496
computed mse 31188460.514596958
 

Почему эти две MSE разные?

(Я использовал predict_in_sample метод, так predict как должен давать прогнозы после последней выборки из пакета).