我正在做一个经过训练的 autoarima 模型等。我正处于需要使用该模型进行一些预测的阶段(该模型是使用 5 年的数据训练的,我需要预测明年) .
初始数据集是一个简单的时间序列数据集;
Volume
01-01-1995 345
.
.
.
31-12-2000 4783
到目前为止的步骤;
df_train = df[df.Date < "2019"]
df_test = df[df.Date >= "2019"]
exogenous_features = ["Consumption_mean_lag30", "Consumption_std_lag30",
"Consumption_mean_lag182", "Consumption_std_lag182",
"Consumption_mean_lag365", "Consumption_std_lag365",
"month", "week", "day", "day_of_week"]
model = auto_arima(df_train['Volume'], exogenous=df_train[exogenous_features], trace=True, error_action="ignore", suppress_warnings=True)
model.fit(df_train['Volume'], exogenous=df_train[exogenous_features])
forecast = model.predict(n_periods=len(df_test), exogenous=df_test[exogenous_features])
df_test["Forecast_ARIMAX"] = forecast
df_test[["Consumption", "Forecast_ARIMAX"]].plot(figsize=(14, 7))
from sklearn.metrics import mean_absolute_error, mean_squared_error
print("RMSE of Auto ARIMAX:", np.sqrt(mean_squared_error(df_test.Consumption, df_test.Forecast_ARIMAX)))
print("\nMAE of Auto ARIMAX:", mean_absolute_error(df_test.Consumption, df_test.Forecast_ARIMAX))
以上给了我一个满意的模型。
当我尝试使用以下内容进行预测时;
model.predict(n_periods=365)
我不断收到错误消息;
ValueError: When an ARIMA is fit with an X array, it must also be provided one for predicting or updating observations.
我试图解决所有问题,但似乎无法理解如何提供“X 数组”或错误告诉我什么?
如果有人有任何见解或无论如何可以提供帮助,我将不胜感激。
谢谢。