анализ временных рядов с использованием модели ARIMA - PullRequest
0 голосов
/ 29 мая 2019

У меня есть набор данных временного ряда со значениями расхода воды на заданных отметках времени.Теперь я хочу создать модель для обучения этих значений таким образом, чтобы в случае появления в данных какого-либо ненормального значения оно вызывало предупреждение, говорящее о наличии проблемы, требующее внимания.Для моделирования данных я использовал модель ARIMA, но результаты не выглядят уместно.Прогноз сбивается.Ссылка на данные: https://drive.google.com/open?id=1cFHSVpY0XBxsEayl2k1cK4_qWZ4PvDBd

Использую ли я правильную модель, основанную на данных, или мне следует изменить модель для получения релевантных результатов.

Я пробовал acf и pacfпроверить, чтобы найти значения для p и q с d = 1,2.Я также попытался разложить данные, чтобы проверить тенденцию, сезонность и остатки, но это дает цветной блок для сезонности, и я не могу понять, что это значит.График автокорреляции также дает непрерывные результаты.

import statsmodels.api as sm
import matplotlib
decomposition = sm.tsa.seasonal_decompose(df1, model= 'additive')
fig = decomposition.plot()

model = sm.tsa.ARIMA(df1, order=(1,0,1))  
fitted = model.fit(disp=-1) 

  # Forecast
fc, se, conf = fitted.forecast(2000, alpha=0.05)  # 95% conf\
print(fitted.summary())
fc_series = pd.Series(fc, index=test.index)
lower_series = pd.Series(conf[:, 0], index=test.index)
upper_series = pd.Series(conf[:, 1], index=test.index)

# fc_series
fitted.plot_predict(dynamic = False)
fig, ax = plt.subplots()
ax = df1.loc['1970-07-24 05:00:00':].plot(ax=ax)
fig = df1.plot_predict('1983-02-19 05:00:00', '1986-12-22 05:00:00', dynamic=True, ax=ax,plot_insample=False)
plt.show()
...