出行数据入门:两种视角的对比
做出行分析,最先碰到的不是模型,是数据源的选择。同样问“早高峰从几点开始”,地铁刷卡数据和网约车订单数据给出的答案可能差半小时。地铁刷卡记录的是进站闸机时间,乘客从进站到上车还有步行和候车,而网约车订单记录的是上车时间。前者系统性地早于后者。如果拿两份报告直接对比,很容易得出“地铁早高峰比网约车早”的结论,但这只是统计口径差异,不是出行行为差异。
先看地铁数据。以上海某工作日为例,早高峰进站量峰值出现在7:45到8:00之间,但出站峰值在8:15到8:30。这15到30分钟的位移,就是平均通勤时长的一个粗糙估计。地铁数据的优势是样本量大、连续性好,一条线路每天几十万人次,适合观察长期走势。缺点是只能看到起点和终点,中间换乘路径靠推断,而且无法区分一个人是通勤还是偶发出行。
网约车数据反过来。单量远小于地铁,但每一单有精确的上车点、下车点、时间和距离。以北京为例,工作日早高峰订单中,从居住区到产业园区的比例超过六成,而晚高峰反过来。这种方向性在地铁数据里需要靠进出站配对才能勉强还原,在网约车数据里是现成的。代价是样本有偏,低收入群体和短途出行者占比偏低,直接拿网约车数据推断全人群出行,会高估机动化出行比例。
两种数据各有盲区,对比分析的价值就出来了。举个例子,某城市想评估一条新地铁线对地面交通的影响。只看地铁进站量,开通后三个月增长了12%,像是分流成功。但把网约车订单叠加进来,发现同一走廊的短途订单下降了8%,而长距离订单没怎么变。这说明地铁主要吃掉了接驳需求,不是全程替代。如果只用一个数据源,这个结论出不来。
对比分析的第一步不是建模,是对齐口径。时间粒度要对齐,地铁数据通常按15分钟聚合,网约车可以到秒级,直接对比会产生大量噪音。空间粒度也要对齐,地铁站是点,网约车订单是面,需要把订单映射到站点周边缓冲区。还有一类容易忽略的:工作日和节假日要分开。用工作日数据训练的走势模型,放到国庆假期上,预测误差能翻倍。
对齐之后,可以做交叉观察。一个实用的方法是看两个数据的比值变化。比如某区域地铁进站量与网约车订单量的比值,工作日稳定在8比1左右,周末降到3比1。这个比值突然变化的时候,往往对应着事件,演唱会散场、暴雨、临时交通管制。比值本身不说明因果,但它是一个低成本的异常信号。比起单独盯一个指标,两个指标互相参照,误报会少很多。
入门阶段不用急着上复杂模型。先把两个数据源各拉一个月,按小时聚合,画在同一张图上。看三条东西:峰值出现的时间差、峰值的宽度、周末与工作日的形态差异。这三条看熟了,再去做预测,心里会有底。出行的规律性很强,但规律藏在口径里,不在图表的表面。