본문 바로가기
수학의 재미/행렬 이론

n차원 상관계수행렬을 촐레스키 분해하면?

by hustler78 2022. 9. 20.
728x90
반응형

 

 

지난 글

2022.09.19 - [수학의 재미/행렬 이론] - 촐레스키 분해

 

촐레스키 분해

이번 글은 2022.09.16 - [분류 전체보기] - 상관계수 행렬은 positive definite! 상관계수 행렬은 positive definite! 이번 글은 2022.07.04 - [수학의 재미/행렬 이론] - 행렬이 양수다? positive semidefinite..

sine-qua-none.tistory.com

에서

  • 촐레스키 분해가 무엇인지?
  • 2차원 상관계수 행렬의 촐레스키 분해
  • 3차원 상관계수 행렬의 촐레스키 분해

를 살펴봤습니다. 상관계수 행렬처럼 positive semidefinite 행렬은 무조건 촐레스키 분해가 가능합니다. 그러면 이 촐레스키 분해를 어디에 사용할까요?

 

 

 

원하는 상관계수를 가지는 표준정규 변수 만들기

 

거두절미하고, 우리의 목적은 이겁니다.

Our Goal

표준정규분포를 가지는 $n$개의 확률변수 $X_1, X_2, \cdots, X_n$을 만들고 싶습니다. 

그런데 $i$번째 변수 $X_i$와 $j$번째 변수 $X_j$의 상관계수가 $\rho_{ij}$가 되도록 만들고 싶습니다.
(물론 $i=j$인 경우에는 같은 변수이므로 상관계수가 1, 즉, $\rho_{ii}=1$입니다.) ㅈ

어떻게 만들면 될까요?

 

거두절미하고, 답은 이겁니다.

 

1. 서로 독립인 표준정규분포 $n$개, $Z_1, Z_2, \cdots, Z_n$ 을 준비한다.

2. 상관계수 행렬 $\mathbf{R}$를 $\mathbf{R} = \mathbf{L}\mathbf{L}^t$로 촐레스키 분해한다.

3. 다음의 행렬을 만족하는 $X_1, X_2, \cdots, X_n$이 우리가 원하는 상관계수를 가지는 표준정규분포이다.

$$ \begin{pmatrix} X_1\\X_2\\ \vdots \\ X_n \end{pmatrix} = \mathbf{L} \begin{pmatrix} Z_1\\Z_2\\ \vdots \\ Z_n \end{pmatrix} \tag{1}$$

여기서 상관계수 행렬은

$$ \mathbf{R} = (\rho_{ij}) = 
\begin{pmatrix}
1 & \rho_{12} & \cdots & \rho_{1n} \\
\rho_{21} & 1 & \cdots & \rho_{2n} \\
\vdots & \vdots &\ddots & \vdots \\
\rho_{n1} & \rho_{n2} & \cdots & 1
\end{pmatrix}
$$

입니다. 위의 1,2 번은 준비과정이니 3번이 왜 맞는지만 한번 볼까요?

 

식(1)의 $X_1, X_2,\cdots, X_n$은 각각 평균이 0인 정규분포이다.

각 $i$에 대하여

$$ X_i = L_{i1}Z_1 + L_{i2}Z_2 + \cdots + L_{in}Z_n = \sum_{p=1}^n L_{ip}Z_p $$

입니다. 즉, $X_i$는 서로 독립인 정규분포 $Z_1, \cdots Z_n$의 일차 결합이므로 역시 정규분포가 됩니다.

또한

$$\mathbb{E}(X_i) = \mathbb{E}\left(\sum_{p=1}^n L_{ip}Z_p \right) = \sum_{p=1}^n L_{ip}\mathbb{E}(Z_p) =0$$

이므로 각각 평균은 0이 됩니다.

 

 

식(1)의 $X_i$와 $X_j$에 대해 $\mathbb{E}(X_iX_j) = \rho_{ij}$이다. 특히 $i=j$일 때는 $\mathbb{E}(X_i^2)=\rho_{ii}=1$이다.

