[시계열(Time-Series) 데이터] 정상성/이동평균/이동표준편차/자기공분산/자기상관계수

박이름·2022년 3월 4일
4

시계열(Time-Series)

목록 보기
1/1

안녕하세요! 오늘은 시계열 데이터와 관련해서 알고 있어야 할 용어를 정리해보고자 합니다! 최근에 주식 가격을 예측하는 데이터를 한 번 다뤄봤는데, 용어들이 상당히 생소해서 이해하기 어려웠습니다 .. 😂

A개념을 알기 위해 B개념을 알아야 하고, B개념을 알기 위해 C개념을 알아야 하고.. 그러다보니 공부를 하는 데에 있어 너무 복잡해지더라구요.. 새로운 개념을 이해할 때에는 해당 용어에 대한 이해가 필요한 것 같아서 한 번 정리해 보았습니다 !


시계열 데이터

: 일정 시간 간격으로 배치된 데이터들의 수열
ex. 주가 데이터, 기상 데이터, 주택 거래량 데이터 등

저는 시계열 데이터를
"발생한 사건을 시간 순서대로 기록한 데이터" 라고 이해했습니다.
그래프로 그려 본다면 x축은 시간, y축은 관측치가 될 것입니다!

시계열 데이터를 수식으로 나타내면 아래와 같습니다.

Y = {Y_t : t ∈ T}, where T is the index set

이러한 시계열 데이터를 활용해서 미래의 데이터를 예측할 때에는 두 가지 전제가 필요합니다.

  1. 과거의 데이터에 일정한 패턴이 발견된다.
  2. 과거의 패턴은 미래에도 동일하게 반복될 것이다.

이 두 가지 전제는 Stationary한 데이터에 대해서만 미래 예측이 가능하다는 것을 의미합니다.

Stationary는 "정상성" 을 뜻하는데요, 정상성이란 다음과 같습니다.

정상성

  • 시간과는 별개로 통계적 특성이 변하지 않는다.
    : 위에서 말하는 통계적 특성은 아래와 같습니다.
  1. 평균
  2. 분산
  3. 공분산

시계열 데이터는 아무래도 시간의 흐름에 따른 데이터이기 때문에 통계적 특성을 구할 때, 구간에 따른 통계치를 확인합니다. 따라서, 위의 세 통계치는 다음과 같은 통계치로 확인합니다.

  1. 평균 -> 이동평균
  2. 분산 -> 이동표준편차
  3. 공분산 -> 자기공분산

최종적으로 정상성을 확인하기 위한 조건은 다음과 같습니다.

조건 1. 이동 평균이 같아야 한다.
조건 2. 이동 표준편차가 같아야 한다.
조건 3. 자기공분산이 같아야 한다.

사실 위의 문장은 뭔가 처음 접하는 사람의 입장에선 확 와닿지 않습니다.
정확한 정의는 아니지만 그래도 쉽게 설명해보자면,
데이터 그래프가 너무 막무가내로 그려져있다면 그건 정상성을 갖추고 있지 않다고 의심해볼 수 있습니다.

정확한 정의는 아니지만, 그래도 처음에 접근할 땐 이렇게 rough하게 이해하고 세세한 부분을 잡아가는 것이 이해하는 데에 도움이 되더라구요!

만약 이 방법이 안맞으시다면.. 위의 내용은 잊어주세요 !

1. 이동 평균 (Rolling mean)

위 그림은 시간의 흐름과는 별개로 데이터의 이동평균이 동일하다는 것을 의미하는데요,딱 봐도 왼쪽(초록색) 그래프가 이동 평균이 동일한 데이터라고 생각됩니다.

이동 평균
수의 집합에서 특정 크기의 부분 집합을 연속적으로 이동하며 산출한 평균

집합의 모든 값을 대상으로 평균을 산출하는 일반평균과는 다르게 일정한 크기의 부분집합을 평균 계산에 활용합니다.

