기타통계이야기/행렬,고유값(eignevalue),다변량통계

행렬의 개념, 고유값, 고유벡터, 회전행렬

학위논문통계 2013. 4. 30. 03:38

 

 

 

1. ER

 

지난번 equivalence relation에 관해서 썼는데요 이거 사실은 다 아는 이야기입니다. 한국사회의 가장 큰 문제의 하나인 혈연, 자연, 학연이 다 ER입니다.

 

이 ER은 세가지 조건을 만족해야 합니다.

 

먼저 자기는 자기와 “어떤”관계여야 하고,

자기와 A와 “어떤 관계”이면 A와 자기와 “어떤 관계”야 하고, 짝사랑은 그래서 안되겠죠,

마지막으로 자기와 A와 “어떤 관계”이고 A와 B가 “어떤 관계”이면 자기와 B와 “어떤 관계”가 있어야 합니다.

 

위 세가지 조건을 만족시키면 “어떤 관계”는 ER이 됩니다.

 

그래서 한국은 위의 학연, 지연, 혈연 등에 의해 class로 갈갈이 분열되어 있다는 것이죠. 그래서 사람들이 출세를 위해 이 쪼개진 class에서 개구리처럼 폴짝 폴짝 뛰어다닌다는 것이죠. 이런 상황에서 창조경제가 잘 이루어질까요?

 

출세를 위해 폴짝 폴짝 뛰는 것까지는 좋은데 위로 올라갈수록 거기에 해당하는 책임감과 실력을 갖춰야 하겠지요.

 

이 ER은 생각보다 수학에서 많이 나옵니다. 잘 알아두시면 공부하는데 편합니다.

 

 

 

 

2. 행렬

 

그럼 행렬이야기를 더 해볼까요. 흔히들 행렬을 함수나 방정식하고 많이 연결해서 이야기합니다. 특히 초보 행렬 이론은 방정식하고 많이 연관을 시키죠. 함수나 방정식이나 거의 같은 개념이죠. x와 y의 관계를 규정하는 것이 함수이고 y의 값이 주어졌을 경우 미지수 x를 푸는 것이 방정식이고요. 고등학교 수학에 다 나오는 이야기죠.

 

1) 방정식

 

방정식은 여러분이 다 배운 불능이나 부정이니 하는 이야기를 다루는 것입니다.

 

a11*x1 + a12*x2 = y1

a21*x1 + a22*x2 = y2

a31*x1 + a32*x2 = y3

 

 

이런 방정식을 생각해보죠. 그럼 이걸 사람들이 간단하게

 

Ax=y

 

 

이런 식으로 표시한다는 것이죠. 여기서

 

A=[a11 a12]

[a21 a22]

[a31 a32]

 

 

이렇게 표시되고요. 위에서 a1*x1+a2*x2 이런 모양을 내적(inner product)이라고 하고 <a, x> 이런 식으로 많이 표시합니다. 이 내적이 정의되는 공간을 Hilbert Space라고 하는데 매우 중요한 공간입니다. 이 내적이 0이면 기하학적으로 서로 수직모양을 하게 됩니다. 예를 들어 3차원 공간의 단위벡터인 e1=(1,0,0), e2=(0,1,0), e3=(0,0,1)이 있을 때 <e1, e2>=<e1,e3>=<e2,e3>=0 이고 이때 전부 수직관계를 이루고 있죠. 그런데 위의 방정식은 풀어질까요?

 

미지수는 2개이고 방정식은 3개인데요.

 

 

 

2) 함수

 

두 번째로 함수로 생각하는 경우입니다. 위의 방정식을 함수로 생각하고 2차 실수공간을 정의역으로 하고 3차 실수공간을 치역으로 하는 함수가 된다는 것이죠.

 

 

 

 

 

 

어렵게 생각할 필요가 없습니다. 우리가 원점을 지나는 직선을 생각해보죠. 그럼 기울기가 a라고 하면

 

y=ax

 

 

이렇게 표시되겠죠. 이런 경우 그냥 간단하게 [a] 이렇게 1*1 행렬로 표시하자는 것이죠. 위의

 

 

 

a11*x1 + a12*x2 = y1

a21*x1 + a22*x2 = y2

a31*x1 + a32*x2 = y3

 

 

는 2차원 공간에서 3차원 공간으로 보내는 함수인데 이것도 위처럼 복잡하게 쓰지 말고 앞의 계수만 뽑아내

 

 

 

A=[a11 a12]

   [a21 a22]

   [a31 a32]

 

 

 

이렇게 간단하게 적고 원점을 통과하고 2차 공간에서 3차 공간으로 보내는 선형함수로 알아라는 것이죠.

 

