中盾观察
首页 / 数据方法 / 正文

出行数据从哪看起:一个入门者的观察笔记

栏目:数据方法 | 约1324字 | 2026-09-29

第一次认真看出行数据,是因为一张地铁早高峰的进出站表。表里有三列:站点、小时、刷卡量。看起来简单,但真动手算才发现,同一个站点,按小时汇总和按15分钟汇总,得到的走势完全两回事。前者平滑,后者在7:45到8:00之间有一个陡峭的尖峰,8:00之后迅速回落。如果只看小时数据,会误以为整个8点档都是高峰。这就是颗粒度带来的信息损失,也是出行数据分析入门要过的第一关。

出行数据的来源比想象中杂。公交刷卡、地铁闸机、网约车订单、共享单车锁车记录、高速ETC门架,甚至手机信令,都能拼出一部分出行图景。但每种数据的口径不一样。刷卡量记录的是进站,不等于乘车人数,因为换乘不重复刷;网约车订单记录的是起终点,但短距离步行接驳被完全排除。有一次我把某商圈的地铁出站量和网约车到达量直接相加,得出一个“总客流”,后来发现网约车数据里已经包含了部分从地铁站出来再打车的人,重复计算了大概12%。口径不统一,后面的分析越精细,偏差越大。

时间颗粒度选多细,取决于你要回答什么问题。如果只是看一周的通勤规律,小时级够用;如果要识别早高峰的峰值时刻,至少要到15分钟;如果要做站点限流预警,5分钟甚至更细才有意义。但颗粒度不是越细越好。共享单车的锁车数据,原始时间戳精确到秒,可实际骑行结束和锁车之间常有几十秒延迟,按分钟聚合反而更干净。我一般会先画一张不同颗粒度下的计数分布图,看哪个尺度上噪声和信号的比例最合适,再决定用哪一档。

样本偏差是另一个容易忽略的坑。拿到的数据往往只覆盖一部分人群。比如某城市公交刷卡数据,学生卡和老年卡占比很高,因为这两类卡有优惠;普通上班族用手机扫码的比例更大,而扫码数据不一定在同一个系统里。如果只用刷卡数据算平均通勤距离,结果会偏向短途。一个补救办法是拿其他来源做交叉验证,比如用共享单车的骑行距离分布去对照公交刷卡的距离分布,看两条曲线是否在同一量级。对不上,就要回头检查样本构成。

预测这件事,在出行数据里要格外小心。早高峰的走势确实有很强的周期性,周一到周四相似,周五下午提前,雨雪天整体后移。但周期性不等于可预测。去年冬天一场突降的雪,让晚高峰的网约车订单在半小时内涨了40%,而地铁客流反而降了15%。这种事件驱动的突变,用历史同期做预测基本会失效。我的习惯是先把预测分成两类:常态日的走势外推,和异常日的模式识别。前者可以用简单的时间序列,后者更适合设阈值做预警,而不是追求精确的点预测。

观察出行数据,还有一个笨办法但很管用:把数字放回地图和时间轴上。同一组订单量,按小时排是一根曲线,按起终点画在地图上是一张流向图。有一次我看到某条线路的订单量在工作日很平稳,但流向图显示,早高峰是从郊区到市中心,晚高峰反过来,中间几乎没有双向混行。这种空间上的不对称,光看总量曲线是看不出来的。后来我把这个观察用在运力调度上,早高峰在郊区端多放车,晚高峰在市中心端多放车,空驶率降了大概8%。

入门阶段,与其追求复杂的模型,不如先把三件事做扎实:统一口径、选对颗粒度、检查样本偏差。这三步做完,很多所谓的“异常”会自然消失,剩下的才是真正值得追的信号。出行数据的价值不在于算得多快,而在于算得准,而准的前提是知道自己手里的数据到底在说什么。