1. 시계열 데이터

시계열 데이터란?

시간의 흐름에 따라 기록된 데이터

시계열 분석과 시계열 예측

  • 시계열 분석은 데이터의 변동을 분석하고 이해하는것이 목표
  • 시계열 예측은 과거의 기록에서 발견한 패턴이 미래에도 유지된다는 가정하에 이를 모형으로 만들어 미래의 값을 예측하는것

시간그래프

관측 시간에 따라 관측치의 값이 변하는 것을 나타낸 그림. 시계열의 특징을 쉽게 파악할수있음.

시계열 예측의 특징

  • 관측치는 서로 상관관계를 가지고 있음
  • 시간에 따른 순서를 지켜야함

2. 시계열 데이터의 특징

  • 추세(trend) : 데이터가 장기적으로 증가하거나 감소하는 것
  • 계절성(seasonal) : 계절적 요인의 영향을 받아 일정 기간 안에 반복적으로 나타나는 패턴
  • 주기성(cyclical) : 고정된 빈도가 아닌 형태로 증가나 감소하는 모습을 보일 때
  • 불규칙변동(irregular fluctuations) : 어떤 규칙성이 없이 예측불가능하게 우연적으로 발생하는 것

 

🔸 일정한 빈도로 나타나지 않는 요동은 주기적. 빈도가 변하지 않고 연중 어떤 시기와 연관되어 있다면 그 요동은 계절성. 일반적으로, 주기들의 평균 길이는 계절성 패턴의 길이보다 길고, 주기의 크기는 계절적인 패턴의 크기보다 좀 더 변동성이 큼

3. 시계열 분해

시계열 분해란?

시계열에 영향을 주는 패턴을 시계열에서 분리해 시계열의 구성요소를 쉽게 파악할 수 있도록 도와줌

시계열 분해 모형

  • 덧셈 분해 - y(t) = Trend + Seasonality + Noise
  • 곱셈 분해 - y(t) = Trend x Seasonality x Noise

                                                                          시간에 따른 데이터 변동이 일정

                                                                           변동폭이 시계열의 수준에 비례

 

데이터 변환(수학적변환)

데이터의 변환을 통해 변동의 원인을 제거하거나 패턴을 단순하게 만들어서 예측작업을 더 수월하게 하는것이 목적

  • log 변환 : 시간이 흐를수록 변동폭이 커지는 경우 분산을 일정하게 만듬
  • 차분 : 시계열의 평균 변화를 일정하게 만듬

  • Box-Cox 변환 : $\lambda$의 값에 따라 로그변환과 거듭곱변환을 모두 표현할 수 있음
  • ${\displaystyle w_{t}^{(\lambda )}= {\begin{cases}{\dfrac {y_{t}^{\lambda }-1}{\lambda }}&{\text{if }}\lambda \neq 0,\\ log( y_{t})&{\text{if }}\lambda =0.\end{cases}}}$

 

이동평균

평활법의 한 종류로 특정 기간내의 시계열 평균을 계산하는 방법

 

고전적인분해법

  1. 이동평균을 이용하여 추세성분을 계산
  2. 실제 관측값에서 추세를 제거한 시계열을 계산
  3. 해당계절에 대해 추세를 제거한 값의 평균을 구한다음 계절성분을 측정
  4. 마지막으로 계절성과 추세 성분을 빼서 나머지 불규칙 성분을 계산

고전적인 분해법의 단점

  1. 이동평균을 활용하기때문에 양끝의 (k-1)/2개 관측값에 대한 추세 추정 값을 얻을 수 없음
  2. 계절성분이 매년 반복된다고 가정
  3. 특이값에 영향을 받음

STL

비선형관계를 추정하기위한 기법인 Loess를 사용하여 계절성과 추세를 분해

 

4. 확률과정

확률과정이란?

시간별로 표시된 확률변수의 집합

→ 시계열 데이터는 확률과정의 하나의 표본

5. 자기공분산

  • 자기공분산 : 시계열의 시차 값(lagged values) **사이의 선형 관계

