📝 CONCEPT/Statistics

#8. 공분산행렬

쟈니유 2023. 6. 12. 19:26
728x90

공분산과 상관계수는 문과 대학원생이라면 상관분석을 하면서 쉽게 접하는 개념이지만 이걸 벡터로 하게 될 줄은 꿈에도 몰랐읍니다 

 

 

사전지식 : 공분산과 상관계수 

공분산이란

  • Cov[X,Y] = E[(X-mu)(Y-y's mu)]
    • X,Y 가 각각의 기댓값보다 얼마나 크거나 작은지를 나타내는 것 

 

  • Cov[X,Y] > 0 : 한쪽이 기댓값보다 크면 다른 한쪽도 해당 기댓값보다 큰 값이 나올 때가 많다 & 반대 성립 (기호가 같음)
  • Cov[X,Y] < 0 : 한쪽이 기댓값보다 작으면 다른 한쪽은 크거나 & 반대 성립 (기호가 다름) 
  • Cov[X,Y] = 0 : 위와 같은 경향이 없음. 상관이 없다. 

 

공분산의 성질 

  • Cov[X,Y] = Cov[Y,X]
  • Cov[X,X] = V[X]
  • Cov[X+a, Y+b] = Cov[X,Y] 
  • Cov[aX,bY] = ab*Cov[X,Y] 
  • Cov[X,Y] = E[XY] - E[X]E[Y] 

 

상관계수 

  • 공분산값만으로는 두 확률변수의 경향에 대해 아는 것에 한계가 있음 (공분산 값이 크면 클수록 두 확률변수의 값이 그들의 기댓값보다 훨씬 더 큰것이라고 볼 수 없음) 
  • 그러므로 표준화를 통해 축척을 일정하게 맞추고 이들의 경향을 확인하기 위해 상관계수를 계산함 
  • (이 때 기댓값의 이동은 공분산에 영향미치지 않으므로 신축여부, 즉 표준편차로만 변화시키고 확인)

 

  • 1. 기존 확률변수를 그들의 표준편차로 나눠준다 
    • Xhat = X / std of x , Yhat = Y / std of y , V[Xhat]=V[Yhat]=1 (표준화하면 분산은 모두 1) 
  • 2. 표준화된 Xhat, Yhat의 공분산을 구한다 
    • Cov[Xhat,Yhat] = Cov[X/stdofx, Y/stdofy] = Cov[X,Y]/(std of x, std of y)
  • 이를 상관계수라고 한다. 

 

 

공분산행렬 

 

공분산행렬이란

  • n개의 확률변수 X1,X2,..Xn까지의 공분산을 행렬로 나타낸 것 
  • 공분산 행렬은 대칭행렬(전치해도 마찬가지)
  • 공분산행렬의 대각성분은 모두 >=0 
  X1 X2 X3
X1 V[X1] Cov[X1,X2] Cov[X1,X3]
X2 Cov[X1,X2] V[X2] Cov[X2,X3]
X3 Cov[X1,X3] Cov[X2,X3] V[X3]

 

공분산행렬을 벡터로 정리해보자

열벡터 X에 X1,X2..Xn을 묶어서 표현 (행벡터를 나타내려면 전치행렬로 표현)

 

  • V[X] = E[(X-mu)(X-mu)^T] (mu=E[X]) (벡터X에 대해 V[X]라 쓰면 분산이 아닌 공분산으로 표현)

이와 같이 벡터와 행렬을 이용하면 공분산 행렬을 모아 사용할 수 있음 

 

벡터와 행렬의 연산과 기댓값 계산

X가 변화하는 n차원의 열 벡터일 때 

 

  • E[X] = E[(X1,X2...Xn의 열벡터)] = (E[X1],E[X2]...E[Xn]의 열벡터)
  • E[cX] = cE[X]
  • E[X+a] = E[X] + a
  • E[X+Y] = E[X]+E[Y]
  • E[aX]=E[a^T*X]=a^T*E[X] = a*E[X] (a는 상수벡터) 

 

벡터 확률변수 알아보기 

벡터 확률변수 X의 확률밀도 함수 f_X(x)가 있다면 

  • f_X(x) = f_X1,X2,,,Xn(x1,x2,...xn)
  • E[X] = ∫_R^n x*f_X(x)*dx 
    • 실수 n차원에 속할 확률으 ㅣ기댓값이다! 
  • E[g(X)] = ∫_R^n g(X)*f_X(x)*dx

변수를 바꾸면 달라지는 공분산행렬 

n차원의 변화하는 열벡터 X가 있을 때 

  • E[X] : X의 기댓값 벡터
  • V[X] = E[(X-mu)(X-mu)^T]
  • V[aX] =a^2[X] (a는 상수)
  • V[a^T*X] = a^T * V[X] *a (a는 변하지 않는 열벡터) ... 행벡터*열벡터 이므로 스칼라로 도출됨 
  • V[AX]= A*V[X]*A^T (A는 변하지 않는 보통의 행렬) 

 

임의 방향에서의 편차 

  • 공분산을 도형적으로 해석하기 위해 사전에 알아야 할 개념 
  • 공분산행렬에는 좌표축의 방향(편차가 크다 작다)뿐 아니라 모든 방향의 편차가 정보로 포함되어 있음 

 

  • 임의의 방향인 u에 대해 X를 정사영하고 이에 대한 방향의 편차를 계산할 수 있음 
    • u방향에 정사영하고 직선상의 위치를 Z라고 한다
      • Z = u^T*X
    • Z에 대한 분산을 구하면 공분산행렬 V[X]의 임의방향(u)의 편차를 구할 수 있음