Box-Mueller 기술 반전 : 각 법선 쌍 에서 두 개의 독립적 인 유니폼을 다음과 같이 구성 할 수 있습니다.( X, Y) (간격에서 [ - π , π ] ) 및 EXP ( - ( X 2 + Y 2 ) / 2 ) ( [ 0 , 1 ] 간격으로).atan2 ( Y, X)[ − π, π]특급( − ( X2+ Y2) / 2 )[ 0 , 1 ]
두 그룹의 법선을 취하여 일련 수득 그 제곱의 합 variates Y 1 , Y 2 , ... , Y 나 , ... . 쌍에서 얻은 표현χ22와이1, Y2, … , Y나는, ...
엑스나는= Y2 나는와이2 i - 1+ Y2 나는
균일 한 분포 를 갖습니다 .Beta(1,1)
이것은 기본적이고 간단한 산술 만 필요하다는 것을 분명히해야합니다.
때문에 피어슨 상관 계수의 정확한 분포 표준 변량 정규 분포 네 쌍의 시료를 균일에 분포 , 우리는 단순히 (즉, 여덟 개 값 네 쌍의 그룹이 법선 걸릴 수도 각 세트) 및 이러한 쌍의 상관 계수를 반환합니다. (이에는 간단한 산술과 2 제곱근 연산이 포함됩니다.)[−1,1]
고대부터 구의 원통형 투영 (3 공간의 표면)은 같은 면적 으로 알려져 있습니다 . 이것은 구에 균일 한 분포를 투영 할 때 수평 좌표 (경도에 해당)와 수직 좌표 (위도에 해당)가 균일 한 분포를 갖음을 의미합니다. 3 변량 표준 정규 분포는 구형 대칭이므로 구면으로 의 투영은 균일합니다. 경도를 얻는 것은 본질적으로 Box-Mueller 방법 ( qv ) 의 각도와 동일한 계산 이지만 투영 된 위도는 새로운 것입니다. 구면으로의 투영은 3 배의 좌표 이 시점에서 z 는 투영 된 위도입니다. 따라서 3, X 3 i - 2 , X 3 i - 1 , X 3 i 그룹으로 정규 변량을 취하고계산(x,y,z)zX3i−2,X3i−1,X3i
X3iX23i−2+X23i−1+X23i−−−−−−−−−−−−−−−−√
위한 .i=1,2,3,…
대부분의 컴퓨팅 시스템에 숫자를 나타내므로 진 , 등번호의 생성은 일반적으로 균일하게 분포 생성함으로써 시작 정수 사이 및 2 32 - 1 (또는 높은 전력 2 컴퓨터 워드 길이에 관한) 필요에 따라이를 재조정. 이러한 정수는 내부적으로 32 개의 이진수로 표시됩니다. Normal 변수를 중간 값과 비교하여 독립적 인 임의의 비트를 얻을 수 있습니다. 따라서 Normal 변수를 원하는 비트 수와 동일한 크기의 그룹으로 나누고 각 변수를 평균과 비교하고 결과의 참 / 거짓 결과 시퀀스를 이진수로 어셈블하면 충분합니다. 쓰기 k0232−1232k비트 수 및 부호 (즉, H (H x > 0 일 때 x ) = 1 이고그렇지 않으면 H ( x ) = 0 ) 를 공식과 함께정규화 된 균일 값을 [ 0 , 1로 표현할 수 있음 )H(x)=1x>0H(x)=0[0,1)
∑j=0k−1H(Xki−j)2−j−1.
variates는 에서 도출 될 수 있는 그 중간 인 연속 분포 0 (예를 들면, 표준 정규 등); 그것들은 k 개의 그룹으로 처리되며 , 각 그룹은 하나의 의사-균일 값을 생성합니다.Xn0k
거부 샘플링 은 임의 분포에서 랜덤 변량을 추출 하는 유연하고 강력한 표준 방법입니다. 목표 분포에 PDF 가 있다고 가정합니다 . PDF 를 사용한 다른 분포 에 따라 값 Y 가 그려집니다.fY. 거부 단계에서 0 과 g ( Y ) 사이의 균일 한 값 U 는 Y 와독립적으로그리고 f ( Y ) 와 비교됩니다. 더 작 으면 YgU0g(Y)Yf(Y)Y유지되지만 그렇지 않으면 프로세스가 반복됩니다. 그러나이 접근법은 원형으로 보입니다. 처음에 균일 한 변이가 필요한 프로세스로 어떻게 균일 한 변이를 생성합니까?
답은 거부 단계를 수행하기 위해 실제로 균일 한 변이가 필요하지 않다는 것입니다. 대신 ( 이라고 가정 ) 공정한 동전을 뒤집어 0 또는 1을 무작위로 얻을 수 있습니다 . 이는 간격 [ 0 , 1 ) 에서 균일 한 변이 U 의 이진 표현에서 첫 번째 비트로 해석됩니다 . 결과물 인 경우 0 것을 의미 0 ≤ U < 1 / 2 ; 그렇지 않으면, 1 / 2 ≤ U < 1 . g(Y)≠001U[0,1)00≤U<1/21/2≤U<1 시간의 절반이 거부 단계를 결정하기에 충분하다 : 만약 이지만 동전은 0입니다 .f(Y)/g(Y)≥1/20 허용되어야는; 만약 F ( Y ) / g ( Y ) < 1 / 2 이지만 경화은 1 , Y는 거부한다; 그렇지 않으면 U 의 다음 비트를 얻기 위해 동전을 다시 뒤집어 야합니다. 어떤 가치 f ( YYf(Y)/g(Y)<1/21YU 못한 -가 1 / 2 각 플립 후에 중지 확률은 플립의 예상 개수에만 1 / 2 ( 1 ) + 1 / 4 ( 2 ) + 1 / 8 ( 3 ) + ⋯ + 2 - n ( n ) + ⋯ = 2 입니다.f(Y)/g(Y)1/21/2(1)+1/4(2)+1/8(3)+⋯+2−n(n)+⋯=2
거부 횟수가 적 으면 거부 샘플링이 가치 있고 효율적일 수 있습니다. Normal PDF 아래에 가장 큰 사각형 (균일 분포를 나타냄)을 맞추면됩니다.
미적분학을 사용하여 사각형의 면적을 최적화하면 끝 점이 이고 높이가 exp ( − 1 / 2 ) / √ 와 같아야합니다.±1, 면적이0.48보다 약간 큽니다. 등이 정상적 밀도 사용하여g을하고 거부하는 모든 값의 간격 외측[-1,1]자동 그렇지 거부 절차를 적용하여, 우리는 균일에서 variates 얻[-1,1]효율적 :exp(−1/2)/2π−−√≈0.2419710.48g[−1,1][−1,1]
분획에는 시간 정상 변량 너머 [ - 1 , 1 ] 과 즉시 거절된다. ( Φ 는 표준 Normal CDF입니다.)2Φ(−1)≈0.317[−1,1]Φ
남은 시간에 이진 기각 절차를 따라야하며 평균에 두 개의 정규 변이가 더 필요합니다.
전체 절차에는 평균 단계.1/(2exp(−1/2)/2π−−√)≈2.07
각 균일 한 결과를 생성하는 데 필요한 정규 변량의 예상 수는 다음과 같습니다.
2eπ−−−√(1−2Φ(−1))≈2.82137.
이 꽤 효율적 일반 PDF (1) 계산이 지수 (2) 값 계산 있어야한다는 사실을 명심해야하지만 한번에 미리 계산해야합니다. Box-Mueller 방법 ( qv ) 보다 계산이 약간 적습니다 .Φ(−1)
균일 분포 의 순서 통계 에는 지수 격차가 있습니다. 두 노멀 (제로 평균)의 제곱의 합은 지수이기 때문에, 우리는 그러한 노멀의 쌍의 제곱을 합산하고, 이들의 누적 합을 계산하고, 간격에 해당하는 결과의 크기를 재조정함으로써 독립적 인 유니폼 의 실현을 생성 할 수 있습니다 [ 0 , 1 ] 이고 마지막 것을 삭제합니다 (항상 1 ). 이 방법은 단일 구간의 제곱, 합산 및 끝 부분 만 필요하므로 만족스러운 방법입니다.n[0,1]1
값이 자동으로 오름차순 것이다. 이러한 정렬이 필요한 경우, 이 방법은 정렬 의 O ( n log ( n ) ) 비용을 피하는 한 다른 모든 방법보다 계산 상 우수합니다 . 그러나 일련의 독립적 인 유니폼이 필요한 경우 이러한 n 값을 임의로 정렬 하면 트릭을 수행합니다. (Box-Mueller 방법, qv ) 에서 볼 수 있듯이 각 법선 쌍의 비율은 각 쌍의 제곱의 합과 무관하므로 무작위 순열을 얻을 수있는 수단이 이미 있습니다 : 누적 합을 해당 비율로 정렬하십시오 . ( n이nO(nlog(n))nn이 프로세스 는 효율성이 거의없는 작은 그룹의 에서 수행 될 수 있습니다 . 왜냐하면 각 그룹은 k 균일 한 값 을 생성하기 위해 2 ( k + 1 )의 법선 만 필요하기 때문 입니다. 고정 k 의 경우 점근 적 계산 비용은 O ( n log ( k ) ) = O ( n ) 이며 n 개의 균일 한 값 을 생성하기 위해 2 n ( 1 + 1 / k ) 정규 변이가 필요 합니다.)k2(k+1)kkO(nlog(k))O ( n )2 N ( 1 + 1 / K )엔
최상의 근사치로, 표준 편차가 큰 정규 변량 은 훨씬 작은 값 범위에서 균일하게 보입니다 . 이 분포를 범위로 롤링하면 (값의 소수 부분 만 취함으로써) 모든 실제적인 목적에 대해 균일 한 분포를 얻습니다. 이것은 매우 효율적이며 모두의 가장 간단한 산술 연산 중 하나를 필요로합니다. 각 법선 변량을 가장 가까운 정수로 반올림하고 초과 량을 유지하십시오. 실제 구현을 살펴보면 이 접근 방식의 단순성이 매력적입니다 .[ 0 , 1 ]R
rnorm(n, sd=10) %% 1
안정적으로 생산 n
범위의 균일 한 값을 단의 비용으로 통상 variates과 거의 계산.[ 0 , 1 ]n
(표준 편차가 인 경우에도이 근사값의 PDF는 다음 그림과 같이 균일 한 PDF와 10 8 에서 한 부분 미만으로 차이가 있습니다 ! 안정적으로 감지하려면 10 16 값 의 샘플이 필요합니다. 표준 편차가 클수록 불균일성이 너무 작아 계산조차 할 수 없습니다 (예 : 코드에 표시된 SD가 10 인 경우 유니폼의 최대 편차) PDF가 아니라 (10) - (857) .)110810161010− 857
모든 경우에 "알려진 매개 변수가있는"정규 변수는 쉽게 추정되고 위에서 가정 한 표준 법선으로 스케일링 될 수 있습니다. 그 후, 결과적으로 균일하게 분포 된 값은 원하는 간격을 포함하도록 최신 화되고 크기를 조정할 수 있습니다. 여기에는 기본 산술 연산 만 필요합니다.