이렇게 복잡하게 된 모양을 간략하게 표시하는 개념은 중요합니다. 컴퓨터 압축 이론도 기본적으로 이런 생각이거든요. 예를 들어

 

(00000000001111111111)은 20bit지만 이렇게 표현하지 말고 ((0,10) (1,10)) 즉, ((0 10번), (1, 10번)) 이렇게 간단하게 표시하자는 것이죠. 물리적 정보량이 같다고 해도 실제 정보량을 같지 않습니다.

 

함수를 흔히 function, 또는 mapping이라고 하는데 이것보다 operator 개념으로 생각하는 것이 더 좋습니다. 즉 정의역에 있는 원소 x에 어떤 작동 A를 해서 y로 보낸다는 것이죠. 이런 operator 개념을 시계열에서 한번 나왔습니다. 차분(differencing) operator라고요.

 

예를 들어 적분이나 미분을 흔히들 계산하는 문제로 생각합니다. 그러나 나중에서는 이걸 함수로 해석합니다. 예를 들어 적분은 적분가능한 함수들 모임을 정의역으로 하고 이걸 치역인 실수로 보내는 함수로 생각하고, 미분도 미분가능한 함수들 모임을 정의역으로 하고 또 다른 함수집합을 치역으로 하는 함수로 생각한다는 것이죠. 아래 그림을 보시죠. 이렇게 생각하면 적분과 미분도 선형함수가 됩니다.

 

 

 

 

 

 

 

 

 

 

그럼 고유값의 정의를 한번 볼까요?

 

 

 

 

를 만족시키는 람다를 고유값이라고 하고 그때 x를 고유벡터라고 합니다. 즉 고유값과 고유벡터는 따로 떨어진 개념이 아니고 행렬 A가 주어졌을 경우 (고유값, 고유벡터)라는 짝으로 구해집니다.

 

그럼 위의 정의에서 뭘 알 수 있을까요?

 

자세히 보면 행렬 A는 정의역의 x에 작동(operate)하여 치역에서는 람다*x를 만들어 줍니다. 즉 정의역의 x 벡터를 같은 직선 선상에서 람다만큼 늘이거나 줄이거나 또는 람다가 음수일때는 같은 직선 상이지만 방향을 바꾸어 줍니다. 예를 들어 다음과 같은 행렬을 생각해보죠.

 

 

A=[1/2  0  0]

    [0  1/2  0]

    [0   0    4]

 

 

 

이럴 경우 고유값은 0.5와 4가 되고 0.5에 해당하는 고유벡터는 고유값이 0.5일 때 (x, y)공간이 되고, 고유값이 4일 경우에는 (x,y) 공간에 수직인 z의 공간이 됩니다. 그럼 형렬 A는 (x,y)공간에 있는 벡터는 원점으로 1/2 만큼 쭉 빨아 당기고, z 축 공간에 있는 벡터는 4배 늘리는 작동을 합니다. 요새 말아 많았던 욱일승천기 그림 비슷하게 생각하시면 됩니다. 아래 그림을 보시면 되고요

 

 

 

 

 

 

 

 

 

 

좀 어려운 이야기가 되겠지만 고유벡터은 하나의 벡터가 아니고 공간을 형성합니다. 즉 위에서 고유값 0.5에 해당하는 고유벡터는 (x,y) 공간의 모든 벡터가 되고 고유값 4에 해당하는 고유벡터도 z측에 있는 모든 벡터가 됩니다.

 

3차원 공간에서 이 고유벡터에 해당되는 않는 부분이 있지요. 사실상 모둔 점이 거의 고유벡터가 되지 못합니다. 즉 (3, 2, 1) 같이 0이 들어 있지 않는 모든 점은 고유벡터가 아닙니다. 그러나 고유벡터의 있는 벡터의 선형결합으로 3차원 공간을 생성시킬 수는 있습니다. 고유값이 0이 없다면요.

 

==>첨가: 각 고유값에 해당하는 고유벡터 공간은 또 서로 수직입니다.

 

 

 

하여간 이런 사실을 아시고요. 너무 어렵게 생각하지 마시고요, 나중에 공부를 조금씩 하다 보면 개념이 잡힙니다.

 

 

 

이런 고유벡터의 집합을 사회의 어떤 상태라고 보면 A를 정책이라 볼 수 있습니다. 그래서 어떤 정책 A를 작동시키도 결국 그 상태를 벗어나지 못합니다. (x,y) 공간의 점에 A를 작동시켜도 수축만 시키지 결국 (x,y) 상태를 벗어나지 못합니다. 또 z 축에 있는 점도 늘어나게 하지만 z 상에서 벗어나지 못합니다. 즉 지금 상태가 안 좋은 상태이면 똑같은 정책을 계속 퍼 부어도 결국 안 좋은 상태를 벗어나지 못합니다. A가 아닌 다른 정책을 고려해야 한다는 것이죠.

 

 

