시계열 데이터란 시간에 따라 일련의 순차적으로 정해진 데이터의 집합이다. 시계열 데이터 분석을 통해 시계열이 가지고 있는 법칙성을 발견해 모델링하고 추정한 모델을 통하여 미래의 값을 예측하는것까지 할 수 있다.
시계열 데이터는 주로 추세(Trend), 주기(Cycle), 계절성(Seasonality), 노이즈 (Noise)로 구성되어 있으며 이러한 성향을 파악하여 모델링을 할 수 있다. 대표적인 모델로 ARIMA 모델이 있으며 인공지능을 활용하여 데이터분석도 가능하다.
Python을 이용하여 해보기전 datetime이라는 형태에 대해 알아야한다.
Python datetime
다음과 같이 datetime을 지정할 수 있고 datetime형식을 사용해야 python은 시간에 관한 데이터라고 인식할 수 있다.
마찬가지로 pandas를 이용해서 만들 수 있다.
판다스 함수를 쓰면 자동으로 dtype이 datetime으로 변경됨으로 자주 사용하게 된다. 또한 시계열 데이터의 대부분이 index값을 datetime형태로 두고 사용함을 다음과 같은 코드일 이용해 DataFrame을 만들수 있다.
이외에도 여려가지 인덱스값을 지정하는법과 index, row, column을 확인하고 활용하는 방법이 있지만 간단하게만 블로그에는 간단히 정리하고 넘어가야겠다. 또한 shift 함수를 사용하여 함수를 한칸씩 밀수 있는데 이는 나중에 계산할때 활용됨으로 알아두어야 한다.
Rolling/ Expending
rolling은 판다스라이브러리로 이동평균과 같이 이동창을 사용하여 데이터를 묶어 합계, 평균등을 계산하는데 사용된다.
위과 같이 데이터를 묶어 원래의 데이터와 비교해보면 다음과같이 추세정도를 확인 할 수 있다.
Expending은 이동평균과 달리 시작부터의 모든데이터를 계산하는 함수이다. 이외에도 많은 함수들이 있고 다양하게 활용할 수 있지만 가장중요한 것은 dataframe을 원하는데로 만들수 있는지가 중요하다.
다음에는 다양한 모델의 추정, 통계 데이터탐색을 위한 Stasmodels에 대해 정리해야겠다.
'PC > 시계열 데이터분석' 카테고리의 다른 글
시계열데이터 분석(2) - statsmodels (0) | 2023.08.22 |
---|