$$\gamma_{X}(t,s)= cov(X_t,X_s) = E[(X_t-E(X_t)(X_s-E(X_s)] $$

  • 자기상관함수(정상시계열인경우)

$$ corr(X_{t_1},X_{t_2})=\rho_X(h)=\frac{\gamma_X(h)}{\gamma_X(0)} $$

  • 표본자기공분산

$$ \widehat{\gamma}(h) = \frac{1}{n}\sum_{t=1}^{n-|h|}(x_t-\bar{x})(x_{t+|h|}-\bar{x}) $$

  • 표본자기상관함수

$$ \widehat{\rho}(h)=\frac{\widehat{\gamma}(h)}{\widehat{\gamma}(0)} $$

6. 정상성, Ergodicity

정상성이란?

데이터 변동의 안정성을 의미. 시계열의 평균과 분산이 일정하고, 특정한 추세가 존재하지 않는 성질

Ergodicity

하나의 표본경로만 가지고있는 시계열의 경우라도 충분히 긴 기간의 데이터가 있다면 정상성 시계열의 time average가 ensemble average에 수렴

7. 확률과정모형

백색잡음

자기상관(autocorrelation)이 없는 시계열

확률과정모형의 예

Moving-average process

$$ X_t=\mu + Z_t + \theta_1Z_{t-1}+\theta_2Z_{t-2}+\cdots + \theta_qZ_{t-q} $$

Autoregressive process

$$ X_t=C + \phi_1X_{t-1} + \phi_2X_{t-2}+\cdots + \phi_qX_{t-q}+Z_t $$

Random walk

$$ X_t^{RW}=X_{t-1}^{RW}+Z_t $$

 

PCA 정의

PCA는 기존의 변수를 일차 결합하여 서로 선형 연관성이 없는 새로운 변수, 즉 주성분(principal component, PC)들을 만들어 낸다. 이때 계산은 주로 행렬의 고윳값 분해 또는 특이값 분해(SVD)를 사용한다. 첫 번째 주성분 PC1이 원 데이터의 분포를 가장 많이 보존하고, 두 번째 주성분 PC2가 그 다음으로 원 데이터의 분포를 많이 보존한다. 예를 들어, PC1, PC2, PC3가 원 데이터의 분포(성질)의 약 90%를 보존한다면, 10% 정도의 정보는 잃어버리더라도, 합리적인 분석에 큰 무리가 없으므로, PC1, PC2, PC3만 택하여 3차원 데이터로 차원을 줄일 수 있다. 이 경우 계산과 시각화가 용이하여 데이터를 쉽게 분석할 수 있다.

PCA의 기하학적 의미

PCA는 데이터의 분산(variance)을 최대한 보존하면서 서로 직교하는 새 기저(축)를 찾아, 고차원 공간의 표본들을 선형 연관성이 없는 저차원 공간으로 projection하는 기법

row-wise vector vs column-wise vector

  • row-wise vector: 행에 데이터(n), 열에 특성변수(P)가 위치한 행렬
  • column-wise vector: 열에 데이터(n), 행에 특성변수(P)가 위치한 행렬
  • PCA를 유도하는 과정에서 X는 column-wise로 간주한다.

Covariance Matrix

  • X: (p by n matrix: p: # of variables, n: # of records)
  • COV(X) = $\frac{1}{n}(X - \overline{X})(X - \overline{X})^{T}$
  • X는 column-wise 이므로 $\overline{X}$의 각 Column은 변수들의 평균으로 채워져 있음
  • $(X - \overline{X})$ 가 p x n 차원이고 $(X - \overline{X})^{T}$가 n x p 차원이므로 COV(X)는 P x P 차원임
  • COV(X)는 대칭행렬임
  • COV(X) = $\frac{1}{n}(X - \overline{X})(X - \overline{X})^{T}$ = $\Sigma$이라고 하자

사영(projection)이란?

  • 한 벡터 $\vec{b}$를 다른 벡터 $\vec{a}$에 사영시킨다는 것은 벡터 $\vec{b}$로부터 벡터 $\vec{a}$에 수직인 점까지의 길이를 가지며 벡터$\vec{a}$와 같은 방향을 갖는 벡터를 찾는다는 것을 의미

$$(\vec{b}-p\vec{a})^{T}\;\vec{a} = 0 ⇒ \vec{b}^{T}\vec{a} - p\vec{a}^{T}\vec{a} = 0 ⇒ p = \frac{\vec{b}^T\vec{a}}{\vec{a}^{T}\vec{a}}$$

$$\therefore \vec{x} = p\vec{a} = \frac{\vec{b}^{T}\vec{a}}{\vec{a}^{T}\vec{a}}\vec{a} \; (if \; \vec{a} \; is \; unit \; vector)$$

$$p = \vec{b}^{T}\vec{a}    ⇒ \vec{x} = p\vec{a} = (\vec{b}^{T}\vec{a})\vec{a}$$

Data centering

  • 각 변수의 평균을 0으로 바꿔주는 것
  • $즉, X 대신 (X - \overline{X})$를 쓰는 것
  • 만약 X를 이미 centering 한 것으로 간주하면 COV(X) = $\frac{1}{n}XX^{T}$이 된다.
  • PCA를 수행하기 전에 데이터는 사전에 centering 된 것으로 간주한다. (즉, $\overline{x}_{i} = 0 \; , i=1,2,....,p$)

선형변환

  • PCA는 변수가 p개, 관측치가 n개 있는 데이터 X(p x n)로부터 새로운 변수 $z_{i}$를 만드는 과정으로 모든 특성변수를 선형결합하여 새로운 $z_{i}$를 만들게 된다.
  • 여기서 $\vec{x_i}$는 행렬X의 i번째 변수에 해당하는 열벡터(n x 1)이다. 또한 $\vec{\alpha_{i}}는$ (p x 1)열벡터이고 $\vec{\alpha_{i}}^{T}X$의 값인 $\vec{z_{i}}$ 는 (n x 1 )열벡터 (1차원) 이다.

$$ \vec{z_{1}}= \alpha_{11}\vec{x_{1}} + \cdots + \alpha_{1p}\vec{x_{p}} = \vec{\alpha_{1}}^{T}X \\ \vec{z_{2}}= \alpha_{21}\vec{x_{1}} + \cdots + \alpha_{2p}\vec{x_{p}} = \vec{\alpha_{2}}^{T}X \\ \vdots \\ \vec{z_{p}}= \alpha_{p1}\vec{x_{1}} + \cdots + \alpha_{pp}\vec{x_{p}} = \vec{\alpha_{p}}^{T}X $$

  • 이를 기하학적으로 본다면 $\vec{z_{i}}$는 X를 $\vec{\alpha_{i}}$ (p x 1)라는 새로운 축에 사영시킨 결과물이라고 말할 수 있다.
  • 즉, PCA는 X의 분산을 최대로 보존하는 새로운 차원 $\vec{z_{i}}$를 k개(단, k < p ) 찾아서 X를 k개의 $\vec{\alpha_{i}}$로 각각 정사영시킨 결과물을 새로운 변수로 하여 P차원을 k 차원으로 줄인 것임

PCA의 목적

  • PCA의 목적은 행렬 x의 분산을 최대한 보존하는 것임. 따라서 $z_i$의 분산 또한 최대화 되어야 한다.

$$ MAX_{\alpha_{i}} \; (var(z_{i})) = MAX_{\alpha_{i}}(var(\vec{\alpha_{i}}X)) \\=MAX_{\alpha_{i}}(\vec{\alpha_{i}}^{T}var(X)\vec{\alpha_{i}}) = MAX_{\alpha_{i}}(\vec{\alpha_{i}}^{T}\Sigma\vec{\alpha_{i}})
$$

  • 위식을 만족하는 $\alpha_{i}$는 무수히 많음. 사실 $\alpha_{i}$의 크기를 무작정 키우기만 해도 $z_{i}$의 분산은 높일 수 있음. 때문에 아래와 같은 제약식을 둔다

$$ \parallel \alpha_{i} \parallel \; = \vec{\alpha_{i}}^{T}\vec{\alpha_{i}} \; = 1 $$

by 라그랑지안

$$ L = \vec{\alpha_{i}}^{T}\Sigma\vec{\alpha_{i}} \; - \lambda_{i}(\vec{\alpha_{i}}^{T}\vec{\alpha_{i}}-1) $$

$$ \frac{\partial L}{\partial \vec{\alpha_{i}}} = \;\Sigma\vec{\alpha_{i}} \;-\lambda_{i}\vec{\alpha_{i}} \; = 0 $$

  • 이는 고유벡터(eigenvector)에 정의에 의해 $\alpha_{i}$는 공분산행렬 $\Sigma$의 고유 벡터를 의미하고 $\lambda_i$는 이에 대응하는 $\Sigma$의 고유값이 됨
  • 따라서 X의 분산을 최대화하는 $\alpha_{i}$는 X의 공분산행렬 $\Sigma$의 고유벡터임
  • Q) x의 공분산 행렬 $\Sigma$은 P x P의 비특이행렬(non-singular matrix)임. 따라서 고유벡터, 고유값이 p개 존재함. 그렇다면 어떤 고유벡터가 분산을 가장 최대화할까?

$$ var(z_{i}) = \vec{\alpha_{i}}^{T}\Sigma\vec{\alpha_{i}} \; = \vec{\alpha_{i}}^{T}\;\lambda_{i} \;\vec{\alpha_{i}} \\ = \lambda_i \; \vec{\alpha_{i}}^{T}\vec{\alpha_{i}} \; = \lambda_{i}\\ (\because \; \vec{\alpha_{i}}^{T}\vec{\alpha_{i}} = 1) $$

  • $\lambda_{i}$는 X의 공분산행렬 $\Sigma$의 고유벡터 $\vec {\alpha_{i}}$에 대응되는 고유값(eigen value)임. 따라서 분산을 가장 최대화 하는 공분산행렬의 고유벡터는 공분산 행렬의 고유값중 가장 큰 값의 고유값에 대응되는 고유벡터임

새로운 축들의 무상관성(uncorrelated)

  • pca에서 데이터의 각 변수들은 평균이 0으로 centering되어있다고 가정하고 있음.

$$ \Sigma \; = cov(X) = \frac{1}{n-1}XX^{T} \; \propto XX^{T} $$

  • $\Sigma$의 고유벡터들을 각각의 열벡터들로 하는 행렬을 $\alpha$라 하고, $\alpha$의 각각의 열벡터에 대응하는 고유값을 대각성분으로하고 나머지는 0인 대각행렬을  $\Lambda$ 라고할 때 다음이 성립한다.

$$ \Sigma \alpha = \Lambda \alpha \\ \therefore \Sigma = \alpha\Lambda \alpha^{T} $$

$\sum$는 대칭행렬이므로 다음과 같이 정리할 수 있다

$$ \Sigma ^{T} = (\alpha^{-1})\Lambda \alpha^{T}\\ = \Sigma = \alpha\Lambda \alpha^{-1} $$

$$ \therefore \alpha^{-1} = \alpha^{T}\\ => \alpha^{T}\alpha = I $$

따라서, $\alpha_{i}^{T}\alpha_{j} = 0 \;( if \; i \neq j)$ , $\alpha_{i}^{T}\alpha_{j} = 1 \;( if \; i = j)$

  • $var(\alpha_{i}^{T}X + \alpha_{j}^{T}X)$ = $var(\alpha_{i}^{T}X)$ + $var(\alpha_{j}^{T}X)$ = $var(z_{i})$ + $var(z_{j})$
  • V는 $\Sigma$의 고유벡터들을 각각의 열벡터들로 하는 행렬이므로 PCA에 의해 변환된 좌표축들은 uncorrelated가 됨
  • 따라서 원 데이터의 특성변수들이 상관관계가 크더라도 PCA에 의해 변환된 변수들은 상관관계가 없음

얼마나 많은 principal components를 선택해야 합리적일까

  • total variance ( $\frac{1}{n}XX^{T}$ ) = trace($\frac{1}{n}XX^{T}$)
  • 그런데 $\Sigma = \frac{1}{n}XX^{T}$는 (p x p) non-singular matrix이므로 tr($\frac{1}{n}XX^{T}$) = $\lambda_1 + \lambda_2 + ... + \lambda_p$
  • 따라서 X의 공분산행렬 $\Sigma$의 총 분산의 합은 공분산행렬 $\Sigma$의 고유값들의 합 ($\lambda_1 + \lambda_2 + ... + \lambda_p$)과 같다.
  • 또한 if i $\neq$j 일 때, $z_i 와 z_j$는uncorrelated되어 있으므로 var($z_i + z_j$) = $var(z_i)$+ $var(z_j)$ = $\lambda_{i}$ + $\lambda_{j}$
  • $\frac{var(z_{1}+...+ z_{k})}{total- variance(\Sigma)}$ = $\frac{var(z_{1})+var(z_{2})+ \ldots + var(z_{k})}{\lambda_{1} + \lambda_{2} + \ldots \lambda_{p}}$ = $\frac{\lambda_{1} + \lambda_{2} + \ldots \lambda_{k}}{\lambda_{1} + \lambda_{2} + \ldots \lambda_{p}}$ (단, k < p) 에서 전체 데이터의 분산 중 보존되는 정도를 통해 principal components의 수 k 를 구한다
  • 일반적으로 누적 분산의 합 그래프를 통해 분산의 합의 증가 기울기가 무뎌지는 곳(elbow point)의 k 값을 principal components 의 수로 결정한다

PCA의 단점

  • PCA는 통계모델에서 시작했기 때문에 데이터의 분포가 Gaussian 분포를 가정함. 따라서 Gaussian분포를 따르지 않거나 multimodel Gaussian 분포를 따를 경우 PCA의 결과물이 유용하지 못함
    • 대안: 커널 PCA, LLE(Local Linear Embedding)
  • PCA는 범주 정보를 고려하지 않고 오직 데이터가 가진 분산을 최대한 보존하는 방법론이기 때문에 target의 범주 정보가 주어져있을 때, 분류 성능을 향상시키는 모델은 아님.
    • 대안: Fisher의 LDA(Linear Discriminant Analysis) - 두 범주간의 구분을 잘 할 수 있는 축을 찾아 사영을 하는 방법은 Fisher의 LDA, Partial Least Square(PLS)

데이터 복원

                  X    (p x n) - >               $\alpha_i^{T}$X     (1 x p)(p x n)               - >              $\alpha_{i}\alpha_{i}^{T}$X       (p x 1)(1 x p)(p x n)

  • 값이 완벽하게 복원되지는 않음. 재구축 오차가 생김
  • 재구축 오차를 사용하여 이상치 탐지에서 많이 사용됨

PCA 알고리즘 요약

  1. 데이터 정규화(mean centering)
  2. 기존 변수의 covariance matrix 계산
  3. covariance matrix로부터 eigenvalue 및 이에 대응되는 eigenvector를 계산
  4. eigenvalue 및 이에 대응되는 eigenvector를 순서대로 나열
  5. 정렬딘 eigenvector를 토대로 기존 변수를 변환

$$ \vec{z_{1}}= \alpha_{11}\vec{x_{1}} + \cdots + \alpha_{1p}\vec{x_{p}} = \vec{\alpha_{1}}^{T}X \\ \vec{z_{2}}= \alpha_{21}\vec{x_{1}} + \cdots + \alpha_{2p}\vec{x_{p}} = \vec{\alpha_{2}}^{T}X \\ \vdots \\ \vec{z_{p}}= \alpha_{p1}\vec{x_{1}} + \cdots + \alpha_{pp}\vec{x_{p}} = \vec{\alpha_{p}}^{T}X $$

  1. 누적 분산의 증가 기울기가 무뎌지는 곳을 선택하여 principal components의 수 k 를 선택함

참고: 김성범, 강필성 교수님 강의, https://ratsgo.github.io/machine%20learning/2017/04/24/PCA/

노션 링크 주소: 고유값과 고유벡터

노션 링크 주소:  1-SVM & SVDD

'이상치탐지 > 모델기반' 카테고리의 다른 글

Isolation tree  (0) 2022.11.09
Auto-Encoder  (0) 2022.11.09

노션 링크 주소:  Auto-Encoder

'이상치탐지 > 모델기반' 카테고리의 다른 글

Isolation tree  (0) 2022.11.09
1-SVM & SVDD  (0) 2022.11.09

노션 링크 주소: Parzen Window

'이상치탐지 > 밀도기반' 카테고리의 다른 글

가우시안 분포, 혼합 가우시안 분포  (0) 2022.11.09

노션 링크 주소: 가우시안 분포, 혼합 가우시안 분포

'이상치탐지 > 밀도기반' 카테고리의 다른 글

Parzen Window  (0) 2022.11.09

+ Recent posts