지난 글
2022.09.19 - [수학의 재미/행렬 이론] - 촐레스키 분해
에서
- 촐레스키 분해가 무엇인지?
- 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}$ |
다음 글에서는 실제로 이 원리로 상관관계가 있는 표준정규분포를 만들 수 있는지 코딩을 통해 알아보도록 하겠습니다.
'수학의 재미 > 행렬 이론' 카테고리의 다른 글
상관관계를 가지는 표준정규분포 변수 여러개 만들기(python) (0) | 2022.09.20 |
---|---|
촐레스키 분해 (0) | 2022.09.19 |
3중 대각행렬의 풀이 (0) | 2022.07.29 |
상관계수와 상관계수 행렬 #2 (0) | 2022.07.06 |
상관계수와 상관계수 행렬 #1 (0) | 2022.07.05 |
댓글