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와 전혀 상관이 없다는 사실도 보여준다.
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 (0) | 2022.04.29 |
Normal Equation : Vector derivative 를 이용한 유도 (0) | 2022.04.28 |