예를 들어,
A = { 1, 2, 3, 4, 5, 6, 7, 8, 9},
B = { 1, 2, 3, 1, 2, 3, 1, 2, 3} 가 있을 때,
(시간의 흐름에 따른 관측값으로 이루어진 집합 - 시계열 데이터로 이루어진 집합)

부분집합의 크기를 3으로 잡고 평균을 계산해보면

(A = { 1, 2, 3 / 4, 5, 6 / 7, 8, 9},
B = { 1, 2, 3 / 1, 2, 3 / 1, 2, 3})

이 때 지정하는 부분집합의 크기를 window라고 합니다 !

집합 A의 이동평균은 [2, 5, 8] 로 주어지고,
집합 B의 이동평균은 [2, 2, 2] 로 주어집니다.

그렇다면, 집합 A는 이동 평균이 변하고 집합 B는 이동 평균이 변하지 않은 것을 알 수 있습니다. 그렇다면 집합 B가 조건 1을 만족한다고 할 수 있습니다.

이동 평균을 구할 땐 연속적인 평균값을 산출하기 때문에 평균값의 흐름을 알 수 있습니다. 집합 A는 평균값이 시간이 지남에 따라 평균값이 증가하는 것을 알 수 있고, 집합 B는 시간이 지남에 따라 평균값이 변하지 않는다는 것을 알 수 있습니다.

또한 이동 평균을 계산할 경우 일시적으로 발생한 돌출된 값은 평균에 의해 희석되므로 과거 데이터로 인해 최근 데이터가 왜곡되는 문제를 방지할 수 있습니다.
위 문장을 이해하기 위해 예시를 들어보면 집합 C = { 1, 1, 2, 2, 6, 2, 2, 1, 1} 가 있을 때, 집합 C에는 돌출된 값 6이 있지만 구간의 평균을 내보면 평균은 2가 도출됩니다. 이것은 평균 계산을 통해 6의 영향이 줄어드는 것을 나타냅니다.

(이를 통해 데이터의 추세 변화를 확인하고, 다양한 부분 집합 크기의 구간 간의 추세변화를 비교할 수 있습니다.)
이 부분은 다른 포스팅에서 다루겠습니다 !

2. 이동 표준편차 (Rolling std)

분산에 루트를 씌운 것이 표준편차이기 때문에 분산의 일정함을 구하기 위해 표준편차를 사용합니다!

이동 표준편차도 시계열 이동평균과 마찬가지로 일정 구간의 표준편차를 구한 것을 의미합니다.

이번 그림에서도 왼쪽(초록색) 그래프가 이동 표준편차가 같은 데이터라고 생각됩니다.

위의 예시로 보았을 때,
집합 A의 이동 표준편차는 [ 1.41, 1.41, 1.41 ] 로 동일하고,
집합 B의 이동 표준편차는 [ 1.41, 1.41, 1.41 ] 로 동일하지만,
집합 C의 이동 표준편차는 [ 0.82, 3.27, 0.82 ] 로 동일하지 않습니다.

그렇다면
집합 A와 집합 B는 조건 2를 만족하지만, 집합 C는 조건 2를 만족하지 않는다고 할 수 있습니다.

3. 자기공분산(Autocovariance)

자기 공분산을 이해하기 위해서는 "공분산"의 개념을 알아야 합니다!
분산은 데이터가 얼마나 퍼져있는 지를 나타내는데요,
공분산은 확률변수 X와 Y가 주어졌을 때, X와 Y가 어떤 모양으로 퍼져있는지를 나타냅니다.

3-1. 공분산
: 각 확률변수들이 어떻게 퍼져있는지를 나타내는 것

즉, X가 커질 때 Y도 커지는 지, 혹은 작아지거나 상관이 없는 지 알게 해주는 지표가 됩니다.

X의 편차와 Y의 편차를 곱한것의 평균으로 구할 수 있고 수식은 아래와 같습니다.

Cov(X, Y) = E((X - u)(Y - v))
(u : X의 표본 평균, v : Y의 표본 평균)
= E(XY) - uv

만약 X와 Y가 독립이라면 공분산은 0이 됩니다.

