REPRODUCIBLE RESEARCH · 01

많이 나온 번호는
다음 기간에도 많았을까?

앞 616회에서 가장 자주 나온 여섯 번호를 고른 뒤, 번호를 바꾸지 않고 뒤 616회와 비교했습니다. 회차당 평균 일치 개수는 0.956개에서 0.748개로 줄었습니다. 그러나 이 결과가 곧 “적게 나온 번호를 고르면 유리하다”는 뜻은 아닙니다.

왜 전체 1,232회를 한 번에 세지 않았을까요?

어떤 번호가 “잘 맞는지”를 고를 때 쓴 자료로 그 번호의 성적을 다시 평가하면, 선택할 때 이미 얻은 이점을 실력으로 오해하기 쉽습니다. 예를 들어 출현 횟수 상위 여섯 개는 바로 그 구간의 총 일치 횟수를 가장 크게 만드는 조합입니다. 같은 구간에서 높은 점수가 나오는 것은 새로운 발견이 아니라 선택 규칙의 결과입니다.

이를 구분하기 위해 자료를 회차 중간에서 딱 한 번 나눴습니다. 1~616회는 번호 선택용, 617~1232회는 선택된 번호를 그대로 평가하는 용도입니다. 두 구간은 각각 616회이며 날짜 경계는 2014-09-20와 2014-09-27입니다. 최근 실시간 회차는 이 고정 분석에 섞지 않았습니다.

계산 함수는 선택용 구간만 전달받아 번호를 고릅니다. 검증용 구간의 번호를 모두 다른 값으로 바꿔도 선택 결과와 앞 구간의 점수는 그대로인지 자동 검사했습니다. 다만 이 구조적 분리와 연구자의 사전등록은 다릅니다. 이미 알려진 역사를 보고 만든 실험이므로 보지 못한 미래에서 검증한 결과로 해석할 수는 없습니다.

비교 규칙과 채점 방법을 고정했습니다

  1. 상위 빈도 규칙: 1~616회에서 많이 나온 순서대로 6개를 선택합니다.
  2. 하위 빈도 규칙: 같은 구간에서 적게 나온 순서대로 6개를 선택합니다.
  3. 고정 규칙: 출현 횟수와 무관하게 1에서 시작해 8씩 더한 1·9·17·25·33·41을 비교용으로 사용합니다.

빈도가 같으면 작은 번호가 먼저입니다. 이 때문에 하위 규칙에서는 앞 구간에 각각 73회 나온 6번과 22번 중 6번이 마지막 자리를 차지합니다. 평가 기간에 유리한 번호로 교체하거나, 매 회차 직전의 빈도로 다시 고르지 않았습니다. 따라서 “최근 10회 핫 넘버”처럼 계속 바뀌는 다른 전략의 평가 결과는 아닙니다.

점수는 고정한 6개와 그 회차의 기본 당첨번호 6개가 겹치는 개수입니다. 가능한 점수는 0~6이며, 모든 점수를 더한 뒤 616으로 나눠 평균을 구합니다. 보너스 번호와 당첨금·구입비는 계산하지 않았습니다. 이 평균은 당첨 확률, 수익률, 당첨 회차 비율과 서로 다른 값입니다.

앞 구간의 우위가 뒤 구간에 이어지지는 않았습니다

각 구간 616회 · 평균은 한 회차당 일치한 기본 번호 개수
규칙 / 고정 번호1~616회 합계앞 평균617~1232회 합계뒤 평균
앞 구간 빈도 상위 6개
14 · 20 · 27 · 34 · 37 · 40
5890.95624610.7484
앞 구간 빈도 하위 6개
6 · 9 · 16 · 21 · 28 · 41
4190.68025230.8490
간격 8의 고정 6개
1 · 9 · 17 · 25 · 33 · 41
4800.77924720.7662

상위 규칙의 총 일치 개수는 589개에서 461개로 128개 줄었습니다. 하위 규칙은 419개에서 523개로 늘어 뒤 구간에서 가장 높았습니다. 그러나 뒤 구간의 결과를 보고 이제 하위 규칙을 선택하면, 이번에는 검증 자료를 새 선택 자료로 재사용하게 됩니다. “이 표의 승자”와 “다음 기간의 우수한 선택법”을 구분해야 하는 이유입니다.

고정 규칙 또한 임의의 비교 사례 한 개일 뿐, 다른 고정 조합 전체의 평균을 대신하지 않습니다. 세 규칙 중 가장 높은 값만 골라 유리함을 주장하거나 세 결과의 차이를 각각 독립적인 증거로 세지 않았습니다. 일부 규칙은 같은 번호를 포함하고 같은 추첨을 평가하므로 점수가 서로 연관됩니다.

번호마다 어떤 변화가 있었나요?

선택된 12개 번호 · 모든 45개 번호는 아래 CSV에 수록
번호선택 규칙1~616회617~1232회뒤 − 앞
6하위 빈도73회92회+19회
9하위 빈도63회73회+10회
14상위 빈도94회78회-16회
16하위 빈도72회96회+24회
20상위 빈도103회66회-37회
21하위 빈도72회94회+22회
27상위 빈도96회85회-11회
28하위 빈도68회89회+21회
34상위 빈도99회85회-14회
37상위 빈도95회77회-18회
40상위 빈도102회70회-32회
41하위 빈도71회79회+8회

