내가 한 거의 모든 분석 작업에서 다음을 사용합니다.
set.seed(42)
Hitchhiker 's Guide to the Galaxy에 경의를 표합니다 . 그러나 동일한 시드를 반복해서 사용하여 편견을 만들고 있는지 궁금합니다.
내가 한 거의 모든 분석 작업에서 다음을 사용합니다.
set.seed(42)
Hitchhiker 's Guide to the Galaxy에 경의를 표합니다 . 그러나 동일한 시드를 반복해서 사용하여 편견을 만들고 있는지 궁금합니다.
답변:
RNG가 좋은 경우 편견이 없습니다. 그러나 항상 같은 시드를 사용함으로써 경력에서 수행하는 모든 시뮬레이션간에 강력한 상호 의존성을 만듭니다. 이것은 특별한 종류의 위험을 만듭니다.
매번 같은 시드를 사용하면 항상 멋진 의사 난수 시퀀스를 얻을 수 있으며 모든 작업이 잘 진행되거나 매우 낮지 만 0이 아닌 확률로 항상 꽤 나쁜 시퀀스를 사용하고 시뮬레이션은 그렇지 않습니다. 당신이 생각하는 기본 배포판을 대표합니다. 모든 작업이 꽤 좋거나 모두 대충 엉망입니다!
매번 진정으로 무작위로 시작하는 씨앗을 사용하는 것과 대조하십시오. 아주 오래 동안 모델링하고있는 분포를 나타내지 않는 임의의 값을 얻을 수 있지만 대부분은 괜찮을 것입니다. 만약 당신이 (새로운 씨앗으로) 자신의 작품을 재현하려고 시도하지 않았다면, 당신의 경력에서 한두 번 오해의 소지가있는 결과를 얻을 수 있지만 대부분의 시간은 괜찮을 것입니다.
간단하고 확실한 치료법이 있습니다. 항상 다른 시드로 다시 시작하여 항상 작업을 확인하십시오. 실수로 두 씨앗이 같은 방식으로 오도하는 결과를 낳는 것은 사실상 불가능합니다.
반면에 잘 알려진 "개인 종자"는 특별한 장점 이 있습니다. 정직한 세상을 보여줍니다. 시뮬레이션에 거짓말을하는 교묘하고 미묘한 방법은 미리 결정된 결과가 나올 때까지 반복하는 것입니다. 다음 R
은 공정한 동전조차도 절반 이상의 시간을 투자 할 가능성이 높다는 것을 "증명" 하는 실제 사례입니다.
n.flips <- 100
seeds <- 1:10^3
#
# Run some preliminary simulations.
#
results <- sapply(seeds, function(seed) {
set.seed(seed)
mean(runif(n.flips) > 1/2)
})
#
# Now do the "real" simulation.
#
seed <- seeds[which.max(results)]
set.seed(seed)
x <- mean(runif(n.flips) > 1/2)
z <- (x - 1/2) * 2 * sqrt(n)
cat("Mean:", x, "Z:", z, "p-value:", pnorm(z, lower.tail=FALSE), "\n")
더 넓은 범위의 씨앗 ( 에서 )을 살펴보면, 나는 선천적 인 것을 찾을 수있었습니다 : 218134. 이것을 씨앗으로 시작할 때, 시뮬레이션 된 동전 뒤집기가 머리를 나타냅니다 ! 이는 예상 값 과 크게 다릅니다 ( ).10 6 100 75 50 P = 0.000004
그 의미는 매혹적이고 중요 할 수 있습니다. 예를 들어, 무작위 이중 맹검 대조 시험에 누가 모집 할 것인지, 그리고 어떤 순서로 (포로 학부 또는 실험실 쥐 그룹을 테스트하는 대학 교수로 통제 할 수 있는지) 미리 알 수 있다면 사전에 나는 "증명하기"를 원하는 것을 선호하기 위해 학생들을 그룹화하는 씨앗을 찾기 위해 이러한 일련의 시뮬레이션을 실행할 수있었습니다. 나는 계획 순서와 내 실험 계획에 그 씨앗 포함 할 수 있습니다 전에를실험을 수행함으로써 비판적 검토자가 절대로 탄핵 할 수없는 절차를 만들었지 만 그럼에도 불구하고 갑판을 쌓아 두었습니다. (신뢰를 얻기 위해이 트릭의 일부 변형을 사용하는 의사 과학의 모든 부분이 있다고 생각합니다. 실제로 컴퓨터를 제어하기 위해 ESP를 사용했다고 생각하십니까? 나도 당신과 함께 할 수 있습니다!)
기본 시드가 알려진 사람은이 게임을 할 수 없습니다.
내 개인 씨앗은 17 이며 많은 게시물이 증명합니다 (현재 씨앗을 설정하는 161 개의 게시물 중 155 개가 이것을 사용합니다). 에 R
이 (가 밝혀으로) 내가 그것으로 만드는 가장 작은 데이터 세트가 강한 특이점을 가지고 있기 때문에, 작업 할 어려운 씨앗입니다. 그것은 나쁜 특성이 아닙니다 ....
R
의 행동은 순전히 우연입니다.