#python #machine-learning #time-series #prediction
Вопрос:
Я новичок в прогнозировании временных рядов и машинном обучении.
В графе Регистрация — количество регистраций объектов с периодичностью в час
Я пытаюсь предсказать значения на несколько дней вперед, но из этого не выходит ничего нормального. Мы с САРИМОЙ делали прогнозы. Я проверил стационарность — ряд неподвижен.
Мой код:
import pandas as pd
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt
from pylab import rcParams
rcParams['figure.figsize'] = 11, 9
df=pd.read_csv('mt_resample.csv',index_col=[0],parse_dates=[0])
Data Registration
2021-03-25 15:00:00 22
2021-03-25 16:00:00 16
2021-03-25 17:00:00 22
2021-03-25 18:00:00 16
2021-03-25 19:00:00 10
... ...
2021-07-22 07:00:00 4
2021-07-22 08:00:00 11
2021-07-22 09:00:00 15
2021-07-22 10:00:00 8
2021-07-22 11:00:00 17
decomposition = sm.tsa.seasonal_decompose(y, model='additive')
fig = decomposition.plot()
plt.show()
mod = sm.tsa.statespace.SARIMAX(df,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12),
enforce_stationarity=True,
enforce_invertibility=False)
results = mod.fit()
# Get forecast 500 steps ahead in future
pred_uc = results.get_forecast(steps=100)
# Get confidence intervals of forecasts
pred_ci = pred_uc.conf_int()
ax = y.plot(label='observed', figsize=(20, 15))
pred_uc.predicted_mean.plot(ax=ax, label='Forecast')
ax.fill_between(pred_ci.index,
pred_ci.iloc[:, 0],
pred_ci.iloc[:, 1], color='k', alpha=.25)
ax.set_xlabel('Date')
ax.set_ylabel('Registration')
plt.legend()
plt.show()
Скажи мне, что случилось. Как мне получить прогнозы?