20대 마무리

[#5] 시계열 데이터 분석 - 모델 선정 (ARIMA vs FBprophet) 본문

PROJECT/부동산 저평가 지역 예측

[#5] 시계열 데이터 분석 - 모델 선정 (ARIMA vs FBprophet)

AndaCondaa 2022. 6. 6. 23:55

스콥을 줄여서 경기도 지역의 아파트 매매 가격지수라는 데이터를 확보했고, 이제 데이터를 분석해야 할 시간입니다.

 

부동산 가격 데이터는 시계열 데이터이고, 이 시계열 데이터를 어떻게 분석해야 하는지에 대한 고민을 하게 되었습니다.

 

 

우선 통계학에서 전통적인 방법인 ARIMA 모델과 페이스북에서 개발했고, 시계열 데이터에서 좋은 퍼포먼스를 보이는 

FBprophet을 비교하게 되었습니다.

 

 

 

 

 

ARIMA

ARIMA 모델은 AR,MA, ARMA 모델과 다르게, 차분이라는 개념을 통해서 실제 시계열 데이터의 흔한 상태인 non-stationary한 상황에서 좀 더 나은 예측 성능을 갖는 것이 목표입니다.

따라서 ARIMA에서 설정할 수 있는 변수는 차분 차수 d를 포함하여 ARIMA(p,d,q)로 표현되는데, 

모델 학습 단계에서 이 p,d,q의 값을 설정하는 것이 중요합니다. 

ACF, PACF plot을 통해서 p,d,q 값의 정성적인 결정을 통한 분석Auto ARIMA를 이용하여 AIC 값에 따른 최적의 p,d,q 값 설정을 통한 분석을 모두 진행해 보았습니다.

 

 

 

 

우선 시계열 데이터를 분석하기 위해서, 가지고 있는 데이터의 날짜를 datetime형태로 변환하여 데이터 프레임을 불러왔습니다. (수집한 경기도 데이터 중 '수원시'의 데이터입니다.)

 

Raw data plot

 

 

 

시계열 데이터는 먼저 그 특성을 파악해야 합니다. 이를 위해서 Seasonal decompose를 진행합니다.

statsmodels api를 이용해서 계절성에 관한 분석 plot을 뽑아낼 수 있습니다. 

(https://www.statsmodels.org/stable/generated/statsmodels.tsa.seasonal.seasonal_decompose.html)

import statsmodels.api as sm

 

 

 

 

 

다음 그림은 순서대로 다음 네가지 항목과 관련된 그래프입니다.

 

1.Observed : observed data
2.Trend : The estimated trend component
3.Seasonal : The estimate seasonal component
4.resid : The estimate residuals

 

Seasonal decompose

 

 

그래프를 보시면 예상한 대로 부동산 월별 가격지수 데이터는 특별한 계절성을 보이지는 않는 것을 확인할 수 있습니다.

 

 

이후 ACF, PACF plot을 그려 p,d,q 값을 (1,1,0)으로 설정한 후 예측한 데이터 그래프입니다.

 

파란색이 Raw data, 빨간색이 예측 데이터입니다. 예측이 상당히 되지 않는 걸 볼 수 있습니다...

 

이후 auto arima를 이용해 최적의 p,d,q인(AIC값이 가장 낮게 나온) (2,1,2)로 진행해보았는데, 

평균 RMSE값이 10을 넘어가 버립니다.

 

 

통계학의 전통적인 분석 방식인 ARIMA는 계절성이 없고, non-stationary 한 부동산 데이터의 경향성을 충분히 반영하지 못한다고 판단했습니다. 이후 FBprophet과 비교한 그래프입니다.

 

사실상 예측을 거의 하지 못하고 있다고 볼 수 있습니다.

 

 

이에 대한 분석으로 부동산 데이터는 시계열로 나와있는 가격지수 이외에 다른 변수를 추가할 필요가 있고, 더 디테일한 학습률 조정이 필요하다고 판단하고 다른 모델을 정하게 됩니다.