지난 글
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
표준정규분포를 가지는 nn개의 확률변수 X1,X2,⋯,XnX1,X2,⋯,Xn을 만들고 싶습니다.
그런데 ii번째 변수 XiXi와 jj번째 변수 XjXj의 상관계수가 ρijρij가 되도록 만들고 싶습니다.
(물론 i=ji=j인 경우에는 같은 변수이므로 상관계수가 1, 즉, ρii=1ρii=1입니다.) ㅈ
어떻게 만들면 될까요?
거두절미하고, 답은 이겁니다.
1. 서로 독립인 표준정규분포 nn개, Z1,Z2,⋯,ZnZ1,Z2,⋯,Zn 을 준비한다.
2. 상관계수 행렬 RR를 R=LLtR=LLt로 촐레스키 분해한다.
3. 다음의 행렬을 만족하는 X1,X2,⋯,XnX1,X2,⋯,Xn이 우리가 원하는 상관계수를 가지는 표준정규분포이다.
(X1X2⋮Xn)=L(Z1Z2⋮Zn)
여기서 상관계수 행렬은
R=(ρij)=(1ρ12⋯ρ1nρ211⋯ρ2n⋮⋮⋱⋮ρn1ρn2⋯1)
입니다. 위의 1,2 번은 준비과정이니 3번이 왜 맞는지만 한번 볼까요?
식(1)의 X1,X2,⋯,Xn은 각각 평균이 0인 정규분포이다.
각 i에 대하여
Xi=Li1Z1+Li2Z2+⋯+LinZn=n∑p=1LipZp
입니다. 즉, Xi는 서로 독립인 정규분포 Z1,⋯Zn의 일차 결합이므로 역시 정규분포가 됩니다.
또한
E(Xi)=E(n∑p=1LipZp)=n∑p=1LipE(Zp)=0
이므로 각각 평균은 0이 됩니다.
식(1)의 Xi와 Xj에 대해 E(XiXj)=ρij이다. 특히 i=j일 때는 E(X2i)=ρii=1이다.
식(1)에 따르면 두 index i,j에 대해
Xi=n∑p=1LipZp , Xj=n∑q=1LjqZq
입니다. 따라서
XiXj=n∑p=1n∑q=1LipLjqZpZq
이죠. 양변에 E(⋅)를 씌우면
E(XiXj)=n∑p=1n∑q=1LipLjqE(ZpZq)
입니다. 그런데
E(ZpZq)={0,p≠q1,p=q
이므로 식(2)는 q가 p값과 같을 때만 살아남습니다. 즉,
E(XiXj)=n∑p=1LipLjpE(Z2p)=n∑p=1LipLjp
입니다.
반면 상관계수 행렬 R의 i,j 성분의 원소를 구해보죠.
Rij=(LLt)ij=n∑p=1LipLtpj=n∑p=1LipLjp
입니다. 식(3),(4)를 비교해보면!
E(XiXj)=Rij=ρij
가 성립하죠. 특히 i=j인 경우에는
E(X2i)=ρii=1 을 만족하게 됩니다.
결론
위 두 관찰로 다음의 결론을 얻습니다.
○ 각 i에 대해 Xi는 E(Xi)=0,E(X2i)=1인 정규분포, 즉, 표준정규분포입니다.
○ 각 i≠j에 대해, E(XiXj)=ρij 즉, Corr(Xi,Xj)=ρij$입니다.
이로써 {Xi}들은 상관계수 행렬 R을 갖는 표준정규분포임을 증명했습니다.
상관관계를 가지는 표준정규분포 변수 만들기 최종 정리
최종 정리 버전은 다음과 같습니다.
순서 | 과정 | 방법 |
1 | 서로 독립인(i.i.d) 표준정규 난수 n개 뽑기 Z=(Z1,Z2,⋅,sZn) |
○ 정균분포 난수를 만들어 주세요 #1 : 중심극한정리 이용 ○ 정균분포 난수를 만들어 주세요 #2 : Normal CDF 이용 ○ 정균분포 난수를 만들어 주세요 #3 : Normal CDF 이용 ○ 정균분포 난수를 만들어 주세요 #4 : Box-Muller 방법 ○ 정균분포 난수를 만들어 주세요 #5 : Marsaglia-Bray method ○ 정균분포 난수를 만들어 주세요 #6 : random.normal 같은 방법으로 만들면 됨 |
2 | R=LLt | 촐레스키 분해 |
3 | LZ |
다음 글에서는 실제로 이 원리로 상관관계가 있는 표준정규분포를 만들 수 있는지 코딩을 통해 알아보도록 하겠습니다.
'수학의 재미 > 행렬 이론' 카테고리의 다른 글
상관관계를 가지는 표준정규분포 변수 여러개 만들기(python) (0) | 2022.09.20 |
---|---|
촐레스키 분해 (0) | 2022.09.19 |
3중 대각행렬의 풀이 (0) | 2022.07.29 |
상관계수와 상관계수 행렬 #2 (0) | 2022.07.06 |
상관계수와 상관계수 행렬 #1 (0) | 2022.07.05 |
댓글