원래 추세와 계절성을 다시 추가하려했지만 제대로 작동하지 않았습니다. 따라서 예측 결과를 원래 결과와 비교할 때 예측 결과에 잔차를 사용했습니다.
efrom statsmodels.tsa.seasonal import seasonal_decompose
# trend, seasonality are separated out from data, and we can model the residuals
decomposition = seasonal_decompose(ts_log)
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
# AR model
model = ARIMA(ts_log, order=(2, 1, 0))
results_AR = model.fit(disp=-1)
plt.figure(figsize=(20,10))
plt.plot(ts_log_decompose)
plt.plot(results_AR.fittedvalues, color='red')
result = (results_AR.fittedvalues-ts_log_decompose)**2
result.dropna(inplace=True)
plt.title('Decompose RSS: %.4f'% sum(result))
plt.show()
AR, MA, ARIMA 모델을 사용해 보았을 때 AR 모델의 RSS가 가장 낮았습니다. 이제 AR 모델을 사용하여 예측을 수행하고 있습니다.
predictions_AR = pd.Series(results_AR.fittedvalues, copy=True)
print predictions_AR.head()
plt.figure(figsize=(20,10))
plt.plot(series, color='red')
plt.plot(predictions_ARIMA, color='green')
result = (predictions_AR-residual)**2
result.dropna(inplace=True)
plt.title('RMSE: %.4f'% np.sqrt(sum(result)/len(series)))
plt.show()
그것은 잘 작동합니다
당신이 내 모든 코드를 확인하려면 다음 https://github.com/hanhanwu/Hanhan_Data_Science_Practice/blob/master/sequencial_analysis/try_LSTM.ipynb
그냥 아래로 스크롤 분해하는 방법
을