【发布时间】:2022-01-27 12:03:53
【问题描述】:
我正在尝试使用 SARIMAX 模型进行 36 步预测。首先,我通过 sqrt 消除异方差性,并通过线性模型消除趋势。模型的拟合值与系列相似,但是当我尝试预测结果时有点偏离。我不知道我是否搞砸了一些参数或什么。这是我的代码:
#remove heterocedasticity
datos_sqrt=np.sqrt(train)
#remove trend
X = np.array(range(0,len(datos_sqrt)))
X = np.reshape(X, (len(X), 1))
y = datos_sqrt.values
model = LinearRegression()
model.fit(X, datos_sqrt)
trend = model.predict(X)
train_sqrt_trend = datos_sqrt-trend
#fit model
model = SARIMAX(train_sqrt_trend,order = (1, 2, 0),seasonal_order = (2,2,0,12),
enforce_stationarity=False,
enforce_invertibility=False)
results = model.fit()
fitted_values = pd.DataFrame(results.fittedvalues)
#forecast
forecast = results.forecast(steps = 36)
fig, ax = plt.subplots(1, 1, figsize=(15, 5))
plt.plot(fitted_values,label='Fitted')
plt.plot(forecast,label='forecast')
plt.legend(loc='best')
【问题讨论】:
标签: python time-series statsmodels