使用ARIMA模型进行时间序列分析

时间:2019-05-29 08:32:59

标签: python time-series arima

我有一个时间序列数据集,其中包含给定时间戳记下的水流量值。现在,我想建立一个模型来训练这些值,这样,如果数据中出现任何异常值,它应该会触发警告说有问题,需要引起注意。为了对数据建模,我使用了ARIMA模型,但是结果看起来不合适。天气预报看起来不错。数据链接为:https://drive.google.com/open?id=1cFHSVpY0XBxsEayl2k1cK4_qWZ4PvDBd

我是根据数据使用正确的模型还是应该更改模型以产生相关结果?

我已经尝试过acf和pacf测试,以找到d = 1,2的p和q的值。我还尝试分解数据以检查趋势,季节性和残差,但是它为季节性生成了一个彩色块,我无法理解其含义。自相关图也会产生不间断的结果。

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()

0 个答案:

没有答案