수동으로 난수 생성


30

예를 들어 표준 정규 분포에서 10 개의 실현과 같이 주어진 분포에서 난수를 수동으로 생성하려면 어떻게해야합니까?


10
왜 이런 일을하고 싶은지, 어떤 제약이 있는지 설명해 주실 수 있습니까?
mdewey

2
임의의 숫자 테이블을 얻을 수 있습니다 (시중에 다른 숫자를 게시하는 데 사용됨).
배트맨

4
@Batman : 예, 실제로 10⁶ 난수의 RAND 책은 Amazon에 대해 655 개의 댓글을 받았습니다. 물론 모두 예측 가능합니다.
시안

10
(아무도 이것을 이전에 아무도 언급하지 않은 것에 놀랐습니다) 절대적으로 기본적으로 사용자 정의 구현을 사용하여 난수를 생성하려고 시도해서는 안됩니다. 그렇습니다. 어떻게하는지 아는 것이 좋으며 아마도 " MC 메소드 "수업 에서 가장 먼저 나올 것이지만 실제로 프로젝트에서 하지 않을 것입니다. 특수 난수 생성 루틴은 이유 때문에 존재합니다. 처음부터 핵심 알고리즘을 구현하는 것은 시간의 손실, 버그의 원인 및 열악한 현장 인식 노력입니다.
usεr11852는 Reinstate Monic이

2
@ Xi'an : 예, 나는 그것이 안전한 추정이라고 동의합니다. 언급했듯이 이것은 RNG 디자인이 매우 심각한 사업이라는 것을 깨닫지 않고 사람들이 자신의 RNG를 사용하지 않도록 경고하는 의견 일뿐입니다. 하려면 폰 노이만을 인용 : "죄의 상태에서, 물론 임의의 숫자입니다 생산의 산술 방법을 고려 중 하나를."
usεr11852는 Reinstate Monic이

답변:


46

"수동"에 "기계적"이 포함 된 경우 많은 옵션을 사용할 수 있습니다. 확률이 절반 인 Bernoulli 변수를 시뮬레이션하기 위해 코인을 던질 수 있습니다 . 꼬리는 , 머리는 입니다. 기하 분포를 시뮬레이션하기 위해 헤드를 얻기 전에 얼마나 많은 코인 토스가 필요한지 계산할 수 있습니다. 이항 분포를 시뮬레이션하기 위해 코인을 번 던지거나 간단히 코인을 던질 수 있습니다. "quincunx"또는 "콩 기계"또는 "갈톤 상자가" 왜 안 - 더 운동 대안 행동으로 하나를 설정하고 자신에 대한 참조를 ? "가중 동전"과 같은 것은없는 것 같습니다1 n n p = 0.5 { 1 , 2 , 3 , 4 , 5 , 6 } { 1 , 2 , 3 , 4 }01nn그러나 Bernoulli 또는 이항 변수의 확률 매개 변수를 이외의 값으로 변경하려면 Georges-Louis Leclerc, Comte de Buffon 의 바늘 을 사용하면 그렇게 할 수 있습니다. 에서 불연속 균일 분포를 시뮬레이션하기 위해 6 면형 주사위를 굴립니다. 롤 플레잉 게임 팬들은 에서 균일하게 샘플링하기위한 사면체 주사위 와 같이 더 이국적인 주사위를 만나게 되지만, 스피너 나 룰렛을 사용하면 더 멀리 갈 수 있습니다. ( 이미지 크레디트 )p=0.5{1,2,3,4,5,6}{1,2,3,4}

다양한 주사위

