风险多大?
按转机时长、枢纽、航司、时段和季节看误机率,带置信区间。
[ 数据分析案例 · 独立项目 · 2026 ]
我把 2025 年 700 万个美国真实航班拼成 484 万次枢纽转机,逐一核对实际有没有误机,最后落成一条订票规则和 TripMate 里的风险提示。
订票网站很乐意卖你 35 分钟的转机,却不会告诉你成功率。
航司公布最短转机时间,订票引擎只要高于它就照卖。但对旅客、也对我做的出行助手 TripMate 来说,真正有用的问题是:这次转机失败的概率多大?失败了会怎样?把误机算进去,留多久平均最快?我把它拆成三个数据能回答的问题。
按转机时长、枢纽、航司、时段和季节看误机率,带置信区间。
误机后,按真实时刻表找下一班飞往同一目的地的航班,算要多等多久。
让期望耗时最短的转机时长,以及产品在订票时能展示的风险提示。
世上没有现成的“误机数据集”,我用真实发生的结果搭了一个。
美国交通部的文件记录了大航司每个国内航班的计划和实际时间,但不记录谁转了机。所以我构造真实可订的行程:每个飞进航司枢纽的航班,配上该航司 30–180 分钟后出发的下一班,每个进港航班随机抽三种转机时长。每一对都用两个航班的真实结果打标签,同一场暴雨让两班都晚点的情况会被如实记录,而不是被假设掉。
误机 = 进港航班取消或备降 或 出港航班在进港落地后不到 20 分钟就推出
20 分钟登机口到登机口
第一个小时里风险下降最快,之后趋平;几点落地和留多久一样重要。
从 30 分钟加到 60 分钟,风险减半(15.9% → 7.6%);再翻倍到 120 分钟只多降 3.8 个百分点。大约 1.2–1.3 个百分点始终降不下去:那是进港航班取消,留多久都没用。
延误会在一天里层层累积。早上 7 点落地误机约 4.8%;晚上 9 点以后是 13–15%,同样的转机时长,风险高了近三倍。
6–7 月最差(10.6–11.4%):夏季雷暴叠加满排航班。9 月最平稳(6.2%)。
进港晚点时,出港往往也晚:同一场天气、同一组机组。把这层关联打断,误机率会从真实的 5.73% 变成 6.66%:常见的“两个延误率相乘”的算法会把风险高估约 16%。用真实配对结果打标签,这个功夫值得花。
延误分钟按上报原因
天气很少是直接原因。前序航班的连锁延误和航司运营占了五分之四的延误分钟,这正是越晚落地越危险的原因。
模型有帮助;但诚实地测,订票时能拿到的信息有天花板。
如果 TripMate 要展示一个风险数字,它必须是校准过的(标 10% 的转机,大约就该有 10% 失败),而且要在模型没见过的月份上测。我用订票时就知道的信息训练梯度提升模型:转机时长、落地时段、枢纽、航司、出发地、星期几、距离;并和两个产品经理用表格就能做的基线对比。
| 方法 | AUC | 平均精度 | Brier |
|---|---|---|---|
| 只看转机时长 | 0.657 | 0.096 | 0.0504 |
| 枢纽 × 航司 × 时长查表 | 0.664 | 0.104 | 0.0503 |
| 梯度提升(已校准) | 0.690 | 0.123 | 0.0499 |
AUC 0.690,查表是 0.664。转机时长和落地时段贡献约八成信号;剩下的风险来自当天的天气和运营,订票时没人知道。
有这个天花板,产品就该展示低 / 中 / 高三档风险并附上百分比,而不是一个看似精确的分数。
用平稳的 9 月校准,模型会把 10–12 月低估约 1.5 个百分点。早期版本把月份当特征,效果更差。解决办法:用 2023–2025 三年数据训练,让它学到季节性。
一次误机的代价以小时计,所以最快的转机不是最短的那个。
对每一次误机,我在真实时刻表里找当天或次日从该枢纽飞往同一目的地的下一班。给出两个边界:任意航司(乐观)和同一主线航司(大多数机票的现实情况)。
期望耗时 = 转机时长 + 误机概率 × 误机后的等待
美国航空在 DCA 的 45 分钟转机有 16% 会误机,期望耗时 118–151 分钟。订 60–75 分钟平均反而更快(115–140),也安心得多。时间价值按每小时 25 美元还是 100 美元算,结论几乎不变,因为误机的代价本身主要就是时间。
| 枢纽 | 30–59 | 60–89 | 90–119 | 最快 | 过夜 |
|---|---|---|---|---|---|
| ATLDL | 10.9 | 6.1 | 4.3 | 45 min | 29-30% |
| DFWAA | 15.2 | 9.9 | 7.3 | 45-75 min | 41-43% |
| CLTAA | 11.8 | 7.1 | 5.1 | 60 min | 40-42% |
| DENUA | 12.3 | 6.6 | 4.9 | 45-75 min | 34-57% |
| DENWN | 9.3 | 5.0 | 3.3 | 45-60 min | 35-50% |
| LASWN | 8.1 | 4.5 | 2.6 | 45-60 min | 41-49% |
| ORDUA | 10.1 | 6.4 | 4.4 | 60 min | 33-54% |
| SEAAS | 13.7 | 6.6 | 4.2 | 60 min | 47-59% |
| BWIWN | 8.0 | 4.5 | 3.3 | 45 min | 51-53% |
| PHXWN | 8.3 | 5.0 | 3.3 | 45 min | 44-52% |
| DALWN | 8.6 | 5.1 | 3.6 | 45 min | 53-53% |
| MDWWN | 8.5 | 4.8 | 3.2 | 45 min | 58-58% |
| MSPDL | 11.1 | 6.3 | 4.1 | 60 min | 56-58% |
| IAHUA | 10.2 | 5.7 | 3.9 | 45 min | 46-51% |
| MIAAA | 14.4 | 8.4 | 5.7 | 60-75 min | 45-46% |
| PHXAA | 12.5 | 7.9 | 5.3 | 60-75 min | 37-59% |
给旅客三条规则,给 TripMate 一个功能。
几乎每个枢纽平均都最快。别订 30 分钟:六次里就有一次赶不上。
下午 5 点后落地、或者 6–7 月出行?多留 15–30 分钟,风险是平时的两到三倍。
大约一半的误机意味着过夜。如果是当天最后一班转机,就订长一点的。
60–75 分钟的转机误机率 9–12%,平均还更快。
来源:美国交通部 2025 准点数据 · 下午落地
模型输出一张校准后的误机概率查找表:航司 × 枢纽 × 落地时段 × 转机时长(`risk_table.json`),小到可以直接放进前端,不需要模型服务器。在 TripMate 里,它就是每个转机行程旁边的风险提示。
加入 2023–2024 年数据,让模型学会月份效应,而不是低估冬季。
支线合作航司用自己的代码申报,转到它们的航班不在范围内。下一步:把合作航班映射回销售航司。
登机口之间的时间因航站楼而异。下一步:按枢纽航站楼图调整,并区分是否托运行李。
我用下一班直飞同一目的地来近似。真实改签可能经别的枢纽(更快),也可能遇上满座(更慢)。
数据:美国交通部运输统计局(BTS)Reporting Carrier On-Time Performance,2025 年 1–12 月。本页所有数字都由我自己的代码从原始文件算出;代码可应要求提供。