import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
# 랜덤 워크 생성
np.random.seed(42)
t = 300
y = np.cumsum(np.random.randn(t))
# 차분
diff_y = np.diff(y)
# ARIMA 모델 생성
model = ARIMA(diff_y, order=(1, 0, 0)) # ARIMA(p, d, q)에서 d가 차분의 차수를 의미합니다.
result = model.fit()
# 미래 예측
n = 1 # 다음 시점 하나만 예측
forecast = result.forecast(steps=n)
# 예측 결과 시각화
plt.plot(np.arange(t, t + n + 1), np.concatenate(([diff_y[-1]], forecast)), label='Predicted', linestyle='dashed')
plt.plot(np.arange(t), y, label='Actual')
plt.legend()
plt.show()