I는 현재의 시뮬레이션 값을 시도하고 차원 랜덤 변수 의 평균 벡터 다변량 정규 분포를 갖는 및 공분산 행렬 .
역 CDF 방법과 유사한 절차를 사용하고 싶습니다. 먼저 차원의 균일 랜덤 변수 생성 한 다음이 분포의 역 CDF에 연결하여 값 X 를 생성 하고 싶습니다. .
절차가 잘 문서화되어 있지 않고 MATLAB 의 mvnrnd 함수 와 Wikipedia에서 찾은 설명 간에 약간의 차이가 있기 때문에 문제가 있습니다 .
필자의 경우 분포의 매개 변수를 임의로 선택합니다. 특히, 균일 분포 U ( 20 , 40 ) 에서 각 평균 생성합니다 . 그런 다음 다음 절차를 사용하여 공분산 행렬 S 를 작성합니다.
하 삼각 행렬 생성 L ( I , I ) = 1을 위한 전 = 1 ... N 및 L이 ( I , J ) = U ( - 1 , 1 ) 에 대한 I < J
하자. 여기서 L T 는 L 의 전치를 나타낸다 .
이 절차를 통해 가 대칭적이고 양의 명확한 지 확인할 수 있습니다. 또한 더 낮은 삼각 행렬 L을 제공 하므로 S = L L T 이므로 분포에서 값을 생성해야합니다.
Wikipedia의 지침을 사용하여 다음과 같이 N 차원 유니폼을 사용하여 값을 생성 할 수 있어야 합니다.
그러나 MATLAB 함수에 따르면 일반적으로 다음과 같이 수행됩니다.
여기서 은 N 차원, 분리 가능, 정규 분포 의 역 CDF이며 두 방법의 유일한 차이점은 단순히 L 또는입니다.
MATLAB 또는 Wikipedia가 갈 길입니까? 아니면 둘 다 잘못 되었습니까?