의사 난수 생성에서 시드 설정에 대한 참조 및 모범 사례


11

에서 이 문서 , 그 우려은 "세트 씨"명령은 STATA 사람들은 의사 난수를 생성하는 씨앗의 설정과 관련된 문제에 대해 설명합니다.

주목할만한 "하지 말아야 할 것" 은 일련의 자연수를 씨앗으로 연속적으로 사용하지 않습니다. 이것은 패턴을 가지고 의사 난수를 위험에 빠뜨리기 때문 입니다.

4 분의 1의 농담으로 주목할만한 "do"일생 동안 단 하나의 시드설정 한 다음 각 실험이 끝날 때 생성 된 프로세스의 "상태"를 기록하여 다음 실험이 그 시점에서 계속되도록하는 것입니다 프로세스가 중지 된 위치

분명히, 위의 충고는 그의 연구 생애에서 생성 될 의사 난수의 예상 수에 달려 있습니다. 아마도 메르 센 트위스터 는 많은 연구원들의 평생 요구를 충족시킬 것입니다 ...

이론적으로나 실제로 PRNG와 관련하여 경험이 많지 않기 때문에 이러한 제안에 대해 논쟁 할 수 없습니다 . 이론적 근거와 어려운 수학적 통계에서 유효하거나 유효하지 않은 것으로 입증 되어야 합니다.

그래서 내 질문은

1) 위의 조언을 설명하거나 무효화하는 데 도움이되거나 그러한 문제를 다루는 참조를 가리킬 수 있습니까?

2) 종자를 설정할 때 "모범 사례"를 제공하는 참고 자료를 제공 할 수 있습니까?

3) 자신의 일에서 어떻게해야합니까?

질문 3)의 예로, Monte Carlo 스터디의 경우, 크기가 각각 인 샘플 을 생성 하고 의주기가 보다 충분히 크다고 가정 합니다. 모든 생성겠습니까 하나의 씨앗으로 의사 난수를, 또는 당신은 샘플 당, 말, 씨앗을 변경하는 습관이? (그러나 그것은 단지 설명을위한 것입니다-더 일반적인 대답이 가치가 있다고 생각합니다). 미디엄PRNG미디엄미디엄

관련 스레드 (훨씬 더 집중되어 있지만)는
시드를 각 코드 블록 앞에 또는 프로젝트 당 한 번 설정합니까?

나는 이것이 아마도 커뮤니티 위키가 될 것이라고 생각합니다.


4
Stata 매뉴얼 페이지는 시드를 사용 하는지 에 대한 중요한 암시 적 가정 을합니다. 씨앗을 사용하는 주된 이유는 (CV에 게시 할 때) 재현 가능한 예제 를 만드는 것 입니다. 예제가 마음에들 때까지 씨앗을 피하지 않았다는 것을 증명하기 위해, 나는 (거의) 항상 같은 씨앗을 사용합니다. 이것은 내가 생각해야 할 것과는 다른 목적을 가지고 있기 때문에 Stata의 조언과 명백히 모순됩니다. 여기서의 도덕은 모범 사례가 목적에 달려
whuber

@whuber 필자가 언급 한 문서에 제공된 조언은 사용 된 시리즈의 "무작위" 재현성을 유지하는 것을 목표로 한다 (프로세스의 "상태"기록을 통해). 이러한 목표는 연구의 목적이 무엇이든 어떤 환경에서도 추구 할 가치가있는 것처럼 보입니다.
Alecos Papadopoulos

1
물론 그들은 가치가 있지만 매뉴얼 페이지에 표시된대로 그것들을 명확한 "dos"와 "do n't"로 만드는 것을 정당화하지는 않습니다. 같은 uncategorical의 문제 dicta는 변호사와 같은 - - 생각하는지도한다 다른 사람이 있다는 것입니다 어떤 반대 연습에 관계없이 목적이나 상황, 본질적으로 잘못된 것입니다. 통계 실무에서 판단의 여지를 남겨 두는 것이 중요합니다! 특히, "모범 사례"가있는 소프트웨어 사용에 대한 권장 사항을 혼동하지 마십시오.
whuber

@whuber 특정 소프트웨어에 연결된 문서를 "자극"으로 사용한 사실은 "소프트웨어 사용에 대한 권장 사항"에 관한 질문을하지 않습니다. 제기 된 질문은 통계 연구를 수행 할 때 연구원이 사용한 정책에 관한 것이므로 여기서는 혼란스럽지 않습니다.
Alecos Papadopoulos

3
PRNG가 좋다고 가정 할 때, 패턴을 사용하여 시드를 설정하면 왜 차이가 생길까요? PRNG의 요점이 아닙니까?
purple51

답변:


3

가치있는 것은 경험에 기초한 것이며 수학적 분석이 아니라

암호화를 수행하지 않는 한 미묘한 패턴이 매우 나쁠 수있는 경우, Mersenne Twister와 같은 받아 들여지는 PRNG를 사용하고 선형 합동 생성기와 같은 오래된 것을 사용하지 않는 한 설정 한 종자는 차이가 없습니다. 지금까지 내가 아는 한, 당신은 임의의 숫자가 주어진 씨앗에서 나올 것입니다 무엇을 말할 수있는 방법이 없습니다 실제로 PRNG를 실행하지 않고이 그렇지 않으면 당신은 단지 새로운 알고리즘 사용을 것이다 (이 괜찮은 하나 가정) 와 같은 난수 생성기.

또 다른 관점 : 몬테카를로 시뮬레이션에서 미묘한 패턴이 다른 모델링 가정에 의한 모든 측정 오차, 혼란 및 오차 도입보다 더 클 가능성이 있다고 생각하십니까?

처음에는 재현성을 위해 하나의 임의의 시드를 사용하고 디버깅을 수행하지 않는 한 각 호출 전에 하나씩 시드를 설정하지 않습니다. 여기서 두 개의 다른 알고리즘이 동일한 입력 데이터에 대해 동일한 결과를 생성해야합니다.

면책 조항 : 원자로 또는 미사일 제어 시스템 또는 기상 예측을 시뮬레이션하는 경우 도메인 전문가와상의하는 것이 가장 좋습니다.이 경우 책임을지지 않습니다.

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