这可能是由于模型中使用的数据或参数不同导致的。为了解决这个问题,可以尝试以下方法:
确保两个模型使用的数据是相同的,可以通过在模型中添加相同的数据来实现。
检查模型参数是否设置一样。特别是在SARIMAX中,需要确保设置正确的阶次和季节性差异。
实例代码如下:
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.tsa.statespace.sarimax import SARIMAX
import pmdarima as pm
import pandas as pd
# 生成随机时间序列
data = pd.read_csv('data.csv', parse_dates=[0], index_col=[0])
train_data = data[:-12]
test_data = data[-12:]
# 使用auto_arima
model_auto = pm.auto_arima(train_data, seasonal=True, m=12, trend='c')
predictions_auto = model_auto.predict(n_periods=12)
# 使用SARIMAX
p, d, q = 1, 1, 1
P, D, Q, S = 1, 1, 1, 12
model_sarimax = SARIMAX(train_data, order=(p,d,q), seasonal_order=(P,D,Q,S))
model_sarimax_fit = model_sarimax.fit()
predictions_sarimax = model_sarimax_fit.forecast(steps=12)
# 比较结果
print(predictions_auto)
print(predictions_sarimax)