首先,检查Auto_arima和SARIMAX模型是否使用了相同的超参数。如果是,可以使用以下方法:(代码以Python为例)
from statsmodels.tsa.statespace.sarimax import SARIMAX
from pmdarima import auto_arima
# 设置超参数
p, d, q = 1, 1, 1
P, D, Q = 1, 1, 1
s = 12 # 季节性差分
# 使用Auto_arima进行预测
auto_model = auto_arima(y_train, seasonal=True, m=s,
start_p=1, d=1, start_q=1,
max_p=3, max_d=3, max_q=3,
start_P=1, D=1, start_Q=1,
max_P=3, max_D=3, max_Q=3,
trace=True, error_action='ignore',
suppress_warnings=True, stepwise=True)
auto_forecast = auto_model.predict(n_periods=len(y_test))
# 使用SARIMAX进行预测
sarima_model = SARIMAX(y_train, order=(p, d, q), seasonal_order=(P, D, Q, s))
sarima_result = sarima_model.fit()
sarima_forecast = sarima_result.predict(start=len(y_train), end=len(y_train) + len(y_test) - 1)
# 对比两种方法得到的结果
print("Auto_arima forecast:", auto_forecast)
print("SARIMAX forecast:", sarima_forecast)
如果仍然出现结果不一致的情况,可能是因为两者使用了不同的优化算法。此时可以尝试调整优化算法的参数,或使用不同的优化算法来训练模型。