이러한 공분산도 한계가 있는데요,
X와 Y의 단위의 크기에 영향을 받는다는 것입니다.

예를 들어,
100점만점인 두 과목의 점수 공분산은 별로 상관성이 부족해도 100점만점이기 때문에 큰 값이 나오고,
10점짜리 두과목의 점수 공분산은 상관성이 아주 높더라도 10점만점이기 때문에 작은값이 나오게 됩니다.

따라서 공분산 자체가 두 변수 간의 상관성을 직접적으로 대표하지 못합니다.

이를 보완하기 위해 나온 개념이 바로 상관계수인데요,

3-2. 상관계수
: 공분산을 Normalize하여(두 변수의 표준편차의 곱으로 나눠서)
두 변수 간의 상관성이 항상 -1에서 1 사이의 값 으로 표현되도록 보정한 것.

이렇게 일정 범위로 정해지면 상관계수 값이 두 변수 간의 상관성을 직접 대표할 수 있게 됩니다.

상관계수가 -1에 가까울 수록 두 변수는 음의 상관관계를 갖게 되고,
상관계수가 1에 가까울 수록 두 변수는 양의 상관관계를 갖게 됩니다.
상관계수가 0이면 두 변수는 아무런 상관이 없다고 할 수 있습니다.

공분산과 마찬가지로 두 변수가 독립이면 상관계수는 0이 됩니다.

자! 이제 자기공분산이 무엇인지 알아보겠습니다!

마지막 그림도 왼쪽(초록색) 그래프가 자기공분산이 같다는 것을 짐작해볼 수 있습니다.

3-3. 자기공분산
: X(t)와 X(t+h) 사이의 공분산

자기 공분산은 말 그대로 자기자신과의 공분산이 아니고,
h라는 간격만큼 이동시킨 자기자신과의 공분산을 뜻합니다.
즉, 일정 시차 h를 사이에 둔 자기 자신과의 공분산을 의미합니다.

그렇다면 조건 3의 자기 공분산이 같다는 것은
X(t)와 X(t+h) 사이의 공분산과
X(t-h)와 X(t) 사이의 공분산은 같아야 한다는 건데,

이 조건은 X가 Stationary한, 정상성을 갖춘 시계열 변수라는 조건 하에서만 성립합니다!

4. 자기상관계수(Autocorrelation)

자기 공분산을 확인했으니 자기상관계수를 알아보겠습니다 !
사실 자기상관계수도 상관계수와 동일하게 구합니다.

자기공분산을 표준편차로 나누어서 Normalize해
-1에서 1사이의 값으로 표현되도록 보정한 것

상관계수와 자기상관계수의 차이점은 !
상관계수는 Y와 X1, X2, X3 등 각기 다른 변수들과의 관계를 분석하는 반면
자기상관계수는 Y의 t시점, (t-1)시점, (t-2)시점의 등 동일한 변수의 다른 시차를 두고 관계를 분석합니다.

정리🚩

이번 포스팅은 정상성을 만족하기 위한 세 가지 조건들을 이해하기 위한 용어를 정리해보았는데요! 마지막으로 정리해보겠습니다.

1. 데이터를 일정 구간으로 나누었을 때 그 구간이 갖는 평균이 같아야 한다.

2. 데이터를 일정 구간으로 나누었을 때 그 구간이 갖는 표준편차가 같아야 한다.

3. t시점과 (t-1)시점의 공분산과 t시점과 (t+1)시점의 공분산이 같아야 한다.


저는 용어를 몰라서 헤맨 시간이 많았는데 이 포스팅을 보신 분들은 그런 우여곡절을 겪지 않으셨으면 하네요! 이번 포스팅이 큰 도움이 되셨으면 합니다 ㅎㅎ ☺️

profile
딸기 못잃어

1개의 댓글

comment-user-thumbnail
2023년 11월 14일

정말 이해하기 쉽게 설명해주셨네요. 대박입니다.!!!

시계열의 정상성에 대해서 최고 설명

답글 달기