这是因为 auto_arima 默认使用了最近的时序数据进行模型拟合。为了避免这个问题,我们需要使用指定时间段的数据进行模型拟合。
以 Python 和 pmdarima 包为例:
import pandas as pd
from pmdarima.arima import auto_arima
# 读入时间序列数据
df = pd.read_csv('data.csv', index_col='Date', parse_dates=True)
# 将数据划分为不同的时间段,比如每年
for year in range(2010, 2021):
start_date = str(year) + '-01-01'
end_date = str(year) + '-12-31'
data = df[start_date:end_date]
# 使用 auto_arima 进行模型拟合
model = auto_arima(data, seasonal=True, m=12)
print(model.summary())
这里我们将时间序列数据按照每年进行划分,对于每个时间段使用 auto_arima 进行模型拟合。这样就可以避免因为使用最近的数据而导致的相同结果问题。同时,指定 seasonal=True 和 m=12 表示数据具有每年 12 个月的季节性特征。