예측21분 읽기

최종 득표율을 1.2%p로 맞히고 호남은 편차가 생겼다

이양 후 최종 김민석 52.9% 예측, 실측 54.08%. 그런데 호남은 예측구간을 벗어났다. 시뮬레이션 원자료로 어디서 맞고 어디서 벌어졌는지 전부 연다.

목차

Reble.ai는 현실 세계를 반영하는 동적 사회 시뮬레이션 엔진이다. 선거는 그 엔진의 정체성이 아니라 활용 사례이며, 동시에 예측이 공개 채점되는 가장 엄격한 시험장이다. 채점받지 않는 예측은 주장일 뿐이기 때문이다.

지난 글에서 4,433명의 권리당원 합성패널이 어떻게 만들어지는지 설명하면서, 결과가 나오기 전에 예측을 파일로 동결했다. 8월 17일 더불어민주당 제3차 정기전국당원대회로 채점일이 지났다.

이 글이 답하는 질문은 하나다. 그 예측은 어디서 맞고 어디서 벌어졌나. 시뮬레이터가 8월 11일에 산출해 배포한 원자료(dp_panel.json, 동결 파일 dp_freeze_*.json)를 그대로 열어 실측과 겹쳐 놓는다.

1. 최종: 분포 위에 실측을 얹으면

시뮬레이션은 단일 숫자를 내지 않는다. 호남·수도권 격차, 두 지역 투표율, 국민여론조사 모집단, 송영길 표 이양률, 대의원 효과, 연령 시나리오를 매번 새로 추첨해 1만 5,000번을 돌리고 그 분포를 남긴다. 배포 데이터에 기록된 실제 표본은 1만 4,982회다.

-647%-448%-249%+050%+251%+452%+653%+854%+1055%+1256%+1457%가로축: 최종 격차(김−정, %p) · 아래는 김민석 득표율 환산예측 중앙값 5.71%p (52.9%)실측 8.16%p (54.08%)1만 4,982회 · 실측은 79.6 백분위
도표 1. 최종 격차(김민석−정청래)의 예측 분포와 실측. 음영은 90% 예측구간(+1.04~+10.44%p), 점선은 중앙값, 붉은 선이 실측이다. 이양 후에는 두 후보만 남아 합이 100이 되므로 득표율 = (100 + 격차) / 2가 정확히 성립한다.

중앙값 격차 +5.71%p는 김민석 후보 득표율 52.86%에 해당한다. 실측은 54.08%였다.

예측 (8/11 동결) 실측 오차
최종 득표율(김민석) 52.9% 54.08% +1.2%p
최종 격차(김−정) +5.71%p +8.16%p +2.45%p
90% 구간(득표율) 50.5 ~ 55.2% 54.08% 구간 안

실측 +8.16%p는 예측 분포의 79.6 백분위에 있다. 1만 4,982회 중 1만 1,927회가 이보다 낮은 값이었다. 중앙보다 위쪽이지만 꼬리가 아니라 분포의 두꺼운 부분이다.

합산 규칙으로 실측을 재현해 두면 이후 논의가 명확해진다. 최종은 당원 투표 70%와 국민여론조사 30%의 합산이고, 이번 전당대회는 대의원 1표와 권리당원 1표를 같게 치는 1인 1표제를 처음 적용했다.

권리당원(이양 후)  김 55.94% (430,242표)  정 44.06% (338,809표)
전국대의원        김 66.69% (  9,541표)  정 33.31% (  4,765표)
  └ 1인 1표 합산 → 당원 부문 김 56.14%
국민여론조사       김 49.3%   정 과반

0.7 × 56.14  +  0.3 × 49.3  =  54.08   ← 발표 최종치와 일치

대의원 14,306표는 합산 모집단 783,357표의 1.83%다. 대의원에서 33%p 넘게 이겼지만 최종 득표율에 더한 것은 약 0.14%p에 그쳤다. 종전의 약 17:1 가중이 유지됐다면 전혀 다른 크기의 변수였을 것이다.

2. 부문을 열면 이야기가 달라진다

최종 숫자 하나만 보면 잘 맞은 모델이다. 채점을 권역 단위로 쪼개 놓았기 때문에 다른 그림이 보인다.

