[2007/10/29] Least square method의 활용 : 통계에서의 correlation 과 covariance matrices

Written by Pilwon Hur (2007/10/29)

예를 들어서 이야기하는 것이 쉬울 것 같다. 숙제성적과 시험성적이 어떻게 서로 연관이 되어 있는지를 원한다고 가정해보자. 다음의 표와 같이 시험성적, 중간고사, 기말고사의 성적이 나열되어 있다. 모두 200점 만점이다.

 

Scores

학생

숙제

중간고사

기말고사

S1

198

200

196

S2

160

165

165

S3

158

158

133

S4

150

165

91

S5

175

182

151

S6

134

135

101

S7

152

136

80

평균

161

163

131

각 학생이 시험정적과 숙제성적에 어떤 상관관계를 가지는지를 비교해 보고 싶다. 먼저 두가지 경우에 대한 점수가 어떻게 연관이 있는지를 알고, 난이도의 차이등을 고려하기 위해서 zero mean 을 취하자. 즉, 각 column들에 대해서 각각의 평균을 빼 준다. 즉, 다음과 같은 행렬을 만들 수 있다.

\[ X= \begin{bmatrix} 37 & 37 & 65 \\ -1 & 2 & 34 \\ -3 & -5 & 2 \\ -11& 2 & -40 \\ 14 & 19 & 20 \\ -27& -28& -30 \\ -9 & -27& -51 \end{bmatrix} \]

\(X\) 의 각 column은 실제 점수의 평균값으로 부터의 편차를 나타낸다. 첫번째로부터 각각의 column을 \(x_1,x_2,x_3\) 이라고 하자.

\(x_1,x_2\) 이 서로 어떻게 연관을 가지고 있는지를 나타내기 위해서는 두 벡터 \(x_1,x_2\) 의 \(\cos \theta\) 를 살펴보면 된다. 무슨 말이냐 하면, 다음과 같다.

  1. 서로 완전히 관계없는 독립적인 두 벡터는 서로 orthogonal 이다. 즉, \(x_1 \perp x_2\) 이다. 이 경우 correlation 은 \(0\) 이 된다.

  2. 서로 완전히 종속적인 두 벡터는 서로 비례한다. 즉, \(x_2=\alpha x_1\) 이다. 이 경우 correlation 은 \(1\) 이 된다.

Correlation이 \(1\) 인 경우, 두 벡터는 linear의 관계를 가지게 된다. 즉 linearity가 성립할 경우 correlation 은 \(1\) 이다. 다른 말로 하면, nonlinear한 경우 correlation 이 \(0\) 과 \(1\) 사이의 값을 가지게 된다.

다시 위의 예로 돌아가면, \(x_1, x_2\) 의 correlation 을 살펴보자.

\[ \cos \theta = \frac{x_1^T x_2}{\lVert x_1 \rVert \lVert x_2 \rVert} \approx 0.92 \]

비록 correlation 이 완벽히 \(1\) 을 가지지는 않지만, 이정도면 아주 높게 서로 correlate 되었다고 말할 수 있다. 다음 그림을 보면 각각의 점의 쌍이 \(x_2 = \alpha x_1\) 에 상당히 가까움을 알 수 있다.

그러면 \(\alpha\) 는 어떻게 구할까?

\(x_2 = \alpha x_1\) 을 만족시켜야 하지만, 정확히 모든 점들이 위의 그래프 위에 있지는 않다. 그렇다면, 이 문제는

\[ \inf \lVert x_2 - \alpha x_1 \rVert \]

의 문제와 같아진다. 이것은 classical projection theorem 에 의해 쉽게 해결할 수 있는 문제이다. 위의 식을 만족시키는 \(\alpha\) 를 \(\hat{\alpha}\) 라고 하자. 이 경우, \(\alpha x_1 \perp x_2-\hat{\alpha} x_1\) 이므로, inner product를 다음과 같이 정의할 경우,

\[ \left< \alpha x_1 , x_2 - \hat{\alpha} x_1 \right> = \alpha x_1^T (x_2 - \hat{\alpha} x_1) = \alpha (x_1^T x_2 - \hat{\alpha} x_1^T x_1) =0 \] \[ \therefore \hat{\alpha}=\frac{x_1^T x_2}{x_1^T x_1} \approx 1.05 \]

두 벡터 \(x_1, x_2\) 의 \(\cos \theta\) 가 correlation 을 나타낸다면, \(\cos \theta\) 의 계산을 편하게 하기 위해서 normalize를 하면 다음과 같다.

\[ \begin{align*} u_1=\frac{x_1}{\lVert x_1 \rVert} \\ u_2=\frac{x_2}{\lVert x_2 \rVert} \end{align*} \]

이렇게 놔두면 는 다음과 같이 아주 쉽게 구할 수가 있기 때문이다.

\[ \cos \theta = u_1^T u_2 \]

그렇다면 행렬 \(X\) 에 대해서 각 column을 각 column의 norm으로 normalize 하면 다음과 같다.

\[ U= \begin{bmatrix} 0.74 & 0.65 & 0.62 \\ -0.02 & 0.03 & 0.33 \\ -0.06 & -0.09 & 0.02 \\ -0.22 & 0.03 & -0.38 \\ 0.28 & 0.33 & 0.19 \\ -0.54& -0.49& -0.29 \\ -0.18 & -0.47& -0.49 \end{bmatrix} \]

만약 \(C=U^T U\) 라고 한다면

\[ C= \begin{bmatrix} 1 & 0.92 & 0.83 \\ 0.92 & 1 & 0.83 \\ 0.83 & 0.83 & 1 \end{bmatrix} \]

이 된다. 이 행렬 \(C\) 가 바로 correlation 행렬이다. 여기서 알 수 있듯이, \(3\) 가지 시험 점수들은 모두 positively correlated 이다. 만약 negatively correlated 일 경우, 음의 계수를 가질 것이다. 계수가 \(0\) 이면 uncorrelated 이다. 평균값으로 부터의 편차를 나타내는 벡터들이 서로 orthogonal 이면 uncorrelated 이고, \(0\) 의 계수를 가지게 된다.

통계에서 correlation 행렬과 관련되어 있는 또 다른 중요한 수치로서 covariance 행렬이 있다. Variance는 어떻게 계산하는지 알고 있을 것이다. 평균에서의 편차들을 각각 제곱한 값들의 평균이다. 즉, variance는 다음과 같이 정의된다.

\[ s^2=\frac{1}{n-1} \sum_i^n x_i^2 = \frac{x^T x}{n-1} \]

이것은 표준편차 \(s\) 의 제곱값이다. 만약 각각 \(n\) 개의 값들을 가지는 두개의 데이터 집합

를 가지고 있다면, 각각 평균값을 빼버린, 편차만을 나타내는 새로운 변수

을 정의할 수 있다. 이럴 경우 covariance 는 다음과 같이 정의된다.

만약 행렬 가 2개 이상의 데이터 집합을 가질 경우에는 covariance (scalar)값을 가지는 것이 아니라, covariance 행렬, S, 을 가지게 된다.

이 예에서 covariance 행렬은 다음과 같은 값을 가지게 된다.

여기서 주대각선 값은

의 각각 variance (분산) 값이다. Off-diagonal 값들은 covariance 이다.

CC BY-SA 4.0 Pilwon Hur. Last modified: May 09, 2024. Website built with Franklin.jl and the Julia programming language.