정규 분포 된 준 난수를 얻는 방법
Monte Carlo 시뮬레이션을위한 준 난수를 얻기 위해 혼돈 패키지 를 사용하려고했습니다 . 크기는 365 × 5000이어야합니다 (최대 2190 × 5000까지 가능).
를 사용하여 샘플을 chaospy.J(chaospy.Normal(0, 1))
가져 오면 난수 배열을 얻지 만 한 축을 따라 정상적으로 분포됩니다. 다른 축은 균일하게 분포 된 것처럼 보입니다.
이 숫자를 정규 분포를 얻는 가장 좋은 방법을 찾으려고합니다. 나는 당신이 또 다른 균일 분포를 취하고 그것을 추가하고 mod 1을 취할 수 있다는 것을 몇 군데 읽었다 (ranom.uniform() + sample) % 1
. 그것은 목적을 조금 무너 뜨리는 것 같습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 또한 누군가 사용할 패키지에 대한 더 나은 제안이 있다면 그것에 대해 열려 있습니다.
답변
준 몬테카를로 수는 균일하지만 독립적이지 않습니다. uniform 이외의 다른 분포 로 변환하는 것은 변환 이 반전 방법과 같이 하나의 난수 만 사용하는 한 의사 난수와 마찬가지로 작동 합니다. 두 개 이상의 임의 입력이있는 알고리즘이 중단됩니다. 따라서 정규 분포의 경우 역전이 작동하지만 Box-Muller 방법은 작동하지 않습니다 ( 낮은 불일치 시퀀스를 정규 분포로 변환하는 가장 좋은 방법? ) 논문 정규 분포에서 낮은 불일치 시퀀스 생성 : Box-Muller 또는 역변환? Giray Ökten과 Ahmet Göncü는 그렇지 않다고 주장합니다.
그러나 이것은 일 변량의 경우이며 다중 정규 분포를 원하는 것 같습니다. 다시 돌아오겠습니다 ...