1

나는이 방법을 사용하여 시계열 데이터를 분해 할 수 statsmodels -는 원래 값으로 잔차를 변환하는 방법 파이썬은

from statsmodels.tsa.seasonal import seasonal_decompose 
decomposition = seasonal_decompose(ts) 

trend = decomposition.trend 
seasonal = decomposition.seasonal 
residual = decomposition.resid 

내 질문은 원래 값이 잔존 가치 은밀한 방법이다. 그래서 나는 그것들을 미래의 가치를 예측하는데 사용할 수 있습니다.

답변

0

추가 모델을 수행하는 경우 추세, 계절별 및 나머지 구성 요소를 합산하여 원래 값으로 되돌립니다. 최종 결과는 원본 데이터이므로 백업에 많은 가치가 없습니다. 잔차는 트렌드 및 계절 효과를 고려한 후 원래 데이터에 남은 것입니다. 그것은 선형 회귀와 같습니다. 예측 값과 나머지 값은 종속 변수에 대한 실제 결과를 반환합니다.

0

원래 추세와 계절성을 다시 추가하려했지만 제대로 작동하지 않았습니다. 따라서 예측 결과를 원래 결과와 비교할 때 예측 결과에 잔차를 사용했습니다.

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

그것은 잘 작동합니다 enter image description here

당신이 내 모든 코드를 확인하려면 다음 https://github.com/hanhanwu/Hanhan_Data_Science_Practice/blob/master/sequencial_analysis/try_LSTM.ipynb

그냥 아래로 스크롤 분해하는 방법