알파트로스

[ML4AM] 3.Codependence (3) Information Theory Metrics 본문

Machine Learning for Asset Managers

[ML4AM] 3.Codependence (3) Information Theory Metrics

알파트로스 2024. 7. 2. 20:00

 

Information-Theoretic Association(정보-이론적 연관성)은 금융 데이터 분석 및 머신 러닝에서 상관 계수의 한계를 극복하는 데 중요한 역할을 한다.

이 섹션에서는 주요 정보 이론 개념인 Entropy 와 Joint Entropy, Conditional Entropy Kullback-Leibler (KL) Divergence, Cross Entropy, Mutual Information, Variation of Information에 대해 설명한다


Methodology Symmetry Metric Clustering Reason
Entropy Yes No No 엔트로피는 변수 간의 관계가 아닌 단일 변수의 불확실성을 측정한다.
Joint Entropy Yes No No 결합 엔트로피는 두 변수의 결합된 불확실성을 측정하지만 유사성을 직접 측정하지는 않는다.
Conditional Entropy No No No 조건부 엔트로피는 한 변수에 다른 변수가 주어졌을 때의 불확실성을 측정하며 대칭적이지 않다.
KL Divergence No No No KL Divergence는 두 확률 분포 간의 차이를 측정하며 대칭적이지 않고 메트릭이 아니다.
Cross Entropy No No No Cross Entropy는 두 확률 분포 간의 차이를 측정하며 대칭적이지 않다.
Mutual Information Yes No Yes 상호 정보는 두 변수 간에 공유되는 정보의 양을 측정하며 대칭적이다.
Variation of Information Yes Yes Yes 두 클러스터링 간의 차이를 측정하며 대칭적이고 메트릭이다.

 

Entropy

  • 엔트로피는 랜덤 변수 \(X\)의 불확실성을 정량화하는 척도이다. 높은 엔트로피는 변수 \(X\)의 값이 예측하기 어렵다는 것을 의미하며, 낮은 엔트로피는 예측하기 쉽다는 것을 의미한다.
    \(p(x)\)는 변수 \(X\)가 값 \(x\)를 가질 확률
    \[
    H(X) = - \sum_{x \in S_X} p(x) \log p(x)
    \]

Joint Entropy

  • 두 변수의 공동 불확실성을 측정한다.
    \(p(x, y)\)는 \(X\)와 \(Y\)의 결합 확률
    \[
    H(X, Y) = - \sum_{x \in S_X} \sum_{y \in S_Y} p(x, y) \log p(x, y)
    \]

Conditional Entropy

  • 변수 \(Y\)가 주어졌을 때 변수 \(X\)의 조건부 엔트로피는 변수 \(Y\)의 값이 알려졌을 때 변수 \(X\)의 불확실성을 측정한다
    \[
    H(X|Y) = H(X, Y) - H(Y)
    \]

Kullback-Leibler (KL) Divergence

  • 두 확률 분포 \( p \)와 \( q \) 사이의 KL 다이버전스는 \( p \)가 참 분포이고 \( q \)가 근사 분포일 때, \( q \)가 \( p \)로부터 얼마나 벗어나는지를 측정한다
    \[
    D_{KL}(p \parallel q) = \sum_{x \in S_X} p(x) \log \left( \frac{p(x)}{q(x)} \right)
    \]
  • 특성
    • 비대칭성: \( D_{KL}(p \parallel q) \neq D_{KL}(q \parallel p) \).
    • 삼각 부등식을 만족하지 않기 때문에 메트릭(metric)은 아니다
    • Variational Inference)에서 자주 사용

Cross Entropy

  • 두 확률 분포 \( p \)와 \( q \) 사이의 교차 엔트로피는 참 분포 \( p \) 대신 근사 분포 \( q \)를 사용하여 변수 \( X \)의 정보 내용을 평가할 때의 불확실성을 측정합니다.
    \[
    H_C(p \parallel q) = - \sum_{x \in S_X} p(x) \log q(x) = H(X) + D_{KL}(p \parallel q)
    \]

