배우고 나누는 사람

모두에게 더 넓고 더 깊은 세상을 향해

박사과정/연구 빌드업

[빌드업] 공분산과 불확실성 전파 (Covariance and error propagation)

Jeongwon Seo 2022. 10. 8. 12:34

 

지난 시간에는 민감도에 대해서 이야기했었어요. 지난번 포스팅은 안 보신 분들은 여기를 클릭하시면 됩니다. 민감도는 그 자체로도 원하는 출력값/결과값에 대한 입력값이 중요도를 알 수 있기에 의미가 있긴 하지만요. 이러한 분석은 입력값이 수가 적을 때는 가능할지 몰라도 너무 많은 경우에는 일일이 다 파악하기엔 의미 있는 연구를 이끌어내기가 쉽지 않을 수가 있어요. 그보다도 제 연구분야에서 민감도는 이전 포스팅에서 말씀드린 대로 샌드위치 법칙이라고도 불리는 불확실성 전파를 위해 사용되곤 해요. 먼저 공분산에 대해서 이야기하고 진행하는 게 좋을 것 같네요.

 


통계학에는 표준편차 또는 분산이란 개념이 있어요. 모집단 또는 모집단에서 추출한 표본집단의 퍼진 정도를 측정하죠. 평균값과 더불어 통계학에선 매우 중요한 개념 중 하나에요. 근데 표본집단의 특성이 두 가지 이상이라면 그 특성 간 상관관계가 존재할 수 있는데 이를 고려한 것이 공분산 또는 보통 행렬로 쓰는데 이를 공분산 행렬이라 합니다. 예를 들면 강수량과 팔린 우산 개수 간에는 충분한 상관관계가 있겠죠? 물론 비가 일정 이상 오면 개수가 더 증가할 거 같진 않지만요.

위의 예시처럼 상관관계를 바로 파악 할 수 있으면 좋지만 연구에서는 그렇지 않은 경우도 많아요. 만약 우리가 입력값의 공분산과 결괏값에 대한 입력값의 민감도를 알고 있다면 이를 샌드위치 법칙이라는 것으로 계산할 수 있어요. 꼭 입력값, 결괏값 관계가 아니더라도 어떤 임의의 도메인 또는 선형대수에는 공간을 변형할 때 사용이 가는 합니다. 쉬운 예부터 하나 들어볼까요.


예시 1. 단독 변수 vs 단독 변수

어렵지 않은 문제에서 자주 볼 수 있는 유형이죠. $Y$라는 변수가 있고, $X$라는 변수에 $a$라는 계수(상수)를 곱해서 얻을 수 있다면 식으로 아래와 같이 쓸 수 있겠죠?

$$ Y = aX $$

$X$라는 변수의 불확실성을, 여기서는 표준편차로 통일하겠습니다, $\sigma_X$라고 하고 $Y$라는 변수의 불확실성을 $\sigma_Y$라고 한다면 둘 사이에는 어떤 관계가 있을까요? 답부터 말씀드리면 $a$가 이 문제에서 민감도에 해당되므로 쉽게 $\sigma_Y = a\sigma_X$ 이렇게 표현이 가능하죠. 여기까진 너무 쉽죠? 예를 하나 가져와 볼게요. $Y = 2X$의 식에서 $X$의 불확실성이 1이라면 $Y$의 그것은 2라고 쉽게 계산할 수 있는 것입니다. 이처럼 민감도가 그냥 상수라면 문제가 매우 간단합니다.

 

예시 2. 다중 변수 vs 단독 변수

만약 위의 예시에서 $Y$는 그대로 이지만 $X$가 $n$개의 여러 변수$(X_1,X_2,...,X_n)$가 함께 들어가 있는 형태를 취하고 있다면 문제는 어떻게 변할까요? $X$가 여러 변수를 취하는 것처럼 계수$a$도 상수가 아닌 $n$개의 여러 상수를 포함하고 있는 벡터 $a$로 표기할 수 있겠죠? 이를 수식으로 조금 더 풀어보면 아래와 같이 쓸 수 있겠네요.

$$ Y = aX = \pmatrix{a_1&a_2&\cdots&a_n} \times \pmatrix{X_1&X_2&\cdots&X_n}^T$$