식(1)에 따르면 두 index $i,j$에 대해

$$ X_i = \sum_{p=1}^n L_{ip}Z_p~,~ X_j = \sum_{q=1}^n L_{jq}Z_q $$

입니다. 따라서

$$ X_i X_j = \sum_{p=1}^n \sum_{q=1}^n L_{ip}L_{jq} Z_p Z_q $$ 

이죠. 양변에 $\mathbb{E}(\cdot)$를 씌우면

$$ \mathbb{E}(X_i X_j) = \sum_{p=1}^n \sum_{q=1}^n L_{ip}L_{jq} \mathbb{E}(Z_p Z_q)\tag{2}$$ 

입니다. 그런데

$$
\mathbb{E}(Z_p Z_q) =
\begin{cases}
0, & p\neq  q\\
1, & p = q
\end{cases}
$$ 

이므로 식(2)는 $q$가 $p$값과 같을 때만 살아남습니다. 즉,

$$ \mathbb{E}(X_i X_j) = \sum_{p=1}^n L_{ip}L_{jp} \mathbb{E}(Z_p^2) = \sum_{p=1}^n L_{ip}L_{jp} \tag{3} $$

입니다.

 

반면 상관계수 행렬 $\mathbf{R}$의 $i,j$ 성분의 원소를 구해보죠.

$$
\begin{align}
\mathbf{R}_{ij} & = (\mathbf{L}\mathbf{L}^t)_{ij} \\
       & = \sum_{p=1}^n \mathbf{L}_{ip} \mathbf{L}^t_{pj} \\
        & = \sum_{p=1}^n \mathbf{L}_{ip} \mathbf{L}_{jp} \tag{4}
\end{align}
$$

입니다. 식(3),(4)를 비교해보면!

$$\mathbb{E}(X_i X_j ) = \mathbf{R}_{ij} = \rho_{ij}$$

가 성립하죠. 특히 $i=j$인 경우에는

$$\mathbb{E}(X_i^2) = \rho_{ii}= 1$$ 을 만족하게 됩니다.

 

결론

위 두 관찰로 다음의 결론을 얻습니다.

○ 각 $i$에 대해 $X_i$는 $\mathbb{E}(X_i)=0, \mathbb{E}(X_i^2)=1$인 정규분포, 즉, 표준정규분포입니다.

○ 각 $i\neq j$에 대해, $\mathbb{E}(X_iX_j) =\rho_{ij}$ 즉, $\mathbb{Corr}(X_i,X_j)=\rho_{ij}$$입니다.

 

이로써 $\{X_i\}$들은 상관계수 행렬 $\mathbf{R}$을 갖는 표준정규분포임을 증명했습니다. 

 

 

 

 

상관관계를 가지는 표준정규분포 변수 만들기 최종 정리

 

최종 정리 버전은 다음과 같습니다.

순서 과정 방법
1 서로 독립인(i.i.d) 표준정규 난수 $n$개 뽑기
$ \mathbf{Z} =(Z_1, Z_2, \cdot,s Z_n)$
○ 정균분포 난수를 만들어 주세요 #1 : 중심극한정리 이용  
○ 정균분포 난수를 만들어 주세요 #2 : Normal CDF 이용   
○ 정균분포 난수를 만들어 주세요 #3 : Normal CDF 이용   
○ 정균분포 난수를 만들어 주세요 #4 : Box-Muller 방법   
○ 정균분포 난수를 만들어 주세요 #5 : Marsaglia-Bray method   
○ 정균분포 난수를 만들어 주세요 #6 : random.normal   

같은 방법으로 만들면 됨
2 $\mathbf{R} = \mathbf{L}\mathbf{L}^t$ 촐레스키 분해
3 $ \mathbf{L}\mathbf{Z}$   

 

 

다음 글에서는 실제로 이 원리로 상관관계가 있는 표준정규분포를 만들 수 있는지 코딩을 통해 알아보도록 하겠습니다.

 

 

 

 

 

 

728x90
반응형

댓글