ARMAX
- ARMA모델에 X값을 추가한 모델
아래와 같은 시간에 따른 두가지 feature가 있고 최종적으로 consump을 예측하고자 할때, m2도 독립변수로서 사용하는 모델.
# 모델링
## ARIMAX
fit = sm.tsa.ARMA(raw_using.consump, (1,1), exog=raw_using.m2).fit()
display(fit.summary())
## 잔차 확인
fit.resid.plot()
plt.show()
## 잔차 ACF/PACF
plt.figure(figsize=(10, 8))
sm.graphics.tsa.plot_acf(fit.resid, lags=50, ax=plt.subplot(211))
plt.xlim(-1, 51)
plt.ylim(-1.1, 1.1)
plt.title("Residual ACF")
sm.graphics.tsa.plot_pacf(fit.resid, lags=50, ax=plt.subplot(212))
plt.xlim(-1, 51)
plt.ylim(-1.1, 1.1)
plt.title("Residual PACF")
plt.tight_layout()
plt.show()
ARMAX는 추세제거에는 유리하나 계절성을 제거하지 못한다.
따라서 계절성도 제거해주는 SARMAX를 활용해야 한다.
SARMAX
# SARIMAX 모델링
fit = sm.tsa.SARIMAX(raw_using.consump, exog=raw_using.m2, order=(1,0,0), seasonal_order=(1,0,1,4)).fit()
display(fit.summary())
# 잔차 확인
fit.resid.plot()
plt.show()
# 잔차 ACF/PACF
plt.figure(figsize=(10, 8))
sm.graphics.tsa.plot_acf(fit.resid, lags=50, ax=plt.subplot(211))
plt.xlim(-1, 51)
plt.ylim(-1.1, 1.1)
plt.title("Residual ACF")
sm.graphics.tsa.plot_pacf(fit.resid, lags=50, ax=plt.subplot(212))
plt.xlim(-1, 51)
plt.ylim(-1.1, 1.1)
plt.title("Residual PACF")
plt.tight_layout()
plt.show()
- ar.S.L4, ma.S.L4는 계절성 데이터만 뽑아서 AR, MA적합을 한 것.
- 모든 파라미터가 유의함
- 잔차는 정규분포
- Ljung-box : p-value가 0.05보다 크므로 잔차의 Autocorrelation은 없다.
- Heteroskedasticity : 잔차의 등분산성 체크, p-value가 0.05보다 작으므로 등분산성이 아니다라는 것을 확인
- Jarque-Bera : 정규성 체크, p-value가 0.05보다 작으므로 정규분포를 따른다.
해당 포스팅은 패스트캠퍼스의 <파이썬을 활용한 시계열 데이터 분석 A-Z 올인원 패키지> 강의를 듣고 정리한 내용입니다
728x90
반응형
'Data Analysis & ML > 시계열분석' 카테고리의 다른 글
[시계열분석] 시계열 알고리즘 - 적분 선형확률 과정(2) - SARIMA (1) | 2021.09.25 |
---|---|
[시계열분석] 시계열 알고리즘 - 적분 선형확률 과정(1) - ARIMA (0) | 2021.09.11 |
[시계열분석] 시계열 알고리즘 - 일반 선형확률 과정(3) - ARMA(자기회귀이동평균) (0) | 2021.08.21 |
[시계열분석] 시계열 알고리즘 - 일반 선형확률 과정(2) - AR(자기회귀) (0) | 2021.08.14 |
[시계열분석] 시계열 알고리즘 - 일반 선형확률 과정(1) - MA(이동평균) (0) | 2021.08.07 |