-10-5+0+5+10+15+20+25호남예측 +12.12실측 +24.89 · 구간 밖서울·경기예측 -0.34실측 +0.38 · 적중가로축: 김민석−정청래 격차(%p) · 상자는 90% 예측구간, 점은 중앙값
도표 2. 미개표 두 권역의 90% 예측구간과 실측. 호남은 구간 상단(+20.56%p)을 4.33%p 넘어섰고, 서울·경기는 중앙값에서 0.72%p 떨어진 자리에 들어왔다.

호남에는 합성패널 자체 계산값과 조사 신호 일곱 개, 합쳐 여덟 개를 정밀도 결합해 표준편차를 5.1~5.4%p까지 좁혔다. 서울·경기에는 사실상 "모르겠다"고 답해 구간 폭 17.3%p를 열어 뒀다. 좁힌 쪽이 구간을 벗어나고, 열어 둔 쪽이 0.72%p로 들어맞았다.

투표율은 두 곳 모두 맞혔다. 호남은 예측 중앙값 48.3%에 실측 약 47.5%(242,089표 / 선거인단 약 51만), 서울·경기는 실측 54.4%(317,693표 / 583,638명)로 둘 다 90% 구간 안이다. 누가 투표하러 나오는가는 맞혔고, 나온 사람이 누구를 찍는가에서 편차가 생겼다.

3. 호남은 왜 편차가 생겼나 — 신호가 전부 한쪽으로 몰려 있었다

호남 예측에 실제로 들어간 신호를 전부 꺼내 실측과 나란히 놓으면 원인이 한눈에 보인다.

+10+15+20+25호남 권리당원 (n=304)+17.7광주 민주지지 (n=248)+17.0전남 민주지지 (n=257)+16.8호남 일반당원 (n=180)+16.4호남 민주지지 (n=803)+16.2전북 민주지지 (n=298)+15.1전남·광주 권리당원 (보도)+13.1모델 결합 결과+12.12실측+24.89가로축: 김−정 격차(%p)신호 7개가 모두 실측보다 낮다 — 오차가 같은 방향으로 몰려 있었다
도표 3. 호남 사전분포에 투입된 조사 신호 일곱 개(조원 1405 계열 · 전남광주 권리당원 보도)와 모델 결합 결과, 그리고 실측. 신호는 +13.1~+17.7%p 사이에 모여 있고 실측은 +24.89%p다. 결합에는 이 일곱 개에 합성패널 자체 계산값이 더해진다.

세 가지가 동시에 드러난다.

첫째, 신호 일곱 개가 모두 실측보다 낮다. 가장 높은 신호(호남 권리당원 n=304, +17.7%p)조차 실측보다 7.2%p 아래다. 오차가 무작위였다면 실측을 중심으로 흩어져야 하는데 한쪽으로 몰려 있다. 정밀도 결합은 분산의 역수로 가중해 합치는 방법이고, 신호가 늘수록 결합 분산이 작아진다. 그 전제는 신호들의 오차가 서로 독립이라는 것이다. 같은 시기·유사한 방식의 조사 일곱 개는 독립이 아니다. 실제 불확실성은 줄지 않는데 계산상의 구간만 좁아졌다.

둘째, 모델 결합 결과(+12.12%p)가 가장 정확했던 신호보다도 낮다. 표본이 큰 신호가 더 큰 가중치를 받는데, 이번에는 표본이 작은 쪽(권리당원 n=304)이 모집단을 정확히 맞춘 신호였고 표본이 큰 쪽(민주지지층 n=803)이 다른 모집단을 재고 있었다. 표본이 크다는 것과 옳은 모집단을 재고 있다는 것은 다른 문제인데, 정밀도 결합은 전자만 본다.

셋째, 조사 자체가 당심을 못 잡고 있었다. 전국 단위 당심 조사를 층별로 보면 문제가 더 분명하다.

조사 층 표본 김민석 정청래 격차
당원 전체 499 41.5 41.9 −0.4%p
권리당원 343 42.2 46.2 −4.0%p
일반당원 156 39.9 32.8 +7.1%p
실제 순회경선 1순위 768,129표 49.91 41.51 +8.40%p

권리당원을 대상으로 한 조사는 정청래 후보 우위를 가리켰는데 실제 권리당원 투표는 김민석 후보가 8.40%p 앞섰다. 부호까지 반대이고 크기로는 12.4%p 어긋났다.

