버스는 왜 늘 더 오래 기다릴까
"버스는 평균 10분마다 온다는데, 왜 나는 늘 더 오래 기다리지?" 평균 간격이 10분이니 아무 때나 가면 평균 5분만 기다릴 것 같습니다. 그런데 버스가 들쭉날쭉 오면 평균 대기는 5분이 아니라 10분이 될 수 있습니다. 내가 하필 운이 나쁜 게 아니라, 아무 때나 도착한 사람은 긴 간격에 걸릴 확률이 더 높기 때문입니다. 버스가 얼마나 들쭉날쭉한지, 평균 간격, 승객 수를 바꿔 보고, 같은 착시가 "내 반이 학교 평균보다 붐비는 이유"에도 숨어 있는지 확인합니다.
모델은 이렇게 움직입니다
- 버스는 평균 간격(분)마다 한 대꼴로 오지만, 실제 간격은 들쭉날쭉합니다(통계의 감마분포를 씁니다). 불규칙한 정도(변동계수 = 간격의 표준편차 ÷ 평균)가 0이면 시간표대로 정확히 오고, 1이면 무작위로 도착하고, 그보다 크면 버스가 몰려서 옵니다.
- 승객은 버스 시간표를 모르고 아무 때나 도착합니다. 도착한 순간부터 다음 버스까지가 대기 시간, 도착했을 때 걸쳐 있던 버스 간격이 승객이 본 간격입니다.
- 긴 간격은 시간축에서 자리를 더 많이 차지하므로 승객이 그 안에 떨어질 확률이 간격 길이에 비례합니다. 그래서 승객이 본 간격의 평균은 버스를 하나씩 센 평균보다 큽니다. 이론값은 평균 대기 = 평균 간격 ÷ 2 × (1 + 변동계수²)입니다.
- 아래쪽 패널은 같은 계산을 학급 인원에 적용합니다. 학급을 하나씩 세면 평균 25명이지만, 학생에게 "너희 반은 몇 명이야?"라고 물으면 큰 반의 학생이 더 많이 대답하므로 평균이 더 커집니다.
직접 돌려보기
① 승객이 한 명씩 도착한다
승객이 도착할 때마다 그 사람이 걸린 버스 간격(주황)과 기다린 시간(빨간 선)을 보여 줍니다. 파란 점은 앞서 도착한 승객들인데, 긴 간격 안에 훨씬 많이 모여 있습니다. 아래 그래프는 지금까지 도착한 승객들의 평균 대기로, 금색 이론선으로 다가가고 회색 단순 계산(간격의 절반)과는 멀어집니다.
② 버스를 센 간격과 승객이 본 간격
파란 막대는 버스 간격을 하나씩 센 분포이고, 주황 선은 승객이 실제로 걸린 간격의 분포입니다. 주황은 긴 간격 쪽으로 쏠려 있어서 평균이 오른쪽으로 밀립니다.
③ 들쭉날쭉할수록 오래 기다린다
가로는 버스가 얼마나 들쭉날쭉한지, 세로는 평균 대기 시간입니다. 파랑이 실측, 금색 선이 이론(평균 간격 ÷ 2 × (1 + 변동계수²)), 회색 점선이 "간격의 절반" 단순 계산입니다. 시간표대로 오는 왼쪽 끝에서만 단순 계산과 같습니다.
④ 같은 착시: 내 반은 왜 늘 붐빌까
평균 25명인 학급 1,000개를 만들고(인원이 들쭉날쭉한 정도는 위의 슬라이더 값), 학급을 하나씩 센 평균과 학생 한 명 한 명에게 자기 반 인원을 물은 평균을 비교합니다. 큰 반에는 학생이 많아서 "큰 반 학생"의 대답이 더 많이 모입니다.
이 결과가 말하는 것, 말하지 않는 것
말하는 것:
- 버스가 시간표대로 오면 기다림이 간격의 절반이지만, 들쭉날쭉할수록 훨씬 길어져요. 평균 10분 간격에서 정확히 오면 5분, 무작위로 오면 10분, 더 불규칙하면 25분이었어요.
- 긴 간격은 시간에서 자리를 더 많이 차지해서, 아무 때나 가면 긴 간격에 걸리기 쉬워요. 버스 간격 중 20분 이상은 13%뿐인데 승객은 41%가 거기에 걸렸어요.
- 버스를 하나씩 센 평균과 승객이 겪는 평균은 달라요. 평균 25명인 학급에서 학생이 겪는 평균이 27.3명인 것도 같은 이유예요.
- 그렇다면 덜 기다리려면? 이 모델에선 버스를 고르게 오게 하는 게 가장 확실했어요(불규칙 1.0→0.5: 10.1→6.3분, 시간표대로면 5.0분). 기다릴 땐 '간격의 절반'보다 길게 잡는 게 맞았어요.
상세 설명
말하는 것: 평균 간격 10분에서 버스가 무작위로 오면(불규칙한 정도 1.0), 버스를 하나씩 센 평균 간격은 10.1분인데 승객이 본 간격의 평균은 20.2분(이론 20.0분)이었고, 평균 대기는 10.1분(이론 10.0분)으로 단순 계산 5분의 두 배였습니다(버스 2만 대, 승객 4만 명). 시간표대로 오면(0) 평균 대기는 5.0분으로 단순 계산과 같았고, 0.5에서는 6.3분(이론 6.3분), 2.0에서는 25.0분(이론 25.0분)까지 늘었습니다. 기본 설정(승객 500명)에서 버스 간격 중 20분 이상인 것은 13%뿐인데, 승객은 41%가 그런 간격에 걸렸습니다. 대기 시간의 중앙값은 7.0분이었지만 가장 오래 기다린 승객은 60.7분이었습니다. 학급 인원도 같은 계산입니다. 평균 25명인 학급 2만 개에서 학급 인원이 들쭉날쭉한 정도가 0.3이면 학급 평균은 25.0명, 학생이 겪는 평균은 27.3명(이론 27.3명)이었고, 1.0이면 49.8명(이론 50.0명)이었습니다. 내 반이 평균보다 붐비는 건 기분 탓이 아니라, 큰 반에 학생이 더 많이 있기 때문입니다.
말하지 않는 것:
- '시간표를 보고 나오는 승객은 훨씬 덜 기다린다'는 건 이 시뮬레이션이 직접 보여 준 게 아니라 생각해 볼 점이에요. 모델이 보여 준 건 아무 때나 도착하는 사람의 대기예요.
- 실제 버스 대부분이 이렇게 들쭉날쭉하다는 뜻은 아니에요. 불규칙한 정도는 예시 값이에요.
- 실제 노선의 간격과 대기는 직접 관찰하고 재 봐야 알 수 있어요.
상세 설명
말하지 않는 것: 실제 버스 대부분이 이 정도로 들쭉날쭉하다는 뜻은 아닙니다. 이 모델은 간격이 서로 독립인 단순한 모델이고, 변동계수 1.0은 "무작위 도착"을 보여 주려고 고른 값이지 실제 노선의 측정값이 아닙니다. 또 시간표가 있는 노선에서는 승객이 시간에 맞춰 나오므로 "아무 때나 도착"이라는 가정이 맞지 않아, 대기가 훨씬 짧을 수 있습니다(이 모델은 배차 간격이 짧아 시간표를 보지 않고 나가는 경우에 해당합니다). 기분 나쁜 기억이 더 오래 남는 심리 효과를 설명하는 것도 아닙니다. 학급 패널에서는 인원을 최소 1명의 정수로 반올림했기 때문에 변동계수 1.5 이상에서는 이론값과 조금 달라집니다(1.5에서 82.5명 대 81.3명). 한 반이 실제로 얼마나 들쭉날쭉한지는 이 프로젝트가 측정한 적이 없고, 현실적이라고 둔 0.3도 예시 값입니다. 변동계수가 2처럼 큰 경우는 드문 긴 간격에 평균이 크게 좌우되어 승객 3천 명으로도 결과가 이론값에서 흔들립니다.
이론적 근거와 구현 메모
- 모델의 뿌리: 검사 역설(대기 시간의 역설)은 갱신 이론의 고전적인 결과입니다. 아무 때나 도착한 사람은 길이에 비례하는 확률로 간격에 걸리므로, 그 사람이 본 간격은 평균 간격보다 깁니다. 개설은 William Feller의 『An Introduction to Probability Theory and Its Applications』 2권(Wiley)과 Sheldon Ross의 『Introduction to Probability Models』(Academic Press)에 있습니다. 친구의 역설(Feld, 1991)도 같은 표본 편향입니다.
- 핵심 가정과 수식: 간격 X의 평균을 μ, 변동계수를 c라 하면, 임의 시각에 도착한 사람이 본 간격의 평균은
E[X²]/E[X] = μ(1 + c²)입니다. 대기 시간은 그 간격 안에서 균등하게 놓이므로 평균μ(1 + c²)/2입니다. 시간표대로(c = 0)면 μ/2, 무작위 도착(c = 1)이면 μ입니다. 슬라이더는 μ(평균 간격)와 c(불규칙한 정도)이고, 학급은 같은 식으로 학생이 속한 반의 평균 크기가25(1 + c²)입니다. - 이 프로젝트의 단순화: 간격은 서로 독립인 감마분포이고(c = 1이면 지수분포, 곧 무작위 도착) 승객은 시간표를 모르고 시간축 전체에서 균일하게 도착한다고 보았습니다. 시간표를 보고 나가는 사람이나 불쾌한 기억이 오래 남는 심리는 다루지 않습니다. 불규칙한 정도 1.0과 학급의 0.3은 실제 노선·학교에서 잰 값이 아니라 예시이며, 학급 인원은 정수로 반올림하고 최소 1명으로 둡니다.
- 이론값과 시뮬레이션: 평균 간격 10분, 버스 2만 대 규모에서 불규칙한 정도 0, 0.25, 0.5, 1, 1.5, 2일 때 평균 대기는 측정 5.0, 5.3, 6.3, 10.1, 16.1, 25.0분으로 이론값 5.0, 5.3, 6.3, 10.0, 16.3, 25.0분과 맞았습니다. 학급(평균 25명, 2만 학급)에서 학생이 겪는 평균은 c = 0.3에서 27.3(이론 27.3), 1에서 49.8(이론 50.0)이었고, 1.5에서는 반올림 때문에 82.5로 이론 81.3과 조금 벗어났습니다.
- 더 읽을거리: Feller (1971), An Introduction to Probability Theory and Its Applications, vol. 2, Wiley / Ross, Introduction to Probability Models, Academic Press (갱신 과정 장) / Feld (1991), Why your friends have more friends than you do, American Journal of Sociology.
- 버스 간격은 감마분포(평균 = 평균 간격, 변동계수 = 슬라이더 값)에서 뽑은 3,000개를 이어 붙여 시간축을 만들고, 승객은 그 시간축 전체에서 균일하게 뽑습니다. 승객이 걸린 간격과 다음 버스까지의 시간은 이진 탐색으로 구합니다. ③번 그래프의 점은 승객 3,000명으로 3번 돌린 값입니다. 학급 인원은 같은 분포에서 뽑아 정수로 반올림하고 최소 1명으로 둡니다.
- 검증은
node tools/validate-inspection.js로 할 수 있습니다. 이론은 승객이 본 간격 = 평균 간격 × (1 + 변동계수²), 평균 대기 = 그 절반이며, 변동계수 0, 0.25, 0.5, 1, 1.5, 2에서 실측 평균 대기는 5.0, 5.3, 6.3, 10.1, 16.1, 25.0분(이론 5.0, 5.3, 6.3, 10.0, 16.3, 25.0분)이었습니다.