이때, 변수 $Y$의 불확실성은 민감도와 $X$변수의 공분산 행렬의 행렬곱을 통해서 얻을 수가 있습니다. $X$의 공분산을 $C_X$라고 한다면 아래와 같은 식으로 변수 $Y$의 분산(Variance 또는 표기 시 Var)을 구할 수 있겠네요.

$$ Var(Y) = a^T \times C_X \times a$$

$a$가 길쭉한 벡터이기 때문에 (모양은 $n \times 1$) 그것의 전치벡터(transpose)와 위의 식처럼 곱하게 되면 $Var(Y)$는 벡터나 행렬이 아닌 숫자가 나올 거예요. 이 숫자의 제곱근을 구하면 표준편차가 나옵니다. 아래의 예를 보시죠.

 

만약 $C_X = \pmatrix{2&1.5\\1.5&4}$,  $a=\pmatrix{3\\4}$ 라면, 저희가 구하고 싶었던 변수 $Y$의 불확실성은 위에 말씀드린 식에 대입하여 구할 수 있겠네요.

$$Var(Y) = a^T \times C_X \times a = \pmatrix{2\\1.5} \times \pmatrix{2&1.5\\1.5&4} \times \pmatrix{2&1.5} = 100$$

따라서 표준편차로 표현된 $Y$의 불확실성은 10이 나오겠네요.

 

예시 3. 다중 변수 vs 다중 변수

만약 변수 $X$와 $Y$ 모두 여러 변수들의 집합이라면 어떨까요? 두 번째 예시에서 변하는 거라고는 벡터 $a$가 이제는 행렬 $A$로 바뀌는 것뿐입니다. 왜냐하면 이젠 $Y$에 대한 $X$의 민감도가 예시 2처럼 여러 개 일 뿐만아니라 $Y$도 여러개 이기 때문에 이제 민감도는 행렬로 표현이 됩니다. 아래 예를 들어볼게요.

$$A = \pmatrix{A_{1,1}&A_{1,2}&\cdots&A_{1,m}\\A_{2,1}&A_{2,2}&\cdots&A_{2,m}\\\vdots&\vdots&\ddots&\vdots\\A_{n,1}&A_{n,2}&\cdots&A_{n,m}} = \pmatrix{\frac{\partial Y_1}{\partial X_1}&\frac{\partial Y_2}{\partial X_1}&\cdots&\frac{\partial Y_m}{\partial X_1}\\\frac{\partial Y_1}{\partial X_2}&\frac{\partial Y_2}{\partial X_2}&\cdots&\frac{\partial Y_m}{\partial X_2}\\\vdots&\vdots&\ddots&\vdots\\\frac{\partial Y_1}{\partial X_n}&\frac{\partial Y_2}{\partial X_n}&\cdots&\frac{\partial Y_m}{\partial X_n}}$$

수학을 좀 아시는 분이라는 맨 오른쪽에 있는 표현도 아실 테지만 그렇지 않아도 별로 상관없습니다. 그냥 어떤 변수에 대한 다른 변수의 미분계수를 수학적으로 약속된 대로 표기한 것뿐이니까요. 이제는 변수의 집합 $Y$의 분산이나 표준편차가 아닌 공분산 행렬($C_Y$)로 계산할 수 있겠네요. 아래를 보실게요. 

$$C_Y = A^T \times C_X \times A$$

위의 식이 제가 전에 말씀드린 샌드위치 법칙이라는 공식입니다. 이렇게 공식에 행렬들을 넣고 계산을 하시면 변수 $Y$에 대한 공분산 행렬이 나오는데 대각선에 위치한 것들을 제곱근 하면 각자 위치에 맞는 표준편차가 나오고 ($Y$의 $i$번째 변수) 대각선에 위치하지 않은 것들은 각기 다른 위치의 변수들의 상관관계를 포함한다고 보시면 좋을 것 같네요.

 

마치며

별 어려운 내용은 없었는데 오랜만에 수식 입력기를 통해 입력을 하다 보니 시간이 꽤나 걸렸네요. 라텍스를 전에 종종 사용하곤 했는데, 결국 워드가 편하더군요. 그래서 라텍스 수식도 몇 개 잊어버리는 바람에 그것도 찾느라 시간이 더 걸렸어요. 아무쪼록 조그만 도움이라도 되었으면 하는 바람이고요. 다음 포스팅에서 또 뵈면 좋겠네요. 읽어주셔서 감사합니다.

728x90
반응형