[Statistics] Covariance vs. Correlation

2022. 5. 1. 23:37·.../Math
728x90
728x90

Covariance vs. Correlation

Covariance (공분산)

"Covariance" is the raw version of correlation.

  • 두 random variable(확률변수)가 얼마나 (선형적으로) 같이 변하는 정도를 나타냄.
  • 여러 random variables 에서는 matrix로 기재됨(covariance matrix, $\Sigma$).
    • main diagonal은 자기자신과의 covariance, 즉 해당 확률변수 하나에 대한 variance임.
    • matrix로 보여지는 경우엔 여러 random variable들이 있고 이들 중에 나올 수 있는 쌍에서의 covariance를 보여줌.
    • 항상 symmetric matrix 임. (every symmetric matrix is orthogonally diagonalizable)
  • Correlaton coefficient(상관계수, Pearson's correlation coefficient, $r$)와 비슷하나, 
    covariance는 두 random variable들이 같이 변하는 정도가 강할수록 큰 값을 가지기도 하지만,
    각각의 random variable의 variance(분산)에도 영향을 받음.
    • 극단적으로 애기해서 두 확률변수가 서로 독립적 이라도 각각의 확률변수의 variance가 클 경우 큰 값을 가짐.
    • 때문에 서로 얼마나 선형적인 상관관계가 있는지를 말하는데 있어서는 Correlation coefficient가 더 많이 사용됨.

다음은 covariance의 수식이다.

$$\begin{aligned}\text{Cov}(X,Y)&=E\left[ (X-E\left[ X\right])(Y-E\left[ Y \right]) \right]\\&=E\left[ (X-{ \mu }_{ X })(Y-{ \mu }_{ Y }) \right]\\&=E\left[ XY-{ \mu }_{ Y }X-{ \mu }_{ X }Y+{ \mu }_{ X }{ \mu }_{ Y } \right] \\ &=E[XY]-{ \mu }_{ Y }E[X]-{ \mu }_{ X }E[Y]+{ \mu }_{ X }{ \mu }_{ Y }\\ &=E[XY]-{ \mu }_{ Y }{ \mu }_{ X }-{ \mu }_{ X }{ \mu }_{ Y }+{ \mu }_{ X }{ \mu }_{ Y }\\ &=E[XY]-{ \mu }_{ X }{ \mu }_{ Y }\\ &=\frac{1}{N-1}\sum^N_{i=1}(X_i-\mu_X)(Y_i-\mu_Y)\end{aligned}$$

  • $E\left[ \quad \right]$ : estimated value로 흔히 mean을 의미한다.
  • $X$, $Y$ : covariance를 구하고자 random variable임.

참고로 covariance의 sign은 linear 관계가 비례관계 인지 역비례관계 인지를 나타냄:

  • positive → 같이 증가,
  • negative→ 역관계(하나가 증가시 하나는 감소)

위의 식은 개념을 잘 보여주는 식이며,

일반적으로는 centering ($\mu_X$와 $\mu_Y$가 0이 되도록 처리하는 것을 가르킴)을 수행했다고 가정하고

다음과 같은 matrix equation으로 나타냄.

 

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

  • 위 식에서 $X$는 centering을 수행한 이후의 matrix임.
    (random variables 이 column으로 배치되고, sample들이 row로 배치됨, 아래 example 참고)
    • centering은 결국 각 column에서 mean이 0이 되도록 column들의 mean을 구하고 각 column에 대해 빼주는 처리를 의미함.
  • $\Sigma$는 covariance matrix 이며 항상 square matrix이면서 symmetric matrix이며 eigne vectors들이 서로 orthgonal함.

Example : Covariance Matrix

다음과 같은 데이터를 수집했다고 가정.

  • $X,Y,Z$ 확률변수를 하나의 sample (or obj)이 가지고 있는 형태 (feature vector).
  • 전체 샘플 수는 4, feature의 수는 3임.
  X Y Z
sample 1 1 4 3
sample 2 2 3 5
sample 3 3 2 2
sample 4 4 1 7

위의 Data를 Matrix $D$라고 할 때, 하나의 feature에 대한 vector들 $\textbf{x},\textbf{y},\textbf{z}$ (←Data Matrix의 column vector)을 통해 다음과 같이 표현할 수 있음.

$$D= \begin{bmatrix} 1 & 4 & 3 \\ 2 & 3 & 5 \\ 3 & 2 & 2 \\ 4 & 1 & 7 \end{bmatrix}=\begin{bmatrix}\textbf{x} & \textbf{y} & \textbf{z} \end{bmatrix}$$

 

feature $X$(or column $X$)와 $Y$의 covariance는 다음과 같음.

$$\begin{aligned}\text{cov}(\textbf{x},\textbf{y})&=\frac{1}{N-1}\langle\textbf{x},\textbf{y}\rangle-\mu_X\mu_Y\\&=\frac{1}{N-1}\textbf{x}^T\textbf{y}-\mu_X\mu_Y \\ &=\frac { 1 }{ 3 } \begin{bmatrix} 1 & 2 & 3 & 4 \end{bmatrix}\begin{bmatrix} 4 \\ 3 \\ 2 \\ 1 \end{bmatrix}-(2.5\times 2.5) \\  &=\frac { 1 }{ 3 } \begin{bmatrix} -1.5 & -0.5 & 0.5 & 1.5 \end{bmatrix}\begin{bmatrix} 1.5 \\ 0.5 \\ -0.5 \\ -1.5 \end{bmatrix} \\ &=-1.667
\end{aligned}$$

 

이를 한번에 표현하는 covariance matrix $\Sigma$는 deviation matrix $D'$을 이용하여 계산 가능함.

  • standard deviation $\sigma$와 variance $\sigma^2$의 관계를 matrix로 확장한 셈.

$$\begin{align*}\text{cov}(D) = \Sigma &={ \frac { 1 }{ N-1 } D' }^{ T }D'\\ &=\frac { 1 }{ 3 } \begin{bmatrix} 1-2.5 & 2-2.5 & 3-2.5 & 4-2.5 \\ 4-2.5 & 3-2.5 & 2-2.5 & 1-2.5 \\ 3-4.25 & 5-4.25 & 2-4.25 & 7-4.25 \end{bmatrix}\begin{bmatrix} 1-2.5 & 4-2.5 & 3-4.25 \\ 2-2.5 & 3-2.5 & 5-4.25 \\ 3-2.5 & 2-2.5 & 2-4.25 \\ 4-2.5 & 1-2.5 & 7-4.25 \end{bmatrix}\\ &=\begin{bmatrix} 1.67 & -1.67 & 1.5 \\ -1.67 & 1.67 & -1.5 \\ 1.5 & -1.5 & 4.92 \end{bmatrix}\end{align*}$$

 

  • $\Sigma$에서 main diagonal은 각 feature column 자체의 variance에 해당.
  • main diagonal 이외의 entry들은 covariance들이기 때문에 $\Sigma$는 항상 Symmetric matrix임.

$$\begin{aligned}\text{cov}(X,Y)&=\text{cov}(Y,X)=&-1.67\\\text{cov}(X,Z)&=\text{cov}(Z,X)=&1.5\\\text{cov}(Y,Z)&=\text{cov}(Z,Y)=&-1.5\\\end{aligned}$$


Correlation (상관계수)

  • Covariance와 함께, 두 random variable (확률변수)간의 선형적인 상관관계의 강도를 나타냄.
    • Covariance와 달리 range가 [-1,1]로 고정됨 : 1,-1 은 각각 매우 강한 positive 상관관계, negative 상관관계를 나타냄. (linear상관관계)
    • 0 인 경우, 두 random variable은 독립임 (전혀 상관없음)
  • Covariance를 각 random variable의 standard deviation(표준편차)로 나누어줌으로서
    각각의 확률변수의 variance에 대해선 normalization임.
    • 때문에 두 변수가 선형적으로 같이 변하는 정도만을 반영하고, 각 변수가 홀로 variance가 큰 경우에는 큰 값을 가지지 않게 되어있음.

주의할 점은 선형적 상관관계를 보여주는 것이라, 비선형적 관계에서는 값의 크기가 낮을 수 있다.
더욱 주의할 점은 상관관계를 의미하지 절대로 인과관계를 의미하는 건 아니라는 점이다.

 

수식은 다음과 같다.

 

$$\begin{align*} r &=\frac { 1 }{ N-1 } \sum _{ i=1 }^{ N }{ \left( \frac { { X }_{ i }-{ \mu }_{ X } }{ { \sigma }_{ X } } \right) \left( \frac { Y_{ i }-{ \mu }_{ Y } }{ { \sigma }_{ Y } } \right) } \\ &=E\left[ \left( \frac { { X }-{ \mu }_{ X } }{ { \sigma }_{ X } } \right) \left( \frac { Y-{ \mu }_{ Y } }{ { \sigma }_{ Y } } \right) \right] \\ &=\frac { E\left[ (X-{ \mu }_{ X })(Y-{ \mu }_{ Y }) \right] }{ { \sigma }_{ X }{ \sigma }_{ Y } } \\ &=\frac { \text{Cov}(X,Y) }{ { \sigma }_{ X }{ \sigma }_{ Y } } \end{align*}$$

 

$N-1$ 로 나누어준 이유는 statistics에서 degree of freedom이 $N-1$로 처리하기 때문임.

 

다음 그림은 wikipedia의 correlation설명으로 나오는 그림으로 non-linear에서 correlation coefficient가 얼마나 낮게 나올 수 있는지를 보여주며, 동시에 기울기가 correlation coefficient와 전혀 상관이 없다는 사실도 보여준다.

위의 숫자가 해당 sample들의 분포에서의 correlation coefficient임.


Correlation (상관관계) Is Not Causation (인과관계)

아래 인용된 내용을 읽어보면,
두 random variable이 직접적인 인과관계인지, 이 둘을 중개해주는 다른 factor들이 있는지 등을
correlation coefficient는 전혀 애기를 해주지 않는다는 것을 확인할 수 있다.
또한 누가 원인인지 결과인지를 구분하는데 필요한 정보도 제공하지 않는다.

You have probably heard at some point that “correlation is not causation,” most likely from someone looking at data that posed a challenge to parts of his worldview that he was reluctant to question. Nonetheless, this is an important point—if xand y are strongly correlated, that might mean that x causes y, that y causes x, that each causes the other, that some third factor causes both, or nothing at all.

Example

import pandas as pd
import numpy as np

x = np.arange(-5,5)

y0 = -3*x+4
y1 = 2*x
y2 = 2*x+3
y3 = 5*x
y4 = x**2
y5 = np.random.randn((10))*5+2

df = pd.DataFrame(
    data = {'x':x, 
            'y0':y0,
            'y1':y1,
            'y2':y2,
            'y3':y3,
            'y4':y4,
            'y5':y5
    },
    index=[*np.arange(10)],
)
  • 여기서 y5는 정규분포에 따르는 random variable이니, correlation이나 covariance가 낮게 나와야 함.
  • y4는 서로 상관관계가 있으나 linear한 관계가 아님.
  • 나머지들은 positive 또는 negative한 선형 상관관계임. (기울기의 차이가 있음)

DataFrame 인스턴스 df는 다음과 같음.

index x y0 y1 y2 y3 y4 y5
0 -5 19 -10 -7 -25 25 4.47
1 -4 16 -8 -5 -20 16 10.44
2 -3 13 -6 -3 -15 9 -1.03
3 -2 10 -4 -1 -10 4 1.56
4 -1 7 -2 1 -5 1 -8.49
5 0 4 0 3 0 0 -1.57
6 1 1 2 5 5 1 3.99
7 2 -2 4 7 10 4 5.08
8 3 -5 6 9 15 9 -1.02
9 4 -8 8 11 20 16 -4.18

Covariance는 다음과 같음. (main diagonal이 1이 아닌 각각의 random variable의 variance임을 유의)

df.cov()
index x y0 y1 y2 y3 y4 y5
x 9.16 -27.5 18.33 18.33 45.83 -9.16 -6.29
y0 -27.5 82.5 -55.0 -55.0 -137.5 27.5 18.88
y1 18.33 -55.0 36.66 36.66 91.66 -18.33 -12.59
y2 18.33 -55.0 36.66 36.66 91.66 -18.33 -12.59
y3 45.83 -137.5 91.66 91.66 229.16 -45.83 -31.48
y4 -9.16 27.5 -18.33 -18.33 -45.83 67.83 15.21
y5 -6.29 18.88 -12.59 -12.59 -31.48 15.21 28.78

Correlation은 다음과 같음.

df.corr()
index x y0 y1 y2 y3 y4 y5
x 1.0 -1.0 1.0 1.0 1.0 -0.36 -0.38
y0 -1.0 1.0 -1.0 -1.0 -1.0 0.36 0.38
y1 1.0 -1.0 1.0 1.0 1.0 -0.36 -0.38
y2 1.0 -1.0 1.0 1.0 1.0 -0.36 -0.38
y3 1.0 -1.0 1.0 1.0 1.0 -0.36 -0.38
y4 -0.36 0.36 -0.36 -0.36 -0.36 1.0 0.34
y5 -0.38 0.38 -0.38 -0.38 -0.38 0.34 1.0

'... > Math' 카테고리의 다른 글

[Math] Jacobian : Summary  (0) 2022.05.07
[Math] Commonly used Vector derivatives.  (0) 2022.05.05
[Statistics] Sample Point Method  (0) 2022.05.01
Closed-form solution and Closed-form expression - Analytical Method  (1) 2022.04.29
Normal Equation : Vector derivative 를 이용한 유도  (0) 2022.04.28
'.../Math' 카테고리의 다른 글
  • [Math] Jacobian : Summary
  • [Math] Commonly used Vector derivatives.
  • [Statistics] Sample Point Method
  • Closed-form solution and Closed-form expression - Analytical Method
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (752)
      • Private Life (13)
      • Programming (194)
        • DIP (112)
        • ML (26)
      • Computer (119)
        • CE (53)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (355)
        • Signals and Systems (107)
        • Math (172)
        • Linear Algebra (33)
        • Physics (42)
        • 인성세미나 (1)
      • 정리필요. (54)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (1)
        • PET Study 2009 (1)
        • 방사선 장해방호 (4)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    SS
    Python
    Convolution
    Term
    cv2
    Vector
    opencv
    signal_and_system
    math
    fourier transform
    function
    SIGNAL
    signals_and_systems
    Programming
    numpy
    Optimization
    인허가제도
    Probability
    DIP
    linear algebra
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[Statistics] Covariance vs. Correlation
상단으로

티스토리툴바