마크프 체인에서 시간이 지나면 상태가 수렴하는 경우가 생깁니다. 이런 경우

 

Px=x

 

 

라는 관계식이 생기죠. 그럼 위의 고유값의 정의에서 보면 이때 고유값은 1이 될 수 밖에 없습니다. 즉 이 경우 P에 해당하는 전이확률 행렬은 단위행렬과 similar한 행렬이 될 수 밖에 없습니다. 앞에서 similar라는 ER에 대해서 이야기 했지요.

 

생물의 진화과정을 위와 같은 수식으로 표현하면 좀 더 명쾌하게 설명할 수 있겠지요. 이때 시간 단위는 10년이 될 수도 있겠지만 몇십만년이 될 수도 있겠지요.

 

 

 

3) metric tensor

 

세 번째 중요한 개념은 거리를 재는 개념입니다. 수학이나 물리학에서는 metric tensor라고 합니다. 3차원 공간에서 두 점 x와 y의 거리는 다음과 같이 표시되죠. 루트는 빼고요.

 

(x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2

 

 

이건 위의 행렬 표시를 빌려오면

 

 

 

 

 

이렇게 quadratic form이 됩니다.

 

이 metric tensor가 어떤 모양이냐에 따라 공간이 달라집니다. 즉 본질적으로 메트릭행렬이 위의 단위행렬 모양이면 유클리디안 공간이라고 하고 이것과 다르면 구 모양의 공간, 또는 아인쉬타인이 이야기한 휘어진 공간이 나옵니다.

 

통계학에 나오는 Fisher의 Information 행렬이 이 메트릭 텐서 비슷한 개념입니다.

 

 

 

3. Spectral Decomposition Theorem

 

A=PDP'

 

라는 관계가 있을 때 P를 orthogonal 또는 orthonomal 행렬이라고 이야기 했습니다. 벡터의 norm이 1, 즉 기러지가 1이면 아마 orthonamal 이라고 할 겁니다. 옛날 기억을 되살리면요.

 

이 행렬의 대표적인 것이 회전 행렬입니다. 다음과 같이 표시됩니다. 즉 시계 반대방향으로 세타 만큼 회전시키면

 

 

 

 

 

 

 

 

 

아마 이렇게 될 겁니다. 처음 누가 생각했는지 참... 흔히들 선형함수라 하면 직선상의 운동만을 생각하는데 그렇지 안다는 것이죠. 그러나 위의 증명은 생각보다 쉽습니다. x에 단위 벡터 (1, 0), (0,1)을 생각하면 당연히 도출됩니다. 그럼 처음에 세타1을 회전한 다음, 그 다음에 또 세타2를 회전시키면 어떻게 될까요? 다음과 같이 되겠지요.

 

 

 

 

 

 

 

  ==> 첨가: 위 식이 잘 이해가 안되시면 아직 작동시킨다는 것을 잘 이해를 못하신 것 같네요. 처음에 x에 P1울 작동시키고 그 다음 거기에 P2를 작동시키고 그런 개념입니다. 즉 y=P1*x  한 다음 그 다음 y에 P2를 작동시키고 그럼 P2(P1*x)=(P2*P1)*x 이렇게 된다는 것이죠.

 

  

즉 회전행렬을 곱하기만 하면 됩니다. 사실 이건 복소수에 나오는 오일러 공식과 비슷합니다. 사실 +하기를 *형태로 바꿔 주는 함수는 지수함수가 유일하다는 사실에서 어느 정도 관련이 있겠지요. 위의 행렬의 역함수는 어떻게 될까요. 처음 세타만큼 시계 반대 방향으로 돌렸다가 다시 세타 만큼 시계 방향으로 돌리면 다시 원 위치로 가겠지요.

 

 

 

 

  ==> 끝부분이 잘 안보이는데 행렬 I 입니다. identity 행렬입니다.

 

라는 관계가 성립이 되겠지요. 그럼 P(세타)의 역행렬은 P(-세타)가 되겠지요. 그럼 P(-세타)는 어떻게 될까요? 앞에서 이야기 한 것처럼 단위 벡터 (1,0), (0,1)를 세타 만큼 시계방향으로 돌린다고 생각하면 P(-세타)는 바로 구해집니다.

 

자 우리는 이 회전 행렬을 사용할 겁니다. 두 개의 관련있는 변수 X1과 X2가 정규분포를 이루고 있을 때 이걸 회전 시켜 알기 쉬운 타원체 모양으로 갖다 놓는다는 것이죠. 아래 그림을 보시죠