Mutual Information

  •  \( Y \)를 아는 것으로 \( X \)의 불확실성이 얼마나 감소하는 지(information gain)를 나타내는 지표이다
    \[ 
    I(X;Y) = H(X) - H(X|Y) = H(X) + H(Y) - H(X,Y)
    \]
  • 특성
    • Non-negativity :  \(  I(X;Y) \geq 0  \) :  Mutual Information은 항상 0 이상이다.
    • Symmetry :  \(  I(X;Y) = I(Y;X)  \) :대칭적이다
    • Self-information : \(  I(X;X) = H(X)  \) :  \( X \)와 \( X \) 사이의 Mutual Information은 \( X \)의 엔트로피와 같다.
    • 삼각 부등식을 만족하지 않기 때문에 Metric은 아니다
    • \( I(X; Y) \geq 0 \), \( I(X; X) = H(X) \)이며, 두 변수가 독립적일 때 \( I(X; Y) = 0 \)이다.
    • 상호 정보가 0이면 두 변수는 독립적이며, 값이 클수록 두 변수 간의 연관성이 크다
  • 클러스터링에서의 활용
    MI는 대칭이고, 상대 변수의 정보를 아는 것이 해당 변수의 불확실성을 얼마나 줄여주는 지에 대한 지표이므로, 유사도 측정에 사용된다. 따라서 clustering의 input으로 활용이 가능하다. 다만 그 값은 두 변수의 엔트로피에 따라 달라질 수 있다. 즉, MI의 절대값 자체는 두 변수 간의 상대적인 의존성 강도를 나타내지만, 엔트로피 값이 큰 변수들 간의 MI는 작은 변수들 간의 MI보다 클 수 있다. 따라서, MI 값을 직접 비교하거나 이를 기반으로 Clustering를 수행할 때, 엔트로피 값의 차이를 고려하지 않으면 공정하지 않을 수 있습니다. 즉 정규화가 필요하다
    • Normalized Mutual Information (NMI)
      이는 MI를 두 변수의 엔트로피의 기하평균으로 나누어 정규화하는 방법이다. NMI는 0에서 1 사이의 값을 가지며, 1에 가까울수록 두 변수 간의 의존성이 강함을 나타낸다.
         \[
         \text{NMI}(X; Y) = \frac{I(X; Y)}{\sqrt{H(X) \cdot H(Y)}}
         \]
      ex) 두 변수 \(X\)와 \(Y\)가 있고, MI가 0.8이라고 가정하고, \(H(X) = 2.0\)이고 \(H(Y) = 1.5\)라면, 정규화된 MI (NMI)는 다음과 같이 계산된다
      \[
      \text{NMI}(X; Y) = \frac{0.8}{\sqrt{2.0 \cdot 1.5}} = \frac{0.8}{\sqrt{3.0}} \approx 0.46
      \]

    • Adjusted Mutual Information (AMI)
      AMI는 무작위로 군집화된 데이터셋에 대해 MI가 가지는 편향을 보정한 값이다.
    • Max Normalization
      MI를 두 변수의 엔트로피 중 작은 값으로 나누어 정규화하는 방법이다
      \[   
      \text{Normalized MI}(X; Y) = \frac{I(X; Y)}{\min(H(X), H(Y))}   
      \]
  • https://gmarti.gitlab.io/qfin/2020/07/01/mutual-information-is-copula-entropy.html

Variation of Information

  • 정보 변이는 두 변수 \( X \)와 \( Y \) 간의 정보 차이를 측정합니다:
    \[
    VI(X; Y) = H(X|Y) + H(Y|X) = H(X) + H(Y) - 2I(X; Y)
    \]
  • 특성
    • 정보 변이는 \( VI(X; Y) = 0 \)일 때 두 변수가 동일함을 의미하며, 정보 변이 값이 클수록 두 변수 간의 차이가 크다
    • 비대칭성, 비음수성, 삼각 부등식을 만족하여 메트릭의 성질을 가진다

