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