引力模型实战:从铁路暑运4.32亿人次与西十高铁客流看城市间客流预测
一、新闻回顾:暑运客流的三个"数字切片"
8月1日,国铁集团发布铁路暑运数据(中国新闻网、央视新闻、国铁集团官网同步发布)。暑运指7月1日至8月31日共62天,到7月31日正好过半,全国铁路累计发送旅客4.32亿人次。暑运开始前,官方预计整个暑运发送旅客10.1亿人次、日均1629万人次;客流呈"两头高、中间低"走势,7月上旬出现首波高峰,8月中下旬将迎来最高峰。
把总量拆到区域,能看出更细的结构:国铁北京局截至7月31日累计发送旅客3877.4万人次、日均125.1万人次;国铁广州局累计发送5892.5万人次、日均190.1万人次,单日最高客流达到246.8万人次。成渝、京津冀、长三角、粤港澳大湾区客流尤为集中,主要客流类型为亲子旅游、研学交流、观演观赛。
再看新线的表现:西十高铁(西安至十堰)6月30日开通,西安东站同步投用,7月西十高铁动车组累计运送旅客超233万人次;广湛高铁佛山站暑运首日开通,日均开行98列。
表1 暑运数据数字切片(官方发布口径)
| 指标 | 数值 |
| 暑运周期 | 7月1日至8月31日(62天) |
| 截至7月31日全国累计发送旅客 | 4.32亿人次 |
| 暑运前预计总发送量 | 10.1亿人次(日均1629万人次) |
| 国铁北京局累计/日均 | 3877.4万人次 / 日均125.1万人次 |
| 国铁广州局累计/日均/单日峰值 | 5892.5万人次 / 日均190.1万人次 / 246.8万人次 |
| 西十高铁7月动车组客流 | 超233万人次 |
这几组数字背后有一个建模问题:为什么广州局客流(5892.5万人次)比北京局(3877.4万人次)多五成?为什么成渝、京津冀、长三角、粤港澳大湾区客流格外集中?为什么一条新开的高铁线一个月就能送出233万人次?城市与城市之间的客流强度,到底由什么决定?回答这个问题的主力模型,就是引力模型。
二、引力模型:把"距离产生疏远"写进公式
引力模型的灵感来自牛顿万有引力:两个天体之间的引力与质量乘积成正比、与距离平方成反比。经济学家和社会学家照葫芦画瓢:两个城市之间的人员往来流量,与两个城市的"规模"(人口、经济总量)乘积成正比,与两地之间的"距离"(铁路里程、旅行时间、票价)的某次幂成反比。
写成文字就是:城市对之间的客流等于一个比例常数,乘以两地规模指标的乘积,再除以距离指标的某次幂。其中规模指标常用城市人口、GDP(地区生产总值)或二者的组合;距离指标常用铁路旅行时间或铁路里程。幂次不是固定值,要由数据估计出来。
表2 引力模型变量说明
| 变量 | 含义 | 常用度量 |
| 规模一 | 出发地城市的"引力" | 常住人口、GDP |
| 规模二 | 目的地的"引力" | 常住人口、GDP |
| 距离 | 两地间的"阻力" | 铁路旅行时间、铁路里程、票价 |
| 流量 | 要预测的对象 | 客运量、出行人次、货物流量 |
模型为什么是"乘积"而不是"相加"?想想实际逻辑:一个千万人口的大城市,它对远方的吸引力,不只是"把自己的人口数加到总和里",而是"大城市的基数乘以对方的基数"——两地都大,往来才呈爆发式增长。京津冀、长三角、粤港澳大湾区这种"城市群",内部城市两两规模乘积巨大、距离又近,所以客流高度集中;这与新闻里"四大区域客流尤为集中"的事实完全对得上。而西十高铁开通后,西安与十堰(武当山所在地)之间的旅行时间大幅缩短,相当于"距离"变小,客流随之跃升——一个月233万人次的新线成绩,正是"距离缩短、流量放大"的现实注脚。
模型本身是好懂的,真正的技术活在于:比例常数和两个幂次是多少?回答这个问题需要参数标定。
三、参数标定:取对数变成线性回归
引力模型的参数(比例常数与两个幂次)怎么估计?标准做法是"取对数、线性化、最小二乘回归"。
原理是:对等式两边同时取自然对数,乘除法就变成了加减法——"流量的对数等于常数项,加上规模一的幂次乘规模一对数的和,再减去距离幂次乘距离对数"。原先把参数藏在乘方里、无法直接估计,取对数之后,流量对数变成规模对数与距离对数的线性组合,这时就能用最小二乘回归,从一组城市对的实际数据里把参数"拟合"出来。
具体步骤分四步。
第一步,收集样本。整理若干组城市对数据,每一组记录四个量:城市一的规模、城市二的规模(或直接记录两者乘积)、两地距离、实际观测到的客流量。
第二步,取对数。对每个变量的原始数值取自然对数,得到一组"对数表"。
第三步,回归估计。用最小二乘法,让"流量对数的预测值与实际值之差的平方和"最小,解出常数项与两个系数。两个系数的含义很直观:规模系数表示"两地规模乘积扩大1%,客流增加约多少百分比",距离系数的相反数表示"距离延长1%,客流减少多少百分比"。
第四步,检验与预测。用拟合优度衡量模型解释力,再代入新的城市对数据,算出预测客流。
回归的结果不需要手算,但论文里必须把"取对数"这一步讲清楚——这正是引力模型题目的得分点:阅卷老师想看的不是最终预测值,而是你是否理解"为什么取对数就能线性化、就能用最小二乘"。
四、算例推演:五组城市对数据的标定与预测
下面构造一个五组城市对的教学算例(构造数据,仅用于演示方法,不指向任何真实城市):规模为两地人口与GDP的合成指标(万人乘万元量级),距离用铁路旅行时间(小时),客流量为周度万人次。
表3 五组城市对原始数据(教学构造数据)
| 城市对 | 规模乘积 | 铁路旅行时间(小时) | 周度客流(万人次) |
| 城市对一 | 6000 | 2.0 | 120 |
| 城市对二 | 4000 | 3.0 | 50 |
| 城市对三 | 9000 | 4.0 | 95 |
| 城市对四 | 2500 | 1.5 | 55 |
| 城市对五 | 7000 | 6.0 | 48 |
第一步取对数,得到下表。
表4 取对数后的数据(自然对数,保留两位小数)
| 城市对 | 规模对数 | 时间对数 | 客流对数 |
| 城市对一 | 8.70 | 0.69 | 4.79 |
| 城市对二 | 8.29 | 1.10 | 3.91 |
| 城市对三 | 9.11 | 1.39 | 4.55 |
| 城市对四 | 7.82 | 0.41 | 4.01 |
| 城市对五 | 8.85 | 1.79 | 3.87 |
第二步做最小二乘回归:把客流对数作为被解释变量,规模对数与时间对数作为解释变量。用最小二乘法解出的结果(教学算例,按未取整数据计算):
客流对数值等于-4.82,加上1.18乘以规模对数值,再减去0.99乘以时间对数值。
翻译成模型语言:规模弹性约为1.18——两地规模乘积扩大1%,客流大约增加1.18%;时间弹性约为-0.99——旅行时间延长1%,客流大约减少0.99%,近似于"客流与旅行时间成反比"。两个参数的符号完全符合引力模型的预期:规模促进客流,距离抑制客流。
第三步回代检验。把五组数据代回拟合方程,得到每组城市对的预测客流。
表5 回归结果与回代检验
| 城市对 | 实际客流(万人次) | 模型预测(万人次) | 误差 |
| 城市对一 | 120 | 118 | 约-2% |
| 城市对二 | 50 | 49 | 约-2% |
| 城市对三 | 95 | 96 | 约+1% |
| 城市对四 | 55 | 56 | 约+2% |
| 城市对五 | 48 | 48 | 约0% |
五组数据的拟合误差都在2%以内。需要说明的是,这是为方便手算复核而构造的理想数据,真实客流数据的残差通常大得多——广州局日均190.1万人次、单日峰值246.8万人次这类数据里,藏着票价、假期、景点、替代交通等大量引力模型没有直接纳入的因素。教学算例用理想数据,真实论文要报告真实的拟合优度与残差。
第四步预测新城市对。设某对城市规模乘积为5000、铁路旅行时间2.5小时,代入拟合方程计算,预测周度客流约为77万人次。这就是"标定模型、预测未知"的完整闭环。
五、应用:新线开通的客流预测与运力配置
模型标定好以后,最有价值的用途是"反事实推演":旅行时间变了,客流会怎么变?
继续用上面的教学算例(构造数据)演示。固定规模乘积为5000不变,把铁路旅行时间从6小时缩短到2小时,代入拟合方程:6小时对应周度客流约32万人次,2小时对应约95万人次,客流放大约3倍。这个"3倍"完全由标定的时间弹性(约-1)驱动——旅行时间缩短三分之二,客流按比例放大,这正是引力模型对"新线开通效应"的标准估算方式。
把这个逻辑套回新闻,就读得懂西十高铁的233万人次了。西十高铁6月30日开通、西安东站同步投用,一个月内动车组累计运送旅客超233万人次。这条线连接西安与十堰,沿线有武当山等著名旅游资源,暑运又叠加亲子旅游、研学交流、观演观赛的出行高峰——规模端(西安的旅游吸引力与十堰的景区客流)与距离端(高铁压缩旅行时间)同时发力,引力模型的两个变量都向着"流量放大"的方向走。论文里做这类分析时,要像上面那样:先标定模型,再代入"开通前旅行时间"与"开通后旅行时间"两套参数,算出客流增量区间,而不是直接断言"开通了所以客流大"。
运力配置是另一个典型应用:预测出各城市对的客流后,可以换算成日均开行列数与席位需求。官方数据里广湛高铁佛山站日均开行98列、全国铁路日均计划开行旅客列车约1.2万列,都是"客流预测—运力配置"链条的末端环节。国赛交通类赛题(新线开通影响评估、枢纽选址、列车开行方案优化、城市群联系强度分析)几乎都可以用"引力模型标定+客流预测+运力配置"三段式来打。
六、局限与进阶:模型什么时候会失灵
引力模型简洁好用,但必须知道它的边界,论文里写清楚局限性反而是加分项。
第一,同质性假设。标准引力模型把所有城市对"一视同仁",但现实里北京与广州的客流结构、北京与十堰的客流结构完全不同——旅游城市对、商务城市对、通勤城市对的流量形成机制差异很大。改进方向是加入哑变量(是否为旅游城市、是否同一城市群)。
第二,距离的度量选择。用旅行时间还是里程?高铁时代旅行时间才是真正的"经济距离":西十高铁开通,里程没变,旅行时间变了,客流变了。选择不当会系统性低估新线效应。
第三,遗漏变量。票价、收入水平、景区资源、替代交通(飞机、自驾)都会影响客流,遗漏它们会带来估计偏差。改进方向是扩展为多变量引力模型。
第四,边界效应。省界、政策限制、铁路网络结构(是否直达)都会削弱"纯距离"的解释力。现实中,同一省内的城市对往往比跨省同距离城市对有更多客流,这就是"边界效应"。
表6 引力模型的局限与改进方向
| 局限 | 表现 | 改进方向 |
| 同质性假设 | 不同性质城市对混在一起估计 | 加入类型哑变量、分群建模 |
| 距离度量 | 里程与旅行时间结论不同 | 用旅行时间,新线场景尤其如此 |
| 遗漏变量 | 票价、收入、替代交通等未纳入 | 扩展变量、多变量引力模型 |
| 边界效应 | 省界与网络结构影响客流 | 边界哑变量、网络结构修正 |
七、总结
从暑运的4.32亿人次到西十高铁的233万人次,引力模型给了一个统一的解释框架:城市间客流由规模乘积推动、被距离(时间)抑制。本文的核心方法可以浓缩为四步:取对数线性化、最小二乘标定参数、回代检验、代入预测。规模弹性与时间弹性这两个估计值,是整篇论文最有信息量的产出——它们告诉你"城市变大对客流的边际拉动"和"时间缩短对客流的放大倍数"。
建模的完整流程,在引力模型上体现得特别清楚:从新闻现象出发提出"客流由什么决定"的问题,选择与现象对得上号的模型形式,用数据标定参数,用回代与残差检验模型,最后用模型做反事实推演(新线开通、时间缩短、客流翻几倍)。下次再看到"某高铁新线开通""某城市群客流集中"的新闻,不妨按这个流程走一遍——先问规模,再问时间,最后对账预测值与实际值,这就是一次完整的建模训练。
参考来源
- 中国新闻网2026-08-01、央视新闻、国铁集团官网(china-railway.com.cn)2026-08-04:铁路暑运过半,截至7月31日全国铁路累计发送旅客4.32亿人次;暑运前预计发送10.1亿人次、日均1629万人次,客流呈"两头高、中间低"走势;国铁北京局累计3877.4万人次、日均125.1万人次;国铁广州局累计5892.5万人次、日均190.1万人次、单日最高246.8万人次;成渝、京津冀、长三角、粤港澳大湾区客流尤为集中。
- 官方发布口径:西十高铁6月30日开通、西安东站同步投用,7月动车组累计运送旅客超233万人次;广湛高铁佛山站暑运首日开通、日均开行98列;主要客流类型为亲子旅游、研学交流、观演观赛。
- 引力模型理论:两地间流量与两地规模乘积成正比、与距离某次幂成反比;取对数线性化后可用最小二乘估计参数(经济学与交通规划教材通用口径)。
- 本文第四、五节算例均为教学构造数据(五组城市对数据与预测示例),仅用于演示标定与预测流程,不指向任何真实城市。