Prophet을 사용하여 시계열 분석해 보았습니다.
Prophet이란?
개발 환경
라이브러리를 설치합시다.
먼저 라이브러리를 설치합니다.
scopy나 pandas등의 다른 라이브러리에 대해서는, Anaconda 설치시에 들어 있기 때문에 생략합니다.
pip install pystan
pip install fbprophet
데이터 로드
이번은 정평의 데이터 세트를 준비하지 않고, 총무성이 공개하고 있는 총 인구수를 1921~2015년분을 준비해, csv 형식으로 성형해 향후의 인구 변동을 예측해 보았습니다.
dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m')
df=pd.read_csv("total_population.csv",names=("ds","y"),date_parser=dateparse)
df.tail()
모델을 구축하고 플롯합시다.
csv 파일을 읽을 수 있음을 상기에서 확인할 수 있었습니다.
그럼, 여기서부터가 본제. 모델을 준비하고 준비한 데이터에 맞도록 맞춥니다. 여기서, 1년에 1개의 데이터이며 데이터수도 적기 때문에 계절 효과는 고려하지 않도록 False로 했습니다.
from fbprophet import Prophet
m = Prophet(yearly_seasonality=False)
m.fit(df)
에서는 2015년 1월부터 200개월 앞의 인구 변동을 예측하고 싶습니다.
우선은 날짜만의 빈 데이터를 준비합니다.
future = m.make_future_dataframe(periods=200,freq='m')
future.tail()
2031년 8월말까지의 예측이 되네요.
에서는, 데이터의 예측을 실시하고 싶습니다.
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
빈 부분에 예측 데이터가 들어왔습니다.
그럼, 이 데이터를 플롯 해 봅시다.
m.plot(forecast)
향후의 인구는 미증인 것 같네요.
단지 앞으로 나아가면 $y_{lower}$와 같이 감소 경향으로 이어지는 것을 볼 수 있습니다. 다른 설명 변수도 관련되어 있을 것 같기 때문에, VAR등의 다변량 시계열 해석으로 평가할 필요가 있을 것 같습니다.
이번은 여기까지.
Reference
이 문제에 관하여(Prophet을 사용하여 시계열 분석해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Fortran/items/d7189cb9c8dc3fd66192
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pip install pystan
pip install fbprophet
이번은 정평의 데이터 세트를 준비하지 않고, 총무성이 공개하고 있는 총 인구수를 1921~2015년분을 준비해, csv 형식으로 성형해 향후의 인구 변동을 예측해 보았습니다.
dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m')
df=pd.read_csv("total_population.csv",names=("ds","y"),date_parser=dateparse)
df.tail()
모델을 구축하고 플롯합시다.
csv 파일을 읽을 수 있음을 상기에서 확인할 수 있었습니다.
그럼, 여기서부터가 본제. 모델을 준비하고 준비한 데이터에 맞도록 맞춥니다. 여기서, 1년에 1개의 데이터이며 데이터수도 적기 때문에 계절 효과는 고려하지 않도록 False로 했습니다.
from fbprophet import Prophet
m = Prophet(yearly_seasonality=False)
m.fit(df)
에서는 2015년 1월부터 200개월 앞의 인구 변동을 예측하고 싶습니다.
우선은 날짜만의 빈 데이터를 준비합니다.
future = m.make_future_dataframe(periods=200,freq='m')
future.tail()
2031년 8월말까지의 예측이 되네요.
에서는, 데이터의 예측을 실시하고 싶습니다.
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
빈 부분에 예측 데이터가 들어왔습니다.
그럼, 이 데이터를 플롯 해 봅시다.
m.plot(forecast)
향후의 인구는 미증인 것 같네요.
단지 앞으로 나아가면 $y_{lower}$와 같이 감소 경향으로 이어지는 것을 볼 수 있습니다. 다른 설명 변수도 관련되어 있을 것 같기 때문에, VAR등의 다변량 시계열 해석으로 평가할 필요가 있을 것 같습니다.
이번은 여기까지.
Reference
이 문제에 관하여(Prophet을 사용하여 시계열 분석해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Fortran/items/d7189cb9c8dc3fd66192
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from fbprophet import Prophet
m = Prophet(yearly_seasonality=False)
m.fit(df)
future = m.make_future_dataframe(periods=200,freq='m')
future.tail()
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
m.plot(forecast)
Reference
이 문제에 관하여(Prophet을 사용하여 시계열 분석해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Fortran/items/d7189cb9c8dc3fd66192텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)