여기서 이 모델의 구조적 딜레마가 드러난다. 검증 게이트 G0a는 "당심 조사를 잘 재현하는가"를 묻고, 모델은 조사 15건을 평균오차 2.9%p로 재현해 통과했다. 그런데 그 조사들이 실제 당심에서 벗어나 있었다면, 조사를 잘 재현할수록 실측에서 멀어진다. 재현 정확도가 예측 정확도를 보장하지 않는다는 사실이 이번 채점에서 실측으로 확인된 셈이다.

4. 그런데 왜 최종은 맞았나

호남 편차가 12.77%p인데 최종 득표율 오차가 1.23%p인 것은 운이 아니라 구조다. 지역 오차가 최종에 도달하기까지 세 번 희석된다.

호남 격차 오차           12.77%p
  × 호남 비중 31.5%   →   4.02%p   (242,089표 / 768,129표)
  × 당원 가중 70%     →   2.81%p   (나머지 30%는 국민여론조사)
  ÷ 2 (격차→득표율)   →   1.41%p   ← 희석률 11%

서울·경기 오차(+0.72%p)까지 같은 방식으로 더하면 +0.10%p, 합계 +1.51%p다. 실측 오차는 1.23%p였으니 나머지 요인들이 −0.28%p로 되민 셈이다.

모델은 이 희석 구조를 스스로 계산해 두고 있었다.

국민조사(정−김)-4.66이양+3.80수도권 격차(김−정)+2.82호남 격차+2.76호남 투표율+0.700최종 격차에 미치는 영향(%p)호남 격차는 4위 — 모델이 스스로 계산해 둔 순위
도표 4. 시나리오 C 기준, 각 요인이 최종 격차를 움직이는 폭. 최대 승부처로 불린 호남 격차는 4위(+2.76%p)이고, 압도적 1위는 국민여론조사 모집단(−4.66%p)이다.

"호남이 최대 승부처"라는 통념과 달리, 모델의 민감도 순위에서 호남 격차는 네 번째였다. 최종 지표를 흔드는 것은 국민여론조사 30%였고, 실제로 그 부문에서 정청래 후보가 과반을 얻어 김민석 후보를 앞섰다.

따라서 최종 득표율을 맞혔다는 사실은 지역 예측력의 증거가 되지 못한다. 최종 지표는 지역 오차를 11%로 줄이도록 구조적으로 설계돼 있다. 권역별로 따로 채점하지 않았다면 호남의 12.8%p 편차는 드러나지 않았을 것이다.

5. 맞은 것들 — 이양과 투표율

편차만 기록하면 다음에 무엇을 남길지 알 수 없다. 이번에 잘 작동한 부품도 같은 밀도로 남긴다.

선호투표 발동 확률은 99.9%로 계산됐고 실제로 발동했다. 이양률은 발표된 득표율에서 직접 계산된다. 이양 전 김민석 49.91%·정청래 41.51%·송영길 8.58%에서 이양 후 55.94%·44.06%가 되었으므로 김민석 +6.03%p, 정청래 +2.55%p이고 합이 정확히 송영길 몫 8.58%p다. 김민석 쪽 이양률은 70.3%다.

모델 가정 U[57, 80] 균등 추첨556065707580전체 유권자 대상민주지지·무당층 대상권리당원·호남 대상실측 이양률 70.3%가로축: t_eff(%)송영길 표가 김민석에게 간 등가 비율 · 원 크기는 표본 수 · 관측 14건
도표 5. 조사 14건에서 관측된 이양 등가율 t_eff와 모델이 사용한 U[57,80] 균등 추첨 구간, 그리고 실측 70.3%. 조사 대상 모집단에 따라 값이 뚜렷하게 갈린다 — 전체 유권자 대상은 낮고(60.9~67.2), 권리당원·호남 대상은 높다(77.4, 80.9).

여기서도 3장과 같은 구조가 보인다. 실제 투표자는 권리당원인데 권리당원 대상 측정치(80.9, n=33)는 실측 70.3%보다 10%p 높았다. 다만 이번에는 모델이 특정 층을 믿지 않고 U[57,80] 전 구간을 균등 추첨해 층 간 불일치를 불확실성으로 흡수했다. 그 결과 실측은 구간의 58 백분위에 들어왔다. 호남에서는 신호를 결합해 좁혔고, 이양에서는 넓게 열어 뒀다. 넓게 연 쪽이 맞았다.

6. 채점 판정과 다음에 고칠 것

