Brightics 서포터즈 3기

[삼성 SDS Brightics_개인 분석 프로젝트(5)] 15. 🚨시계열 분석을 이용한 서울시 112 신고 접수량 예측🚨with 노코드 AI 오픈소스의 대명사✨

눈뚜덩이 2022. 10. 31. 20:40

안녕하세요~

이제 개인 분석 프로젝트가

마지막을 향해

달리고 있네요~😆

 

이번 포스팅에서는

지난 포스팅에서

Time Series Decomposition을

추가 분석하고

Brightics Studio에 내장되어 있는

시계열 모델링 함수를

활용해서

112 신고 접수량을 예측해 보고

최적의 모델을 찾아보려고 합니다!

그럼 바로 시작할게요~~✨

 

Time Series Decomposition

📍월별

혹시 처음 보시는 분들을 위해😆

제가 분석한 데이터는

2019~2021년도의

월별 신고 접수량 데이터입니다!

Time Series Decomposition 함수

사용한 결과인데요!

Observed=> 실제 관측 값

Trend=> 데이터의 추세를,

Seasonal=>데이터의 주기성을

Residual=> 불규칙적 요소

라고 생각해 주시면 될 것 같아요~

월별 전체 신고 접수량 같은 경우에는

대체적으로 감소하는 경향이 있습니다!

그래프에서도 나타나듯이 1년을 기준으로

주기성을 보이고 있습니다!

잔차도 존재한다는 것을 알 수 있습니다~

📍시간대별

시간대별로 관측해 보았을 때는

증가했다가 감소하는 추세가 반복된다는

것을 알 수 있습니다!

주기성도 24시간을 기준으로 나타나고 있다는

것을 확인할 수 있습니다!

그래서 저는 데이터의 패턴을 확인해 보았으니

시계열 모델링을 통해서

신고 접수량을 예측해 보도록 하겠습니다!!

분석 1 -월별 신고 접수량 예측

📍프로세스

 

시계열 모델링을 위한

데이터 확인을 한 후에

ARIMA & Holt-Winters 함수로

데이터를 예측한 다음

결과를 비교해 볼 예정입니다!

 


1. 전처리

먼저 AutoCorrelation 함수로

ACF와 PACF를 확인해 보았습니다!

 

 
 

ACF는 자기상관을 나타내고,

PACF는 다른 시점과의 상관은 제거하고 보는

그래프입니다!

확률적 차분이 필요한지 확인하기 위해서

Unit Root Test도 진행하였는데요!

p-value가 0.05보다 굉장히 작은 값을

가지고 있는 것을 확인할 수 있으며,

단위근이 존재한다는 귀무가설을 기각할 수 있습니다.

따라서 정상성을 확보하여

차분이 필요하지 않다는 것을

알 수 있습니다!

 


2. ARIMA 모델링 & 예측

데이터는 2019~2020 데이터와

2021데이터로 나누어서 2021데이터를

예측하는 형식으로 진행하였습니다!

AutoARIMA Train 함수를 활용하면

p, d, q를 적절하게 찾아준답니다!


3. Holt-Winters 모델링 & 예측

마찬가지로 Holt-Winters Train

함수를 활용하여

Train을 하였습니다!

예측 결과는 위와 같습니다!


4. 평가 지표를 활용한 결과 비교

자 이제 두 개의 모델 성능을

비교해 봐야겠죠~?

라인 그래프로 실제 값과

두 가지 모델로 예측한

값을 나타내보았어요!

그래프로 보기에는 ARIMA 모델이

실제 값과 더 가까워 보이네요:)

조금 더 정확한 결과는

평가 지표로 확인하겠습니다!

저는 대표적으로 사용되는

MAE, MSE, MAPE를 평가 지표로

선정하였는데요!

보시는 것과 같이 월별 신고접수량 예측에는

ARIMA 모델이 더 적합한 것을 알 수 있습니다✨

분석 2 -시간대별 신고 접수량 예측

📍프로세스

시간대별 신고 접수량 예측

프로세스도

월 별 신고 접수량 예측 프로세스와

크게 다르지 않습니다!


1. 데이터 전처리

AutoCorrelation 함수로

확인한 결과

 
 

위와 같은 결과를 얻었습니다!

정상성 검정을 위해서

Unit Root Test도 진행하였는데요!

p-value가 약 0.3이 나와서

귀무가설을 기각하지 못해 차분이

필요하다고 판단을 하였습니다!

(그러나 차분을 하지 않은 것이

결과가 더 좋게 나오더라고요!

제 나름대로 5%의 유의수준에서

기각역과 값의 차이가 크지 않기 때문에

차분을 진행하지 않는 것이 더 나은 것이 아닐까...

생각하고 있지만!

다음 포스팅까지 더 찾아보고 수정할 부분이 있다면

수정하도록 할게요~😊)

2. ARIMA 모델링 & 예측

AutoARIMA Train 함수를 활용하여

 

다음과 같이 p, d, q를 적절하게 찾아줬습니다!


3. Holt-Winters 모델링 & 예측

마찬가지로 Holt-Winters Train

함수를 활용하여

Train을 하였습니다!

예측 결과는 위와 같습니다!


4. 평가 지표를 활용한 결과 비교

자 이제 두 개의 모델 성능을

비교해 볼게요~

라인 그래프로 실제 값과

두 가지 모델로 예측한 결과

Holt-Winters 모델이

실제 값과 더 유사해 보이네요!

이번에도

평가 지표로 확인하겠습니다!

보시는 것과 같이 시간대별 신고접수량 예측에는

Holt-Winters 모델이 더 적합한 것을 알 수 있습니다✨

마무리 및 다음 포스팅 예고💕

다음 포스팅에서는

추가 분석을 진행하고

(멘토님께서 사건 종별 & 접수 유형별

예측도 분석하면 좋을 것 같다고 이야기해 주셔서

이 부분을 추가할 생각입니다!)

수정 사항이 있다면 반영한 후에

이때까지 했던 분석들을

정리하면서

분석 결과에 대한 결론은

내려보도록 하겠습니다~

다음 주가 마지막이라니!!

마지막 포스팅은

더더더더더

알차게 들고 올게요~

안녕!

​※ 본 포스팅은 삼성SDS Brightics 서포터즈 3기 활동의 일환으로 작성하였습니다.

#삼성SDSBrightics #BrighticsStudio #브라이틱스 #모델링 #데이터분석

#Brightics서포터즈 #브라이틱스서포터즈 #데이터시각화 #EDA #시계열

#시계열분석 #데이터프로젝트 #분석프로젝트 #공공데이터 #노코드 #노코드AI

#노코드AI오픈소스