아티클 /
실제 레이스 파일 60개 백테스트: 이 엔진은 얼마나 정확할까요
AeroPacer의 완주 시간 예측은 통계 회귀가 아니라 물리 엔진으로 돌아가요. 물리 엔진의 장점은 새 코스도 첫날부터 계산할 수 있다는 것이고, 단점은 그 계산이 정확하다는 걸 증명해야 한다는 거예요. 이 글에서 검증 방법을 펼쳐 놓을게요.
어떻게 측정했나
방법은 리플레이예요. 선수가 레이스 당일 실제로 기록한 파워를 구간별로 엔진에 먹이고, 그날의 시간별 풍향과 풍속, 코스의 코너 감속을 더해서, 엔진이 보기에 그렇게 달렸다면 시간이 얼마나 걸렸어야 하는지를 계산해요. 그다음 사이클링 컴퓨터에 기록된 실제 시간과 비교하고요.
가장 중요한 세부 사항은 CdA (항력 면적)예요. 그 경기 자체의 파일에서 CdA를 역산해서 같은 경기를 예측하면 그건 반칙이에요. 그래서 모든 경기의 CdA는 그 선수의 다른 경기에서 나온 추정값만 쓰고, 연도로 가중해 중앙값을 취해요. 그 경기 자체의 데이터는 들어가지 않아요.
샘플
- 선수 아홉 명, 2019년부터 2026년까지, 레이스 파일 74개, 16개국 이상의 코스.
- 체중은 전부 실측값을 썼고, 자전거는 종류별로 나눴어요 (트라이애슬론 바이크와 로드 바이크는 CdA 기준선을 따로 만들었어요).
- 문제가 확인된 파일은 제외했어요. 파워가 없는 파일 두 개, 기압계 고장 네 개, 중복 업로드 한 개, 터널 구간 GPS 왜곡 세 경기예요. 이 파일들의 CdA 추정값은 기준선 풀에 그대로 남아 있고, 전체 시간만 통계에서 빠져요.
그래서 평가할 수 있는 경기가 64개 남았고, 극단값 네 개를 더 걷어내 최종 샘플 60개가 됐어요.
결과
| 지표 | 값 |
|---|---|
| 오차 절댓값 중앙값 | 2.2% |
| ±5% 이내 | 92% |
| ±3% 이내 | 73% |
| 70.3 (113 km) 중앙값 | 1.7% |
| 풀 디스턴스 (226 km) 중앙값 | 2.3% |
| 부호를 포함한 중앙값 | +0.7% (약간 보수적) |
사이트에는 "오차 중앙값 약 2%, 열 경기 중 아홉 경기가 ±5% 이내"라고 적혀 있어요. 두 숫자 모두 보수적인 쪽으로 반올림했어요.
오차는 어떻게 분포하나
예측과 실제
오차는 어디서 오나
- 체중. 가정한 체중을 쓰면 중앙값이 오히려 더 낮게 나와요. 체중이 틀리면 CdA 추정값이 반대 방향으로 보정하면서 오차를 덮어 버리기 때문이에요. 실측 체중으로 바꾸고 나서야 장비와 연도가 맞지 않는 문제가 드러났어요. 콘솔에서 진짜 체중을 입력하라고 하는 이유도 이거예요.
- 장비 변화. 한 선수는 2024년부터 내재 CdA가 0.22에서 0.16–0.18 사이로 떨어졌어요. 장비가 크게 좋아진 건데, 전체 이력의 중앙값은 이를 따라가지 못해요. 다른 경기로 CdA를 추정하는 방식이 치러야 하는 필연적인 대가예요.
- 기상 관측소까지의 거리. Port Macquarie 근처에는 기상 관측소가 없는 데다 바람이 강했고, 같은 경기의 두 선수가 각각 −7.4%와 −4.1%로 나왔어요.
- 평지 장거리에서 기압계가 획득 고도를 과대평가하는 문제. 이 항목은 엔진이 아니라 코스 구축에 영향을 줘요. 코스 라이브러리는 공식 루트와 여러 출처 교차 확인으로 처리해요.
검증에 쓴 대회
최종 60개 경기는 대회와 연도 조합 45건에서 나왔고, 분포는 아래와 같아요. 같은 대회에 파일이 여러 개인 것은 선수가 다르다는 뜻이에요. 오차는 각 파일의 예측을 실제와 비교한 값이에요 (양수 = 예측이 더 느림). "훈련 라이딩" 세 개는 제가 코스 길이에 맞춰 직접 탄 라이딩으로, 2026년 샘플을 채우려고 넣었어요.
| 연도 | 대회 | 바이크 구간 | 파일 | 파일별 오차 |
|---|---|---|---|---|
| 2026 | Tielifang · Guangde 113 | 113 · 88 km | 1 | +3.3% |
| 2026 | 훈련 라이딩 (정식 대회 아님) | 116 km | 3 | -1.5% -0.5% +1.1% |
| 2026 | IRONMAN Vietnam · 다낭 | 226 · 180 km | 1 | +4.1% |
| 2026 | IRONMAN Taiwan · 펑후 | 226 · 178 km | 1 | +2.2% |
| 2026 | IRONMAN Hamburg | 226 · 177 km | 2 | -0.7% +3.7% |
| 2026 | IRONMAN 70.3 Shanghai Chongming | 113 · 90 km | 3 | +1.0% +3.5% +4.5% |
| 2026 | Challenge Taiwan 226 | 226 · 180 km | 1 | +6.3% |
| 2025 | Tielifang · Guangde 113 | 113 · 89 km | 1 | +0.1% |
| 2025 | Beauty of Taitung 113 | 113 · 89 km | 1 | +3.8% |
| 2025 | IRONMAN World Championship · Nice | 226 · 178 km | 1 | -1.5% |
| 2025 | IRONMAN World Championship · Kona | 226 · 181 km | 1 | +2.7% |
| 2025 | IRONMAN Taiwan · 펑후 | 226 · 184 km | 1 | +5.2% |
| 2025 | IRONMAN Malaysia · Langkawi | 226 · 179 km | 1 | -0.9% |
| 2025 | IRONMAN Gurye | 226 · 176 km | 3 | -1.5% +0.9% +1.1% |
| 2025 | IRONMAN Frankfurt | 226 · 175 km | 2 | +0.9% +2.4% |
| 2025 | IRONMAN California · Sacramento | 226 · 180 km | 1 | +2.3% |
| 2025 | IRONMAN 70.3 컨딩 | 113 · 90 km | 1 | -0.9% |
| 2025 | IRONMAN 70.3 Shanghai Chongming | 113 · 90 km | 4 | -0.1% +1.3% +2.7% +2.7% |
| 2025 | IRONMAN 70.3 Puerto Princesa | 113 · 90 km | 2 | -1.7% -1.7% |
| 2024 | Tielifang · Guangde 113 | 113 · 89 km | 1 | -2.7% |
| 2024 | IRONMAN World Championship · Kona (부분 파일) | 73 km (부분) | 1 | +3.5% |
| 2024 | IRONMAN World Championship · Kona | 226 · 180 km | 1 | +2.2% |
| 2024 | IRONMAN Texas | 226 · 178 km | 1 | +4.1% |
| 2024 | IRONMAN Cairns | 226 · 179 km | 1 | -0.9% |
| 2024 | IRONMAN 70.3 World Championship · Taupō | 113 · 90 km | 2 | -2.4% -0.7% |
| 2024 | IRONMAN 70.3 Subic Bay | 113 · 91 km | 1 | +2.3% |
| 2024 | IRONMAN 70.3 Desaru Coast | 113 · 89 km | 1 | -2.7% |
| 2024 | IRONMAN 70.3 Bangsaen | 113 · 90 km | 1 | +2.7% |
| 2024 | IRONMAN 70.3 Bahrain | 113 · 90 km | 2 | +0.5% +0.9% |
| 2024 | Challenge Xiamen 113 | 113 · 89 km | 1 | +3.9% |
| 2024 | Challenge Taiwan 226 | 226 · 179 km | 1 | +4.2% |
| 2024 | Challenge Roth | 226 · 178 km | 1 | +2.3% |
| 2023 | Tielifang · Guangde 113 | 113 · 86 km | 2 | -7.0% +0.6% |
| 2023 | Puyuma Triathlon 226 | 226 · 178 km | 1 | -2.0% |
| 2023 | IRONMAN France · Nice | 226 · 179 km | 1 | -5.9% |
| 2023 | IRONMAN Austria · Klagenfurt | 226 · 179 km | 1 | -2.4% |
| 2023 | IRONMAN Australia · Port Macquarie | 226 · 180 km | 1 | -4.1% |
| 2023 | IRONMAN 70.3 컨딩 | 113 · 90 km | 1 | -2.3% |
| 2023 | IRONMAN 70.3 Puerto Princesa | 113 · 90 km | 1 | -0.8% |
| 2022 | IRONMAN Taiwan · 펑후 | 226 · 179 km | 1 | -1.9% |
| 2022 | IRONMAN 70.3 타이둥 | 113 · 88 km | 1 | -0.3% |
| 2019 | IRONMAN World Championship · Kona | 226 · 180 km | 1 | +5.5% |
| 2019 | IRONMAN 70.3 Xi'an | 113 · 90 km | 1 | -0.8% |
| 2019 | IRONMAN 70.3 Liuzhou | 113 · 90 km | 1 | -2.1% |
| 2019 | IRONMAN 70.3 Xiamen | 113 · 90 km | 1 | -0.3% |
이게 무슨 뜻인가
일반 선수에게 이 숫자가 뜻하는 건 이거예요. 플랜대로 달리면 완주 시간은 대략 예측값의 ±5% 안에 들어와요. 레이스 당일 파일을 올려 비교하면 내 CdA는 갈수록 좁게 수렴하고, 다음 경기의 오차는 한 번 더 줄어들어요.
신뢰도에 대해
- 이 글의 모든 숫자는 백테스트 결과 표에서 바로 계산했고, 그래프도 같은 데이터로 그렸어요. 따로 골라낸 경기는 없어요.
- 제외한 파일과 그 이유는 전부 위에 적어 놓았어요. 제외는 결과를 보기 전에 데이터 품질로 정한 것이지, 오차 크기로 정한 게 아니에요.
- 샘플은 실제 선수 아홉 명과 코치인 저 자신에게서 나왔고, 아시아, 유럽, 북미, 오세아니아의 코스를 아울러요. 자기 파일로 자기 CdA를 추정한 경기는 한 건도 없어요.
- 백테스트 스크립트와 결과 표는 프로젝트 안에 보관하고, 엔진을 업그레이드할 때마다 다시 돌려요. 숫자가 바뀌면 바뀐 이유와 함께 여기에 업데이트할게요.
엔진은 앞으로도 새로운 라이딩 파일로 계속 백테스트할 거예요.