사전 등록한 공개 원칙은 G0a~G1을 모두 통과하고 G2 또는 G3 중 하나를 통과해야 승리확률을 공개한다는 것이었다. G3의 정의는 배포 데이터에 문자 그대로 남아 있다.

G3 = 호남 실측이 90% 구간 내 AND |중앙값 오차| < |기본 프리셋 14 − 실측|

실측 +24.89%p는 구간 상단을 4.33%p 넘었고, 중앙값 오차 12.77%p도 기본 프리셋 기준 10.89%p보다 컸다. 두 조건 모두 미충족이다. G2 백테스트 역시 이미 미충족이었다 — 2개 권역으로 적합해 2개 홀드아웃을 맞히는 구조였고, 구간 커버리지는 4/4로 완벽했지만 중앙값 오차가 6.52%p로 단순 기준모형 5.90%p보다 나빴다.

따라서 시스템이 계산한 승리확률 97.9%는 지금도 공개 자격이 없다. 최종 득표율을 1.2%p로 맞혔다는 사실로 기준을 바꾸지 않는다. 결과를 보고 기준을 옮기는 것이 예측 모델이 자신을 속이는 가장 흔한 방법이기 때문이다.

이번 채점이 가리키는 것은 이 모델이 평균보다 확신의 크기에서 어긋났다는 점이다. 승자·이양 발동·이양률·투표율·수도권·최종 득표율까지 맞혔고, 무너진 것은 신호를 가장 많이 모은 지역의 구간 폭이었다. 세 가지를 고친다.

  1. 신호 상관을 반영한 결합. 시기·방식·기관이 겹치는 만큼 유효표본을 깎아 합친다. 같은 방식의 조사 일곱 개는 일곱 개가 아니다.
  2. 모집단 적합도를 표본 수보다 앞에. 정밀도 가중에 "이 조사가 재는 모집단이 실제 투표 모집단과 얼마나 같은가"를 곱한다. 이번에는 n=304 권리당원 조사가 n=803 민주지지층 조사보다 옳았다.
  3. 구간 폭도 채점 대상에. 지금까지는 실측이 구간에 들었는지만 봤다. 앞으로는 구간이 얼마나 좁았는지를 함께 기록한다. 넓게 열고 맞히는 것은 실력이 아니고, 좁게 닫고 빗나가는 것은 이번처럼 위험하다.

다음 채점 계획. 위 세 가지를 반영해 G2 백테스트를 재실행하고, 통과 여부를 이 블로그에 같은 형식으로 공개한다. 통과하지 못하면 못했다고 쓴다. 그때까지 승리확률류의 단일 수치는 공개하지 않는다. 그 사이의 상시 채점은 reble.ai/survey2에서 계속된다 — T+7 여론 예측이 매주 자동으로 채점되어 성적이 그대로 남는다.

결론

이양 후 최종 득표율을 1.2%p 차이로 맞혔다. 같은 모델이 호남 격차에서 12.8%p 편차를 내 사전 등록한 G3는 미충족이다. 두 문장은 모순이 아니라 같은 구조의 앞뒷면이다. 최종 지표는 지역 오차를 11%로 희석하고, 그래서 최종 적중은 지역 예측력을 증명하지 않는다.

이번에 얻은 가장 값비싼 정보는 숫자 하나가 아니라 방향이다. 신호를 많이 모을수록 좁아지는 설계는, 그 신호들이 같은 방향으로 치우쳐 있을 때 정확히 그만큼 위험해진다. 넓게 열어 둔 수도권과 이양률은 맞았고, 좁게 닫은 호남은 벗어났다.

시뮬레이션이 어떤 조건에서 어떻게 움직이는지는 민주당 당대표 시뮬레이션에서 직접 조작해 볼 수 있고, 패널이 어떻게 만들어졌는지는 지난 글에 있다.


자료 출처 — 예측값·분포·민감도·게이트 판정은 시뮬레이터 배포 데이터 dp_panel.json(2026-08-11 02:13 생성)과 동결 파일 dp_freeze_honam_20260811_v1.json·dp_freeze_seoul_gyeonggi_20260811_v1.json, 조사 신호는 dp_signals.json, 백테스트는 backtest.json. 실측은 호남 아시아경제·서울경제, 서울·경기 한국일보, 순회경선 누적 경향신문, 최종 경향신문, 대의원·국민여론조사 머니투데이·머니투데이. 희석 계산·이양률·백분위는 본문에 계산 과정을 명시했다.