Discretization은 연속형 데이터를 이산형 데이터로 변환하여 정보 이론적 개념을 적용하는 중요한 과정이다. 이를 통해 데이터의 불확실성을 보다 정확하게 측정할 수 있다.  적절한 bin 개수 설정은 특히 데이터의 특성과 상관관계에 따라 중요하며, Hacine-Gharbi 등의 연구를 참고하여 최적화를 진행할 수 있다

 

  1. Shannon의 미분 엔트로피 
    •  probability distribution functions \(f_X(x)\)를 가지는 continuous random variable \(X\)의 엔트로피
           \[
           H[X] = - \int_{-\infty}^{\infty} f_X(x) \log f_X(x) \, dx
           \]
    • Gaussian random variable\(X\)의 엔트로피
           \[
           H[X] = \frac{1}{2} \log [2 \pi e \sigma^2] \approx 1.42
           \]
  2. probability approximation
    • Finite sample의 경우, 관측된 값 \(\{x\}\)의 범위를 \(B_X\)개의 동일한 크기의 구간으로 나누어 \(   \Delta_X = \frac{\max \{x\} - \min \{x\}}{B_X} \)로 정의하면 엔트로피를 다음과 같이 근사할 수 있다. 
      \(f_X(x_i)\)는 \(i\)번째 구간 내의 관측 빈도를 나타낸다.
           \[
           H[X] \approx - \sum_{i=1}^{B_X} f_X(x_i) \log [f_X(x_i)] \Delta_X
           \]
    • \(p(x_i)\)를 \(i\)번째 구간 \(\Delta_X\) 내에서 관측될 확률로 정의하면 \(p(x_i)\)를 다음과 같이 근사할 수 있다
           \[
           p(x_i) \approx f_X(x_i) \Delta_X
           \]
    • 이는 다음과 같이 추정할 수 있다.   \(N_i\)는 \(i\)번째 구간 내의 관측치 수이고, \(N = \sum_{i=1}^{B_X} N_i\)이다.
           \[
           \hat{p}(x_i) = \frac{N_i}{N}
           \]
  3. Discretized estimator of entropy
    • Marginal Entropy Estimator
           \[
           \hat{H}[X] = - \sum_{i=1}^{B_X} \frac{N_i}{N} \log \left[\frac{N_i}{N}\right] + \log[\Delta_X]
           \]
    • Joint Entropy Estimator
           \[
           \hat{H}[X, Y] = - \sum_{i=1}^{B_X} \sum_{j=1}^{B_Y} \frac{N_{i,j}}{N} \log \left[\frac{N_{i,j}}{N}\right] + \log[\Delta_X \Delta_Y]
           \]
    • 이로부터  conditional entropies, mutual information and variation of information를 도출할 수 있다.
      하지만 결과는 \(B_X\)와 \(B_Y\) 선택에 따라 bias될 수 있다.
       B가 너무 작으면, 결국 범위가 커져, 마지막 로그 값도 커진다
       B가 너무 크면,  대부분의 확률 값이 0에 가까워 entropy의 estimation이 불안정해진다
  4. Optimal Binning
    • Marginal Entropy의 경우, Hacine-Gharbi et al. (2012)는 다음과 같은 최적 구간 설정을 제안했다
           \[
           B_X = \text{round}\left[\frac{\zeta}{6} + \frac{2}{3 \zeta} + \frac{1}{3}\right]
           \]
           \[
           \zeta = \sqrt[3]{8 + 324N + 12\sqrt{36N + 729N^2}}
           \]
    • Joint Entropy의 경우, Hacine-Gharbi와 Ravier (2018)는 다음과 같은 최적 구간 설정을 제안했다
      여기서 \(\hat{\rho}\)는 \(X\)와 \(Y\) 간의 추정된 상관 계수이다
           \[
           B_X = B_Y = \text{round}\left[\frac{1}{\sqrt{2}} \sqrt{1 + \sqrt{1 + \frac{24N}{1 - \hat{\rho}^2}}}\right]
           \]

      B의 갯수는 N이 커질수록, 상관관계의 절대값이 커질수록 커진다.
      상관관계의 절대값이 크다는 것은 두 변수의 dependence를 명확히 보려면 더 작게 나누어봐야 한다는 것을 의미한다

# 단변량 및 이변량 사례에서 최적 구간 수 \(B_X\)와 \(B_Y\)를 추정하는 함수

def numBins(nObs, corr=None):
    if corr is None:  # 단변량 경우
        z = (8 + 324 * nObs + 12 * (36 * nObs + 729 * nObs**2)**0.5)**(1/3.)
        b = round(z/6 + 2/(3*z) + 1/3)
    else:  # 이변량 경우
        b = round(2**-0.5 * (1 + (1 + 24 * nObs / (1 - corr**2))**0.5)**0.5)
    return int(b)

# 예시 사용
bXY = numBins(x.shape[0], corr=np.corrcoef(x, y)[0, 1])