앞 구간에서 103회로 가장 많았던 20번은 뒤 구간에 66회 나왔고, 앞 구간에서 63회로 가장 적었던 9번은 뒤 구간에 73회 나왔습니다. 극단적인 관측값이 다음 구간에서 덜 극단적으로 보이는 현상은 선택 편향과 우연한 변동만으로도 생길 수 있습니다. “덜 나왔으니 나올 차례”처럼 추첨이 과거의 부족분을 갚는다는 설명은 필요하지 않습니다.

비교 기준은 회차당 0.8개입니다

공정하고 독립적인 6/45 추첨을 가정하면 고정한 번호 하나가 포함될 확률은 6/45입니다. 고정 번호가 여섯 개이므로 평균 일치 개수의 이론값은 6 × 6/45 = 0.8개, 616회의 합계 기대값은 492.8개입니다. 기대값은 반드시 맞춰지는 목표치가 아닙니다.

한 회차의 일치 개수 K에 대해 P(K=k) = C(6,k) × C(39,6−k) / C(45,6)입니다. C(n,k)는 n개 중 순서 없이 k개를 고르는 경우의 수입니다. 이 분포의 분산은 0.614545이고, 독립인 616회를 더한 값의 표준편차는 √(616 × 0.614545) ≈ 19.46개입니다.

뒤 구간의 상위 규칙 461개는 기대값보다 1.63 표준편차 낮고, 하위 규칙 523개는 1.55 표준편차 높습니다. 여기서는 차이의 크기를 이해하도록 같은 척도로 표시했으며, 어느 규칙이 우수하다는 유의성 검정이나 신뢰구간으로 제시하지 않았습니다.

평균만 보면 가려지는 일치 개수 분포

617~1232회 · 이론 기대 회차는 고정 조합 한 개 기준이며 소수일 수 있습니다
한 회차 일치 개수앞 구간 빈도 상위 6개앞 구간 빈도 하위 6개간격 8의 고정 6개이론 기대 회차
0개261회232회252회246.75회
1개261회269회266회261.26회
2개83회94회89회93.31회
3개10회18회8회13.82회
4개1회3회1회0.84회
5개0회0회0회0.01770회
6개0회0회0회0.00008회

이 표에서 3개 이상 일치한 횟수가 많더라도 그 차이만으로 미래 수익을 추정할 수 없습니다. 특히 6개 일치는 고정 조합 하나당 한 회차 확률이 1/8,145,060이므로, 616회 비교는 큰 당첨의 가능성을 실증적으로 평가하기에는 매우 작은 표본입니다. 모든 규칙에서 5개·6개 일치가 0회였다는 사실도 그 사건이 불가능하다는 뜻은 아닙니다.

이 실험으로 말할 수 있는 것과 없는 것

이 자료와 이 분할에서는 과거 빈도 상위 규칙의 높은 선택 구간 성적이 평가 구간에 유지되지 않았습니다. 그러나 모든 빈도 전략이 항상 실패한다는 증명, 실제 추첨의 공정성에 대한 인증, 다음 구간에서 하위 규칙이 이긴다는 예측은 아닙니다. 분할점·규칙·지표를 반복해서 바꿔 가장 좋은 표만 공개하면 여기서 피하려던 선택 문제가 다시 생깁니다.

다른 분석을 읽을 때는 성적을 보기 전에 세 가지를 확인하세요. 번호를 고르는 데 쓴 기간과 평가 기간이 분리되어 있는지, 실패한 규칙까지 함께 보고하는지, 평균 일치 개수를 당첨 확률이나 수익률이라고 바꿔 부르지 않는지입니다. 다음 연구에서는 공정한 가상 추첨에서도 “특별해 보이는 번호”가 얼마나 쉽게 생기는지 계산합니다.

원자료·결과·계산 재현

기존 배포 자료의 1~1232회 기본 번호를 사용했습니다. 출처와 정정 기준은 데이터·계산 기준에 정리되어 있습니다. 원자료의 회차 연속성, 중복 없는 6개 번호, 합계 보존, 평가 자료를 바꿨을 때 선택 결과의 불변성, 이론 분포의 평균·분산을 자동 검사했습니다. 해시 일치는 같은 파일을 사용했는지 확인하는 수단이며 공식 기록과의 완전한 일치를 인증하지는 않습니다.

내 컴퓨터에서 같은 결과를 재생성하는 방법

Node.js 22 이상에서 두 코드 파일과 원자료 JSON을 같은 폴더에 저장한 뒤 아래 명령을 실행합니다. 추가 패키지나 인터넷 연결 없이 두 연구의 JSON·CSV와 해시 파일을 만듭니다. 출력 파일이 이미 있으면 같은 이름으로 덮어씁니다.

node reproduce-research.mjs ./lotto-results.json

이 글의 페이지를 열 때는 이미 계산한 JSON을 읽습니다. 방문자의 브라우저에서 대규모 시뮬레이션을 실행하지 않습니다.