0

我无法理解 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给出预测)。

4

0 回答 0