Prophet을 사용한 다변량 시계열 예측

Prophet은 Facebook에서 개발한 시계열 예측 라이브러리로, 다변량 시계열 데이터를 예측하는 데 사용될 수 있습니다. Prophet은 단순하면서도 강력한 예측 모델을 제공하며, 휴일, 계절성, 트렌드 등 다양한 요소를 고려하여 예측 결과를 생성합니다.

Prophet 설치하기

Prophet을 사용하기 위해서는 먼저 Python 패키지를 설치해야 합니다. 아래의 명령을 사용하여 Prophet을 설치합니다.

pip install pystan
pip install fbprophet

데이터 로드하기

Prophet을 사용하기 위해 다변량 시계열 데이터를 로드해야 합니다. 예를 들어, 주식 시장의 다변량 데이터인 ‘AAPL.csv’ 파일을 사용한다면 아래와 같이 데이터를 로드할 수 있습니다.

import pandas as pd

data = pd.read_csv('AAPL.csv')

데이터 전처리하기

Prophet을 사용하기 전에 데이터를 전처리해야 합니다. 날짜 열이 ‘ds’, 관측값 열이 ‘y1’, ‘y2’인 다변량 데이터 예측을 수행한다고 가정해봅시다. 다음과 같이 데이터를 변환합니다.

data['ds'] = pd.to_datetime(data['ds'])
df = data[['ds', 'y1', 'y2']]

모델 학습하기

Prophet을 사용하여 다변량 시계열 모델을 학습합니다. 아래의 코드는 모델을 초기화하고 학습시키는 예시입니다.

from fbprophet import Prophet

model = Prophet()
model.add_regressor('y1')
model.add_regressor('y2')

model.fit(df)

예측하기

학습된 모델을 사용하여 예측을 생성할 수 있습니다. 다음은 30일간의 예측을 수행하는 예시 코드입니다.

future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)

결과 시각화하기

예측 결과를 시각화하여 확인할 수 있습니다. Prophet은 자체적으로 시각화 기능을 제공합니다. 다음은 예측 결과를 그래프로 보여주는 예시 코드입니다.

fig = model.plot(forecast)
fig.show()

결론

Prophet을 사용하여 다변량 시계열 데이터를 예측하는 방법을 알아보았습니다. Prophet은 간편한 사용법과 강력한 예측 성능으로 인해 많은 데이터 과학자와 예측 모델러들에게 인기가 있는 라이브러리입니다. 다양한 예측 요소를 고려하여 정확한 예측 결과를 생성할 수 있으므로, 시계열 예측 작업에 유용하게 활용할 수 있습니다.

#datascience #시계열예측