ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 시계열 분석 이론의 기초 - 2
    Programming & Machine Learning/풀어쓰는 머신러닝 2020. 7. 24. 16:08

    이전 포스팅 : https://yamalab.tistory.com/112

     

    시계열 분석 이론의 기초

    시계열 분석은 크게 규칙적 시계열 분석과 불규칙적 시계열 분석으로 나뉜다. 여기서 규칙적 시계열이란 트렌드와 분산이 불변하는 시계열 데이터를 말하고, 불규칙적 시계열이란 트렌드 혹은

    yamalab.tistory.com

     

    지난 포스팅에서는 시계열 분석의 종류, 그리고 알고리즘과 패키지의 활용 방법에 대해 정리했었다. 학교나 회사에서 시계열 분석을 제대로 해볼 기회가 없었기 때문에, 간단한 철학과 활용 정도만 이해하는 수준에서 그쳤었다. 언젠가 쓸 수도 있으니, 대충 뭔지 정도만 알자는 마인드. 그러다 최근에 시계열 분석을 작게나마 제대로 해 볼 기회가 있었는데, 그 과정에서 공부한 내용들을 뒤늦게 정리하려고 한다. 그래서 이번 글은 지난 포스팅과 중복되는 부분이 꽤 있지만, 지난 포스팅에서 설명하지 않았던 이론적 부분이나 접근 과정에 대해 풀어 쓴 내용이 주가 된다. 시계열 분석이라는 분야는 사실 통계학을 매우 깊게 이해하고 있어야 하기 때문에, 처음 접하기엔 너무 어려운 감이 있다. 그래서 이것저것 찾아보다 입문자가 처음 공부하기 좋은 자료를 찾았는데, 본 포스팅 역시 주로 (이곳)을 많이 참고했다.

     

     


     

    1. 시계열 분석의 배경과 본질

     

     

    1) 확률 과정(Stochastic process, Random process)

    먼저, 시계열 분석이라는 것이 무엇을 하는 것인가에 대한 질문으로부터 출발해야 한다. 가장 먼저 이해해야 하는 개념은 확률 과정이라는 개념이다. 확률 과정은 확률 공간에서 시간의 진행에 의해 정의되는 모든 확률 변수들의 모임이라고 할 수 있다. 즉, 시계열 데이터라는 개념은 확률 과정의 표본이라고 할 수 있다. 확률 과정의 표본은 {Y_t : Y_1, Y_2, ... Y_t} 같은 형태로 간단히 표현할 수 있다. 한 가지 예를 들면, 특정 회사의 주가 데이터를 시계열 자료로 보고, 이 시계열 자료가 확률 과정이라고 생각했을 때 우리가 보고 있는 주가는 확률 과정에서 나올 수 있는 하나의 표본일 뿐이다. 그리고 이런 관점을 확장시켜 생각해보면, 우리가 살고 있는 이 세계 자체도 확률 과정의 하나의 표본일 뿐이다.



    2) 정상 확률 과정(Stationary process)

    확률 과정의 모든 모멘트가, 시간 차이(lag)에만 의존하고 절대 시간에 의존하지 않는 것을 정상 확률 과정이라고 한다. 즉, 전체적인 추세가 없는 시계열 상황을 의미한다. 오로지 특정 lag에 대비하여, 그것에만 변화하는 상황을 말한다. 예를 들면, 심장 박동 주기 같은것이 있다. 오로지 특정 lag 안의 변화만 관찰하면 되기 때문이다. 혹은 시간에 상관 없이 모든 값이 일정한 확률 과정을 의미하기도 한다. 이에 따라 기댓값이나 분산 등의 통계값이 시간이라는 변수와 완전히 독립적이게 된다.

     




    3) 비 정상 확률 과정(Non-stationary process)

    정상 확률 과정과 반대이다. 데이터가 추세를 가지는 경우, 즉 기댓값이 시간에 따라 변화하는 경우를 의미한다. 장기적으로 상승하는 삼성전자 주가 같은 것을 예로 들 수 있으며, 시간에 따라 exponential하게 늘어나는 인구데이터 같은 것을 예로 들 수 있다. 기댓값이나 분산 등의 통계값이 계속해서 변하고, 시간에 종속적인 영향을 받는 상황을 의미한다.

     

     


     

     

    2. 시계열 분석을 위한 접근 방법과 개념

     

     

    1) 백색 잡음(White noise)

    이제 시계열 데이터를 분석하는 모델들의 아이디어를 알아볼텐데, 아이디어들을 이해할 때 가장 기본적인 개념이 백색 잡음이다. 백색 잡음은 확률 과정을 구성하는 모든 개별 확률 변수(e_t)들이 서로 독립이고 동일한 분포(e.g. 가우시안)를 따르는 확률 과정을 말한다. 일반적으로 자료에서는 백색 잡음을 앱실론으로 표현한다. 그리고 각각의 확률 변수들의 분포가 가우시안 정규 분포를 따르면 가우시안 백색 잡음, 아니면 비-가우시안 백색 잡음이라고 불린다. 백색 잡음은 시계열 데이터를 정상 시계열 데이터로 분석하는 과정에서 필요한 개념이고, 이해하기 쉬운 개념으로 비유하면 회귀분석에서의 잔차(Residual)과 비슷한 것이라고 생각할 수 있다.

     

    가우시안 백색 잡음의 분포





    2) 결정론적 추세

    만약 확률 과정의 기대값이 시간 t에 대한 함수로 표현 가능하면, 이를 결정론적 추세(trend)라고 한다. 결정론적 추세를 추정한다는 것(trend estimation)은 확률 과정의 결정론적 기댓값 함수를 알아내는 것을 의미한다. 즉, Y_t = f(t) + X_t 같은 함수를 정의할 수 있다는 것인데, 이러한 함수(결정론적 추세를 표현하는 기댓값 함수)를 정의하려면, 확률 과정 Y_t가 일반적인 비정상 과정이 아니라 추정이 가능한 결정론적 모형이라는 것을 전제해야 한다. 이를테면 주식이나 비트코인 같은 시계열 데이터는 비정상성이 너무 강하기 때문에, 이러한 모형들의 전제를 위반하게 된다. 그래서 결정론적 추세를 전제하지 않는 분석 기법을 도입하거나, 몇 가지 트릭들을 이용하여 비정상성을 띠는 데이터를 정상성을 띠는 데이터로 변환하는 작업을 거쳐야 한다.



    3) 다항식 추세

    지금까지의 내용들을 이해했다면, 이제부터는 실제로 어떤 추론 과정으로 모형들을 정의하는지에 대한 설명이다. estimation을 하기 위해 어떤 접근들을 하는지 살펴보도록 하자. 가장 기본적인 것은 다항식 추세이다. 다항식 추세는 확률 과정의 기댓값을 정의할 때, 시간에 대한 다항식으로 이를 나타낼 수 있다고 가정하는 방법이다. 아래와 같이 특정 시간에서의 기댓값을 이전 시간들의 조합인 다항식으로 표현하는 것이다. 가장 일반적으로 생각할 수 있는 시계열 분석 모형이다.





    4) 일반 선형확률과정 모형(General linear process model)

    정상 확률 과정에서 가장 일반적으로 사용되는 모형은 일반 선형확률과정 모형이다. 이 모형은 시계열 정보가 백색 잡음의 현재 값과 과거 값들의 선형 조합으로 이루어져 있다고 가정한다. 일반적으로 아래와 같은 식으로 표현한다.


    단, 이 모형이 성립하려면 다음과 같은 조건을 만족해야 한다. 이는 전체 값이 발산하지 않는 역할을 한다.


    그리고 이러한 모형 표현에서 보통 Lag 라는 연산자가 많이 사용되는데, Lag 연산자는 수식적으로는 아래와 같은 의미를 가지며, 과거의 어느 시점을 참고하는지를 표현하는 역할이라고 볼 수 있다.


    일반 선형확률과정 모형은 계수의 특성에 따라 다음과 같은 하위 모형들이 존재한다. 일반적으로 우리가 알고 있는 시계열 모형들은 지금까지 설명한 이론적 뿌리를 두고 있는 것이다.

    - MA(Moving Average) 모형
    - AR(Auto-Regressive) 모형
    - ARMA(AR + MA) 모형

     

     


     

     

    3. 시계열 분석 과정

     

     

    1) 모형 학습의 원리

     

    MA, AR, 그리고 ARMA 모형에 대한 naive한 설명은 이전 내용을 참고하자. 본 포스팅에서는 위에서 설명한 이론적 배경들을 바탕으로 MA를 다시 한 번 설명할 것이다. 그러면 AR이나 ARMA 등에 쓰인 다항식 항들의 개념도 자연스럽게 이해될 것이다.

    MA 모형은 일반 선형확률모형의 차수가 유한한 버전이라고 할 수 있다. 그리고 일반 선형확률모형의 백색 잡음은 MA에서는 오차(e)를 의미한다. ARMA 같은 곳에서 사용되는 MA 모형은 다음과 같은 수식으로 정의된다.



    위 식에서 오차는 sequential한 과거의 조합을 의미하는데, 이는 과거의 상태와 백색 잡음의 조합을 regression 문제로 만들어서 푼다는 것이다. 그리고 프로그래밍 혹은 수식으로 이 문제를 쉽게 풀기 위해 초항이 존재해야 한다. 이런 문제에서 초항은 어떻게 생성하느냐에 따라 여러 방법이 있지만, 그 방법 자체는 문제 해결에 그렇게 중요하지는 않다. 어쨌든 regression으로 문제를 정의한 뒤에는 MA, AR, ARMA, ARIMA, ARMAX 등 여러 가지 방법에 따라 equation을 만들고, 이에 맞는 방식으로 모델을 fitting하면 된다. 일반적으로는 OLS, Gradient Descent 같은 방법을 사용할 것이다. 만약 AR에 그치지 않고 자기회귀 요소를 고려하고 싶다면 AR 항을 추가하는 것이고(ARMA), 차분을 반영하고 싶다면 차분 항을 추가하면 된다(ARIMA). 그리고 독립적인 변수를 추가해서 regression을 더 잘하고 싶으면 새로운 항 X를 추가하면 된다(ARMAX).

     

     

     

    2) 분석에서 고려할 사항

     

    ARMA 같은 모형에서는 p와 q를 정하는 것을 충분히 고려해야 한다. 단순히 AIC 같은 지표를 통해 선정하는 것 보다는, 위의 이론들에 근거하여 논리적인 기준을 세우는 것이 좋다. 먼저 p를 추정하기 위해 편자기상관계수함수(partial autocorrelation function)를 활용해야 하고, q를 추정하기 위해 자기상관계수함수(autocorrelation function)를 활용해야 한다. 그런 다음에 이를 정량적인 수치로(AIC) 판단하는 것이 옳다고 할 수 있다.

     

    자기상관계수함수는 Y_t와 Y_t-k 사이의 값들의 상관계수를 pearson으로 계산한 것을 뜻한다. 그리고 편자기상관계수함수는 Y_t와 Y_t-k 사이에 있는 Y_t-1, ... Y_t-k+1 의 영향을 배제한 것이다. 이를 배제하기 위해 수학적 트릭을 사용하는데, 자세한 내용은 역시나 이곳을 참고하자.

     

     


     

     

    references

    - https://datascienceschool.net/view-notebook/e0c935b3f55c4302b0fb0c93986562cd/

    - https://en.wikipedia.org/wiki/Autoregressive%E2%80%93moving-average_model

     

    Autoregressive–moving-average model - Wikipedia

    In the statistical analysis of time series, autoregressive–moving-average (ARMA) models provide a parsimonious description of a (weakly) stationary stochastic process in terms of two polynomials, one for the autoregression (AR) and the second for the mov

    en.wikipedia.org

     

    댓글

분노의 분석실 Y.LAB