시작하기무료로 시작하기

MA 모델로 예측하기

AR 모델에서 했던 것처럼, 이번에는 statsmodels의 plot_predict() 함수를 사용해 MA 모델로 구간 내(in-sample)와 구간 밖(out-of-sample) 데이터를 예측해 보겠습니다.

모수 $\small \theta=-0.9$로 생성한 시계열 simulated_data_1에 대해 구간 내와 구간 밖 예측을 그려 보세요. MA(1) 모델과 AR(1) 모델의 구간 밖 예측에서 보게 되는 큰 차이 한 가지는, MA(1)에서는 한 시점보다 더 먼 미래에 대한 예측이 단순히 표본의 평균이 된다는 점입니다.

이 연습은 강의의 일부입니다

Python으로 배우는 시계열 분석

강의 보기

연습 안내

  • 클래스 ARIMA를 가져오고, 함수 plot_predict도 임포트하세요.
  • 모형의 (p,d,q) 차수가 order=(0,0,1)인 MA(1)으로, 모의 생성 데이터 simulated_data_1을 사용해 ARIMA 클래스의 인스턴스 mod를 만드세요.
  • .fit() 메서드로 모형 mod를 적합하고, 결과 객체를 res라는 이름으로 저장하세요.
  • 인덱스 950번째 데이터부터 구간 내 데이터를 그림으로 표시하세요.
  • plot_predict() 함수를 사용해 인덱스 950부터 시작하여 1010 지점까지 구간 밖 예측과 신뢰구간을 함께 그리세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import the ARIMA and plot_predict from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict

# Forecast the first MA(1) model
mod = ARIMA(___, order=___)
res = mod.fit()

# Plot the data and the forecast
fig, ax = plt.subplots()
simulated_data_1.loc[950:].plot(ax=ax)
plot_predict(res, start=___, end=___, ax=ax)
plt.show()
코드 편집 및 실행