컴퓨터 콘솔에서 하나의 명령만으로, 또는 적절한 임의의 숫자 테이블이있는 경우, 책장의 더티 너 코너로가는 1 자리 일 때, 오늘날 이런 방식으로 난수를 생성하기 위해 화를 내야합니까? 아마도 물리적 실험에 촉감이 좋은 것이 있을지 모릅니다. 그러나 컴퓨터 시대 이전에 일하는 사람들에게, 실제로 광범위하게 이용 가능한 대규모 난수 테이블 (이중 더 나중에)이 나오기 전에, 랜덤 변수를 수동으로 시뮬레이션하는 것이 더 실질적으로 중요했습니다. 부폰이 상트 페테르부르크 역설을 조사했을 때— 머리를 던질 때마다 플레이어가 승리하는 금액이 두 배로 증가하고, 첫 번째 꼬리를 잃고, 예상 지불액이 반 직관적으로 무한한 유명한 동전 던지기 게임 를 사용하여 기하학적 분포를 시뮬레이션해야했습니다. . 그렇게하기 위해, 그는 상트 페테르부르크 게임의 2048 연극을 시뮬레이션하기 위해 동전을 던져 아이를 고용하여 게임이 끝나기 전에 얼마나 많은 토스를 기록했는지 기록합니다. 이 시뮬레이션 된 기하학적 분포는 Stigler (1991) 에서 재현됩니다 .p=0.5

Tosses Frequency
1      1061
2      494
3      232
4      137
5      56
6      29
7      25
8      8
9      6

상트 페테르부르크 역설에 대한이 실증적 조사를 발표 한 동일한 에세이에서, 부폰은 또한 유명한 " 부폰의 바늘 "을 소개했습니다 . 평면이 거리 간격 으로 평행 한 선으로 스트립으로 나뉘고 길이 의 바늘이 그 위에 떨어질 경우 바늘이 선 중 하나를 교차 할 확률은 입니다.l d 2 ldld2lπd

부폰의 바늘 실험

