1.1 问题、证据与决策
你已经掌握了用 Python 求平均值、筛选列表和输出结果的方法。数据分析还要早一步开始:先决定为什么计算,以及究竟计算什么。程序即使毫无错误,也可能精确地回答了错误的问题。本节要建立一条可以辩护的推理链:
想象一家社区配送公司提出:“帮我们分析一下配送情况。”这句话只给出了主题,没有给出问题。公司是想增加骑手、重划配送区域、修改承诺时间,还是调查投诉?不同决策需要不同证据。
把主题变成分析问题
分析问题(analytical question)是可以通过明确的计算或比较,使用已有或能够获得的数据回答的问题。一个有用的问题通常包含五项要素:
- 决策:结果要帮助谁选择什么行动?
- 总体(population):哪些人、订单、地点或事件属于研究范围?
- 指标(metric):用哪个可测量的量代表关心的概念?
- 比较:要在哪些群体、时期或条件之间比较指标?
- 时间窗口:分析包含哪些日期?
“配送慢不慢?”没有明确其中任何一项。更好的问题是:“最近八周晚班时段,北区、中区和南区的准时送达率有何差异,以帮助运营经理决定在哪个区域增加骑手运力?”
改进后的问题仍然需要定义。比如,准时送达率可以定义为“已完成订单中,40 分钟内送达的比例”;“晚班”可以定义为 17:00 至 21:00 接收的订单。计算前先写下这些定义,可以避免分析者看到结果后不断移动阈值,直到出现想看的结论。
指标是对概念的建模
“服务质量”这类业务概念不能直接放进表格,只能用可测量变量表示,例如配送分钟数、准时率、取消率、投诉率或复购率。每个指标都只是对服务质量的部分刻画。
假设平均配送时间从 39 分钟缩短到 35 分钟,看起来是好消息,但平均值可能隐藏某个小区域不断恶化的体验。可靠的分析需要检查所选摘要是否真正服务于决策:
| 概念 | 可选指标 | 指标遗漏的信息 |
|---|---|---|
| 速度 | 平均配送分钟数 | 少量极晚订单 |
| 稳定性 | 40 分钟内送达的比例 | 超时订单究竟晚了多久 |
| 顾客体验 | 投诉率 | 不投诉但不满意的顾客 |
| 运力 | 每骑手小时完成订单数 | 距离与订单复杂度的差异 |
指标不是数据集自动交给我们的事实,而是人作出的定义。应记录分子、分母、排除条件、单位和时间边界。如果准时率排除了取消订单,就要明确写出,并进一步询问:排除取消订单是否会让表现显得过好?
让结论强度与证据相配
数据能够支持不同强度的结论。描述性结论(descriptive claim)陈述观察到的现象:“在这份数据中,南区准时率较低。”相关性结论(associational claim)说明两个变量一起变化:“雨天时段与更长的配送时间相关。”因果结论(causal claim)则断言改变一个因素会改变另一个因素:“降雨导致了延迟”或“增加骑手会提高准时率”。
因果结论最强,需要最强的研究设计。普通运营表里常有混杂因素(confounder),即同时与疑似原因和结果相关的其他因素。雨天晚间可能恰好订单更多、路况更慢、可用骑手更少、配送距离也更长。增加行数可以降低一部分随机波动,却不会自动消除这些其他解释。
给分析发现划出证据边界
一条有用的结果应包含四层信息:
- 发现:计算或比较观察到了什么?
- 范围:它描述的是哪个总体和哪个时期?
- 不确定性与限制:还有哪些测量问题、缺失群体或其他解释?
- 决策含义:现在适合采取什么行动,下一步还要调查什么?
例如:“在最近八周有记录的已完成晚间配送中,南区准时率为 71%,其他区域为 86%。由于数据没有取消订单,而且各区配送距离不同,这一结果不能证明骑手排班导致了差距。运营团队应先检查取消订单采集情况和距离分布,再决定是否改变排班。”
这种写法并不软弱。它把证据真正显示的内容与组织希望知道的内容分开,而这种区分正是可信分析的基础。
下一节会把这套推理变成可以迭代的工作流程。分析问题不是报告开头的一句装饰语;它会决定获取哪些数据、哪些缺陷最重要、做哪些比较,以及最终允许作出什么结论。