따라서 Buffon의 바늘을 사용하여 임의 변수 또는 , 바늘의 길이 또는 선을 지배하는 거리를 변경하여 성공 확률을 조정할 수 있습니다. Buffon의 바늘을 대체로 사용하는 것은 의 확률 근사치를 찾는 데 매우 비효율적 인 방법 입니다. 이미지 ( credit )는 17 개의 성냥개비를 보여 주며 그중 11 개는 선을 교차합니다. 규칙 선 사이의 거리가 여기에서와 같이 성냥개비의 길이와 동일하게 설정 될 때, 교차 성냥개비의 예상 비율은 이며 따라서 우리는 추정 할 수 있습니다X이항(n,2lXBernoulli(2lπd)π2XBinomial(n,2lπd)π2ππ^관측 된 분수의 역수의 두 배로 : 여기서 우리는 을 얻는다 . 1901 년 Mario Lazzarini는 3cm 간격으로 2.5cm 바늘을 사용하여 실험을 수행했으며 3408 번의 토스 후에 획득했다고 주장했습니다 . 이것은 와 잘 알려진 합리적인 것으로 소수점 이하 6 자리까지 정확합니다. Badger (1994)는 이것이 허위임을 입증하는 증거를 제공합니다. 특히 Lazzarini의 장치를 사용하여 소수점 6 자리의 정확도를 95 % 확신하려면 인내심이 약한 134 조 바늘을 던져야합니다! 확실히 Buffon의 바늘은 를 추정하는 방법보다 난수 생성기로 유용합니다 .π^=217113.1π^=355113ππ


지금까지 우리 발전기는 실망스럽게 이산되었습니다. 정규 분포를 시뮬레이션하려면 어떻게해야합니까? 하나의 옵션은 난수를 구하여 에서 균일 한 분포에 대한 이산 형 근사값을 형성 한 다음 임의의 정규 편차로 변환하는 계산을 수행하는 것입니다. 스피너 또는 룰렛은 0에서 9까지의 십진수를 제공 할 수 있습니다. 주사위는 이진수를 생성 할 수 있습니다. 우리의 산술 기술이 더 펑키 한베이스에 대처할 수 있다면 표준 주사위 세트조차도 할 것입니다. 다른 답변들도 이런 종류의 변환 기반 접근 방식을보다 자세히 다루었습니다. 나는 끝까지 더 이상의 논의를 연기합니다.[0,1]

19 세기 후반에는 정규 분포의 유용성이 널리 알려 졌으므로 임의의 정규 편차를 시뮬레이트하려는 통계학자가있었습니다. 말할 필요도없이, 긴 손 계산은 처음에 시뮬레이션 프로세스를 설정하는 것 외에는 적합하지 않았을 것입니다. 일단 설정되면 난수 생성은 비교적 빠르고 쉬워야했습니다. Stigler (1991)는이 시대의 세 통계 학자들이 사용한 방법을 열거하고있다. 모두 평활화 기법을 연구하고있었습니다. 임의의 정규 편차가 분명해졌습니다 (예 : 평활화해야하는 측정 오류 시뮬레이션).

주목할만한 미국 통계 학자 Erastus Lyman De Forest 는 생명표 평활에 관심이 있었고 정상적인 편차의 절대 값을 시뮬레이션해야하는 문제가 발생했습니다. 실행중인 테마를 증명할 것으로 De Forest는 실제로 절반 정규 분포 에서 샘플링했습니다 . 또한 표준 편차 1 ( 을 "표준"이라고 함)을 사용하는 대신 De Forest는 "가능한 오류"(중간 편차)를 원했습니다. 이것은 William Chauvenet의 "구면 및 실용 천문학 매뉴얼, 제 2 권"의 부록에있는 " 오류 가능성"표에 주어진 형식입니다.ZN(0,12). 이 표에서 De Forest는 에서 까지의 반 정규 분포의 Quantile을 보간했습니다. 그는 "동일한 주파수의 오류"로 간주됩니다.p=0.005p=0.995

동일한 빈도의 De Forest 테이블 오류

De Forest에 따라 정규 분포를 시뮬레이트하려면이 표를 인쇄하여 잘라낼 수 있습니다. De Forest (1876)는 오류가 "동일한 크기의 100 비트 카드 보드에 새겨진 것으로, 상자에 흔들려 하나씩 하나씩 그려져있다"고 기록했다.

천문학 자이자 기상학자인 조지 하워드 다윈 경 (자연 학자 찰스의 아들)은 무작위 정규 편차를 생성하기위한 "룰렛"을 개발함으로써 사물에 다른 스핀을가했습니다. 다윈 (1877) 은 다음과 같은 방법을 설명합니다.

원형의 한 장의 카드는 방사형으로 눈금 이 졌으며, 로 표시된 눈금 은 고정 된 반경에서 멀어 도입니다. 카드는 중앙에서 고정 된 인덱스에 가깝게 회전하도록 만들어졌습니다. 그런 다음 여러 번 회전했으며, 중지하면 인덱스 반대의 숫자를 읽었습니다. [Darwin은 각주를 추가합니다. 디스크가 너무 빨리 회전 할 때 디스크를 멈추게하는 것이 좋습니다. 눈금을 돌리는 것보다 눈금이 보이지 않습니다.] 눈금의 특성에서 얻은 숫자는 정확하게 발생합니다. 실제로 관찰 오류가 발생하는 것과 같은 방식으로; 그러나 덧셈이나 뺄셈의 부호는 없습니다. 그런 다음 계속해서 동전을 던져 머리 와 꼬리를 호출x720π0xex2dx+ , 부호 또는 는이 일련의 오류에 우연히 할당됩니다.+

"색인"은 여기에서 "포인터"또는 "표시기"(참조 "집게 손가락")로 읽어야합니다. Stigler는 De Forest와 마찬가지로 Darwin은 디스크 주위에 절반의 정규 누적 분포를 사용하고 있다고 지적합니다. 그 후 동전을 사용하여 무작위로 부호를 붙이면 전체 정규 분포가됩니다. 스티 글러는 스케일이 얼마나 미세하게 눈금을 잡았는지는 불분명하지만 스핀 중반 디스크 수동 정지 지시는 "디스크의 한 섹션에 대한 잠재적 편향을 줄이고 절차 속도를 높이는 것"이라고 추정했다.

Charles Darwin의 반 사촌 인 Francis Galton 경은 이미 그의 quincunx와 관련하여 언급되었습니다. 이것은이 분포 분포를 기계적으로 시뮬레이션하지만, De Moivre–Laplace 정리 에 의해 정규 분포와 눈에 띄는 유사성이 있으며 (때로는 해당 주제에 대한 보조 도구로 사용됨) Galton은 실제로 원할 때 훨씬 더 정교한 체계를 만들었습니다. 정규 분포에서 표본을 추출합니다. 이 답변의 맨 위에있는 비 전통적인 예보다 훨씬 더 뛰어난 Galton은 정규 분포 주사위를 개발했습니다.보다 정확하게는 평균 편차 1을 갖는 정규 분포에 대해 우수한 이산 근사를 생성하는 주사위 세트입니다. 1890 년에 시작된이 주사위는 University College London의 Galton Collection에 보존되어 있습니다.

갈튼 노말 주사위

Nature Galton 의 1890 년 기사에서 다음과 같이 썼습니다.

무작위로 선택하는 도구로는 주사위보다 우월한 것이 없습니다. 각각의 연속 된 추첨 사이에 카드를 철저하게 섞는 것이 가장 지루하며, 가방에 표시된 공을 섞고 섞는 방법은 여전히 ​​지루합니다. 손가락으로 돌리는 팽이 또는 룰렛의 형태는 다음에 바람직하지만 주사위는 모든 것보다 더 낫다. 그들이 바구니에서 흔들리고 던져 질 때, 그들은 서로에 대해 그리고 그들이 떨리는 바구니 작업의 갈비뼈에 대해 매우 다양하게 상처를 입 었으며, 처음에 그들의 위치는 심지어 하나의 좋은 흔들림과 던지기. 주사위로 얻을 수있는 기회는 일반적으로 생각되는 것보다 더 다양합니다. 각각의면이 내가 보여줄 수있는 바와 같이 이용 될 수있는 4 개의 모서리를 가지기 때문에, 단지 6 개뿐만 아니라 24 개의 동등한 가능성이있다.

Galton이 일련 의 정상 편차 를 신속하게 생성 할 수있는 것이 중요했습니다 . 각 롤 후 Galton은 터치만으로 주사위를 정렬 한 다음 앞 가장자리를 따라 점수를 기록합니다. 그는 처음에는 De Forest의 카드와 비슷하지만 100 Quantile이 아닌 24를 사용하여 가장자리가 반 정규 편차 인 Type I의 여러 주사위를 굴 렸습니다. 가장 큰 편차 (실제로 I 형 주사위에 공백으로 표시됨)의 경우 순서에 따라 공백을 채울 필요가있을 때 더 민감한 유형 II 주사위 (더 미세한 눈금에서만 큰 편차가 있음)를 굴립니다. . 반 정규에서 일반 편차로 변환하기 위해, 그는 주사위 III을 굴릴 것이고, 또는+한 번에 3-4 개의 블록으로 그의 시퀀스에 서명합니다. 주사위 자체는 마호가니, 측면 인치이며, 마킹을 위해 얇은 백지로 붙여 넣었습니다. Galton은 유형 I의 주사위 3 개, II의 2 개 및 III의 1 개를 준비 할 것을 권장했습니다.114

Galton 일반 주사위 디자인

Raazesh Sainudiin의 수학적 통계 실험 연구소 에는 뉴질랜드 캔터베리 대학교의 학생 프로젝트가 포함되어 있으며 Galton의 주사위를 재생 합니다. 이 프로젝트에는 주사위를 여러 번 굴린 경험적 조사 (확실히 "정상적인"것으로 보이는 경험적 CDF 포함)와 주사위 점수가 표준 정규 분포를 따르도록 조정되었습니다. Galton의 원래 점수를 사용하여 주사위 점수가 실제로 따르는 불연속 정규 분포 그래프도 있습니다.

갈튼 주사위 이산 분포


대규모로, "기계적"을 전기로 확장 할 준비가되어 있다면, 일반 편차100,000 인 RAND의 서사시 백만 임의 자릿수 는 룰렛 휠의 전자 시뮬레이션에 기반을 둔다 는 점에 유의하십시오 . 에서 기술 보고서 우리가 발견 (조지 W. 브라운 1949 년 처음 6 월) :

따라서 RAND 사람들은 Douglas Aircraft Company 엔지니어링 직원의 도움을 받아 Cecil Hastings의 제안에 따라 전기 룰렛 휠을 설계했습니다. 이 대화의 목적 상 간단한 설명으로 충분합니다. 랜덤 주파수 펄스 소스는 약 1 초에 약 10 만 펄스를 제공하는 일정한 주파수 펄스에 의해 약 1 초에 한번 게이트되었다. 펄스 표준화 회로는 펄스를 5 자리 2 진 카운터로 전달하여 원칙적으로이 기계는 32 개의 위치를 ​​가진 룰렛 휠과 같으며, 각 회전에서 평균 약 3000 회전을합니다. 이진수를 십진수로 변환하여 32 개의 위치 중 12 개를 버리고 결과 임의의 숫자를 IBM 펀치에 공급하여 임의의 숫자로 된 펀칭 된 카드 테이블을 생성했습니다.

그러나 전기 룰렛 휠을 조립하기를 원하기 전에 나머지 보고서를 읽는 것이 좋습니다. 그 계획은 "카운터 포지션들 사이의 자연적 선호도를 극복하기 위해 이상적인 펄스 표준화에 대한 가정에 크게 의존했다; 나중에 경험은이 가정이 약점이었고, 기계에 대한 후발의 많은 부분이 원래의 문제와 관련이 있다는 것을 보여 주었다" 이 점". 자세한 통계 분석 결과 출력에 몇 가지 문제가 있음이 밝혀졌습니다. 예 :χ2홀수 및 짝수의 빈도를 테스트 한 결과 일부 배치에 약간의 불균형이 있음이 밝혀졌습니다. 이것은 다른 배치보다 일부 배치에서 더 나빴습니다. "기계가 조정 된 후 한 달 동안 기계가 정지했음을 나타냅니다.이 기계는 첨단 기계를 유지하기 위해 과도한 유지 보수가 필요합니다." 그러나 이러한 문제를 해결하는 통계적 방법이 발견되었습니다.

이 시점에서 우리는 원래 백만 자리수, 카드에 50 자리 숫자가있는 20,000 개의 IBM 카드, 통계 분석에 의해 작지만 인식 가능한 홀수-짝수 바이어스가 나타납니다. 이제 홀수-짝수 바이어스를 제거하기 위해 테이블을 재 랜덤 화하거나 최소한 작은 룰렛으로 테이블을 변경하기로 결정했습니다. 각 카드의 숫자를 숫자 단위로 이전 카드의 해당 숫자에 추가했습니다 (mod 10). 그런 다음 백만 자릿수의 파생 테이블에 다양한 표준 테스트, 빈도 테스트, 직렬 테스트, 포커 테스트 등이 적용되었습니다.이 백만 자릿수는 깨끗한 계산서를 가지며 RAND의 현대 임의의 숫자 테이블로 채택되었습니다.

물론, 추가 프로세스가 좋은 결과를 가져올 것이라고 믿을만한 충분한 이유가있었습니다. 일반적인 방식으로, 기본 메커니즘은 임의의 변수의 합이 제한되지 않는 임의의 변수의 합이 정규성에 접근하는 것과 동일한 방식으로, 직사각형 분포에서 단위 간격을 모듈화하는 제한 접근법이다. 이 방법은 주간 상거래위원회 (Interstate Commerce Commission)의 Horton and Smith가 무작위로 큰 숫자의 비정규 숫자에서 좋은 임의의 숫자를 얻는 데 사용되었습니다.

물론 이것은 임의의 소수 자릿수 생성과 관련이 있지만 에서 균일하게 샘플링 된 임의의 편차를 생성하는 데 쉽게 사용할 수 있지만 숫자를 가져 오기에 적합한 소수 자릿수로 반올림됩니다. 유니폼 벗어날에서 다른 배포판 벗어날를 생성하는 다양한 아름다운 방법은 아마도 가장 미적으로 그중이다 기쁘게있다 지구 라트 알고리즘 개념 중 하나 감소 모노톤 또는 단봉 대칭되지만, 확률 분포에 대한 가장 간단하고 가장 널리 적용 역은 변환 CDF 하십시오 일탈 주어진 균일 분포에 원하는 분포 CDF 있으며, 경우에u [ 0 , 1 ] F F - 1 ( u )[0,1]u[0,1]F다음, 배포판에서 임의의 일탈이 될 것입니다. 랜덤 노멀 이탈에 계산에 관심이 있다면 Box-Muller 변환 이 역 변환 샘플링보다 효율적이며 Marsaglia 극법 이 더 효율적이며 ziggurat ( 아래 애니메이션에 대한 이미지 크레딧 )가 훨씬 더 좋습니다. 코드에서 이러한 메소드 중 하나 이상을 구현하려는 경우이 StackOverflow 스레드에 대한 몇 가지 실제적인 문제에 대해 설명 합니다.F1(u)

반 정규용 지그 라트

참고 문헌

  • 오소리, L. (1994). " Lazzarini 's Lucky Approximation of π ". 수학 잡지 . 미국 수학 협회. 67 (2) : 83–91.

  • Brown, GW " RAND의 난수 이력 — 요약 ". AS 가정 주, GE Forsythe 및 HH Germond, eds., "Monte Carlo Method", 전국 표준 표준 적용 수학 시리즈 , 12 (워싱턴 DC : 미국 정부 인쇄 국, 1951) : 31-32()

  • 다윈, GH (1877). " 가변 량의 오류 측정 및 기상 관측의 처리. " Philosophical Magazine , 4 (22), 1-14

  • EL (De Forest, EL) (1876). 시리즈 보간 및 조정 . 터틀, 모어 하우스 및 테일러, 뉴 헤이븐, 콘.

  • F. Galton, F. (1890). "통계 실험을위한 주사위". 자연 , 42 , 13-14

  • SM, Stigler (1991). "19 세기의 확률 적 시뮬레이션". 통계 과학 , 6 (1), 89-97.


() 똑같은 저널에는 폰 노이만 (Von Neumann)의 인용이 많은 논문 은 임의의 숫자와 관련하여 사용되는 다양한 기법 으로 컴퓨터에서 사용할 난수 생성의 어려움을 고려합니다. 그는 즉시 임의의 입력을 생성하는 컴퓨터에 연결되어있는 물리적 장치의 아이디어를 거부, 일부 물리적 메커니즘은 다음 향후 사용을 위해 기록 된 난수를 생성하기 위해 사용 될 수 있는지 여부를 고려 - 기본적으로 RAND는 무엇했던 백만 숫자 . 또한 난수와 의사 난수 생성의 차이점으로 설명 할 수있는 그의 유명한 인용문도 포함합니다."난수를 생성하는 산술적 방법을 고려하는 사람은 물론 죄의 상태에있다. 여러 번 지적 된 바와 같이, 난수와 같은 것은 없으며, 난수를 생성하는 방법 만이있다" 엄격한 산술 절차는 물론 그런 방법이 아닙니다. "


5
당신은 농담해야합니다 ... (
그렇습니다

8
이 작업에 얼마나 많은 작업이 투입 되었습니까!
Richard Hardy

3
비표준 주사위는 불공평 할 수 있으므로 먼저 테스트 해 보는 것이 좋습니다. 예 : youtube.com/watch?v=VI3N4Qg-JZM
Tim

2
@RichardHardy 역설적으로, 실제로 내 머릿속에있는 모든 물건을 내 머리에 쓰는 것이 내 머리에 들고 다니는 것보다 적어도 일시적으로 내 기억에 남는 것이 더 쉽습니다!
Silverfish

2
어쨌든 인상적입니다!
Richard Hardy

44

매우 정확한 시계에 액세스 할 수 있으면 현재 시간의 소수 부분을 추출하여이를 균일하게 만들 수 있습니다. 여기서 Box-Müller 변환을 통해 일반 시뮬레이션을 도출 할 수 있습니다. (그리고 심지어 는 독립적 인 또 다른 정규 변량 ).

X=2logU1cos(2πU2)
Y=2logU1sin(2πU2)X

예를 들어, Linux OS에서 확인할 수 있습니다

$ date +%s.%N
1479733744.077762986
$ date +%s.%N
1479733980.615056616

따라서 및 를

U1=.077762986, U2=.615056616
X
> sqrt(-2*log(.077762986))*cos(2*pi*.615056616)
[1] -1.694815

부록 : 계산 로그와 코사인은 수동으로 충분 하지 않은 것으로 간주 될 수 있기 때문에 초월 함수를 사용하지 않는 Box-Müller의 변형이 있습니다 (우리의 책 Monte Carlo Statistical Methods 의 연습 2.9 참조 ).

Box-Muller의 변형

이제 지수 변이로 인해이 버전에 대해 논쟁 할 수 있습니다. 그러나 폰 노이만 ( Lon Devmanne)의 비 균일 랜덤 변량 에서이 알고리즘에 요약 된 것처럼 폰 노이만 (Von Neumann)에 의해 초월 함수를 호출하지 않고 이러한 변이를 시뮬레이션하는 매우 영리한 방법 이 있습니다 .

여기에 이미지 설명을 입력하십시오

물론 1 / e의 계산이 필요하지만 한 번만 필요합니다.

이 시계에 액세스 할 수없는 경우, 당신은에 의해이 균일 발전기를 대체 할 수있는 기계적인 균일 발전기 단위 사각형의 많은 수의 표면에 다트를 던지는 것처럼, 단위에 공을 또는 압연 구간 아직 충분한 [토마스 베이 즈 개념적 당구 실험 등] 반송 또는 널빤지 폭 유닛 나무 바닥에 일치 던지고 [과 가까운 최 좌측 분리까지의 거리 계산과 부폰의 실험] 에있어서 아직 또는 번호 1이 가장 낮은 룰렛을 시작하고 시작 방향이 1 인 결과 각도를 균일 한 추첨 으로 바꾸십시오 .(0,1)2(0,1)(0,2π)

CLT사용하여 정규성을 근사화하는 것은 확실히 (1) 평균을 공급하기 위해 다른 변수가 필요하므로 Box-Müller 알고리즘에서 유니폼을 사용할 수도 있고 (2) 정확도가 상당히 커지는 방법 은 아닙니다 . 시뮬레이션의 수와 함께 천천히. 특히 주사위의 결과와 같이 불연속 랜덤 변수를 사용하는 경우, 6 개 이상의면이 있더라도 . 에서 인용 토마스 등의 알. 가우시안 랜덤 제너레이터의 장단점에 대한 설문 조사 (2007) :

중앙 한계 정리는 물론“대략적인”방법의 예입니다. 완벽한 산술을 사용하더라도 유한 K의 경우 출력은 가우시안이 아닙니다.

다음은 문제를 설명하기위한 빠른 실험입니다. 평균 30 개의 다이 결과를 100 배 생성했습니다.

dies=apply(matrix(sample(1:6,30*100,rep=TRUE),ncol=30),1,mean)

그런 다음 평균을 평균 제로로 정규화-분산 1 변동

stdies=(dies-3.5)/sqrt(35/12/30)

이 샘플의 정상적인 적합성 (또는 부족)을 살펴 보았습니다.

qqnorm (stdies, col = "gold2", pch = 19); abline (a = 0, b = 1, col = "steelblue", lwd = 2, lty = 2)

첫째, 적합은 특히 꼬리에서 크지 않으며, 둘째는 그림에서 샘플이 취한 값의 수가 엄청나게 유한하다는 것을 분명히 보여줍니다. (이 특정 실험에서는, 와 dies사이에 34 개의 다른 값만 사용했습니다 .) 비교 동일한 3000 개의 다이 결과 를 이용하여 유사 균일 한 자리수를 with (6¹⁵> 10¹¹이므로 실제로 11 자리 이상을 생성 함)에 위의 Box-Müller 변환을 적용하여 N (0,1) 변이의 쌍으로 유니폼76/30122/30Di

U=i=1kDi16i
k=15
dies=matrix(apply(matrix(sample(0:5,15*200,rep=TRUE),nrow=15)/6^(1:15),2,sum),ncol=2) 
norma=sqrt(-2*log(dies[,1]))*c(cos(2*pi*dies[,2]),sin(2*pi*dies[,2]))

200의 보통 표본에 대해 예상 할 수있는만큼 적합합니다 (진정한 정상 표본에 대해 다른 것을 작도하십시오 norma=rnorm(100)).

여기에 이미지 설명을 입력하십시오

Kolmogorov-Smirnov 테스트에 의해 더 보여지는 바와 같이 :

> ks.test(norma,pnorm)

        One-sample Kolmogorov-Smirnov test

data:  norma
D = 0.06439, p-value = 0.3783
alternative hypothesis: two-sided

3

이것은 정확히 무작위는 아니지만 대략적인 실험을 원할 때 충분히 가까워 야합니다.

휴대 전화를 사용하여 크로노 미터를 설정하십시오. 좋은 10 초 후에는 중지하십시오 (대기할수록 실제로 "무작위"결과에 더 많이 접근하지만 10 초는 괜찮습니다). 마지막 숫자를 취하십시오 (예 : 10.67 초가 67을 줄 것입니다). 정규 분포에 백분위 수 테이블을 적용하십시오. 이 예에서는 0.67 만 검색하면 숫자를 찾을 수 있습니다. 이 경우 값은 약 0.45입니다. 이것은 완벽하게 정확하지는 않지만 확실한 평가를 제공합니다.

50 아래로 굴리면 100- [결과]를 수행하고 테이블을 사용하십시오. N (0,1)의 시메트리로 인해 마이너스 부호로 결과가 동일합니다.


3

편견이없는 동전을 번 뒤집 습니다. 0에서 시작 하면 머리는 이고 꼬리는 입니다. 코인 플립 후 카운터를 나눕니다 . 은 Using 중심 극한 정리를 하면 충분히 크고, 우리는 정규화 된 가우시안의 "실현 대략"있어야 .n+11nnnN(0,1)


왜? 방해

Xk:={+1 if k-th coin flip is heads1 if k-th coin flip is tails

iid Bernoulli 랜덤 변수 여야 합니다. 금후,P(Xk=±1)=12

E(Xk)=0Var(Xk)=1

하자 . 금후,Y:=X1+X2++Xn

E(Y)=0Var(Y)=n

일러스트레이션,

Z:=Yn

단위 분산을 갖는 랜덤 변수를 얻습니다

E(Z)=0Var(Z)=1

1
내 대답에서 논의했듯이, CLT가 동전 뒤집기에서 임의성을 효율적으로 사용하지 않는다고 두려워합니다. 단순 또는 배정 밀도로 의사 임의 U (0,1) 변이의 이진수로 더 잘 활용됩니다.
시안

@ Xi'an 나는 내 게시물을 게시하기 전에 귀하의 답변을 읽었으며 CLT에 대한 귀하의 이의 제기는 느린 수렴에 기초한 것으로 보입니다. 이것은 생각 실험이기 때문에 100 억 번 동전을 뒤집는 것은 비용이 들지 않습니다. 또한 실제로 컴퓨터, 로그 계산, 제곱근 또는 코사인이 필요없는 수동 절차입니다. 물론 슬라이드 규칙을 사용할 수는 있지만 너무 멀리 갈 수 있습니다.
로드리고 데 아베베도

1
:}} : 100 억 개의 동전 뒤집기가 내게 수동 으로 들리지 않습니다 ...!
시안

수동 = 손으로. 손으로 계산 로그와 코사인도 시간이 걸립니다.
로드리고 데 아예 베도

0

일단 균일 (0,1)을 생성 할 수 있으면 균일 랜덤 변수를 역 CDF에 간단히 연결하여 역 cdf를 계산할 수있는 임의의 변수를 생성 할 수 있습니다.

그렇다면 어떻게 uniform (0,1)을 수동으로 계산할 수 있습니까? @Silverfish가 언급했듯이 전통적인 RPG 플레이어가 사용하는 다양한 주사위가 있습니다. 그중 하나는 10 면체입니다. 이것이 공정한 다이라고 가정하면, 이제 불연속 유니폼 (0, 9)을 생성 할 수 있습니다.

또한이 유니폼 (0,9)을 사용하여 랜덤 변수의 한 자리수를 나타낼 수 있습니다. 따라서 두 개의 주사위를 사용하면 값을 취할 수있는 균일 한 랜덤 변수를 얻게 됩니다. 3 개의 주사위로 에 균일 한 분포를 얻을 수 있습니다 .0.001 , 0.002 , . . , 0.999 , 1.0000.01,0.02,...,0.99,1.000.001,0.002,...,0.999,1.000

따라서 우리는 몇 개의 10면 주사위로 정교하게 이산 된 균일 한 분포로 근사화함으로써 연속적인 균일 (0,1)에 매우 가까워 질 수 있습니다. 그런 다음 역 CDF에 연결하여 관심있는 임의 변수를 생성 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.