卷 II · 不齐CH 07深度 7/24

你等的车,总比时刻表说的久

这一章讲一个偏差,它不属于排队论,但它解释了排队论里最反直觉的那些数字,也解释了为什么你觉得「隔壁那条队总是更快」。它的名字叫检查悖论,一旦看见就再也看不见了。

检查悖论长度偏倚不是你运气差

▷ 先估一个数

一条公交线路,平均每 10 分钟一班。这个数字是准确的:一小时确实来 6 班。

但班次不准时——间隔是完全随机的(有时候两分钟连来两班,有时候二十分钟没有)。

你在一个随机时刻走到站台。平均要等多久?

A 5 分钟。平均间隔 10 分钟,随机到达就等一半 B 大约 6 到 7 分钟,比一半略多 C 10 分钟——整整一个平均间隔 D 无法确定,取决于你运气

一个数错了的地方

「平均间隔 10 分钟,随机到达,所以平均等 5 分钟」——这个推理错在哪?

错在它假设你等可能地落进每一段间隔。你不会。

看这条时间轴:

# 一小时里的 6 班车,平均间隔 10 分钟
   0        3     6                              28   31        40              60
   │────────│─────│──────────────────────────────│────│─────────│───────────────│
     3 分钟   3分    22 分钟                        3分   9 分钟     20 分钟

# 六段间隔:3, 3, 22, 3, 9, 20   —— 平均正好 10 分钟 ✓
# 但你随机站到这条轴上的某一点,落进哪一段?
#   落进那段 22 分钟的概率 = 22/60 = 36.7%
#   落进某一段 3 分钟的概率 = 3/60 = 5%
# ★ 长的间隔占的时间多,所以它更容易接住你。

这就是检查悖论(inspection paradox),也叫长度偏倚抽样(length-biased sampling):当你按时间随机取样时,长的那些区间被过度代表了。

而一旦你更可能落进长间隔,你要等的时间自然就变长了。

拖那根滑杆。班次的不齐程度从 0 拧上去,看三个数字怎么分开:

班次的 c²你落进的那段有多长你要等多久
0(完全准时)10.00 分5.00 分
0.2512.50 分6.25 分
1(纯随机)20.00 分10.00 分
4(很不准)50.00 分25.00 分

「真实的平均间隔」这一列在哪儿?它永远是 10.00 分钟,四行都一样。车站的排班表没变,一小时还是 6 班。变的只是你看到的世界

◆ 两条公式,一个数
# 你落进的那段间隔(长度偏倚后的期望)
E[你看到的间隔] = E[X²] ÷ E[X] = E[X] × (1 + c²)

# 你要等的时间(落进后再等一半)
E[你要等]      = E[X²] ÷ (2 E[X]) = E[X] × (1 + c²) ÷ 2

# c² = 0 时:等 E[X]/2,天真答案正确
# c² = 1 时:等 E[X]  ★ 整整一个平均间隔
# c² = 4 时:等 2.5 × E[X]

注意 E[X²]——第 5 章说过,方差是平方加权的,所以长间隔在这里被平方级地放大。这也是为什么答案能超过平均间隔本身。

顺带一提:=1 时那个「等待时间恰好等于平均间隔」的巧合,就是指数分布的无记忆性——不管车刚走还是等了很久,你的期望等待永远是一个完整间隔。第 5 章那条性质,在这里露出了它的实际后果。

它到处都是

检查悖论一旦认出来,就会在到处冒出来。它的通用形式是:

只要你的取样方式让大的东西更容易被选中,你看到的平均值就会系统性地大于真实平均值。

几个例子,每一个都真实到有点烦人:

  • 「我的班级平均 30 人,为什么我上的课总是 60 人?」因为你被大班「接住」的概率更大。学校统计的是班级的平均规模,学生体验到的是人数加权的平均规模。
  • 「为什么我朋友的朋友总是比我朋友多?」(友谊悖论)因为社交网络里,好友多的人出现在更多人的好友列表里。你随机认识的人,更可能是个社交达人。
  • 「电梯为什么总是先往反方向走?」如果你在中间楼层,电梯在你上方或下方的时间占比不同,你按下按钮那一刻更可能落进较长的那一段行程里。
  • 「为什么隔壁那条队总是更快?」三条队,你随机挑一条。你在最快那条的概率只有 1/3,也就是说有 2/3 的概率你会看到别人比你快。这不是错觉,是算术。

最后一个例子在第 13 章还会以更狠的形式回来。

∑ 算一遍:它怎么钻进排队公式里的

检查悖论不只是一个有趣的类比,它字面上是排队公式里那一项的来源。

想一下:一个请求到达时,服务台正在处理某个请求。它得等那个请求做完才能开始。它要等多久?

这就是检查悖论——它在随机时刻「插入」到正在进行的服务里,所以它更可能撞上一个的服务。

# 「正在被服务的那位还剩多久」的期望(叫剩余服务时间)
E[剩余] = E[S²] ÷ (2 E[S]) = E[S] × (1 + cs²) ÷ 2

# 这一项在排队论里有名字,叫 W₀。第 19 章会再见到它。
# 而 Pollaczek–Khinchine 公式(第 11 章)本质上就是:
#   Wq = W₀ ÷ (1 − ρ)
#   ↑ 你要等的 = 「撞上的那位还剩多久」 ÷ 余量

把这一行读两遍。排队公式里那个 (1+c²)/2 的因子,不是什么数学技巧,它就是检查悖论。你的请求之所以要为「不齐」付费,正是因为它更容易撞上一个长的服务。

✎ 术语正名:「平均」

这一章逼出了一个问题:说「平均」的时候,是按什么加权的平均?

  • 按事件加权:每一班车算一次 → 平均间隔 10 分钟。这是排班表的视角。
  • 按时间加权:每一秒钟算一次 → 平均间隔 20 分钟。这是乘客的视角。

两个都是「平均」,都没算错,回答的是不同的问题。而绝大多数争论(「我们的服务明明很快啊」vs「我用起来很卡」)就藏在这个差别里:你按请求算,用户按时间感受。

排队论里有一条定理专门处理这件事,叫 PASTA(Poisson Arrivals See Time Averages,泊松到达者看到时间平均):如果到达是泊松的,那么到达者看到的系统状态,恰好等于时间平均的系统状态。这条定理之所以有名,正是因为它在别的到达模式下不成立——泊松是那个幸运的例外。

▸ 在现实里

为什么用户觉得你的服务比监控显示的慢。你的监控按请求算平均延迟。但用户是在时间里体验系统的,而系统慢的时段恰好是请求最多的时段——更多用户经历了糟糕的时段。按用户体验加权的平均延迟,永远比按请求加权的高。这不是监控在撒谎,是加权方式不同。

「我们服务器的平均负载只有 40%」。如果这是把所有机器所有时刻平均出来的,那它几乎没有意义。用户体验到的是他那台机器在他那一刻的负载,而繁忙的机器在繁忙的时刻服务了最多的用户。

抽样调查里的自选择。「用户满意度调查显示 85% 满意」——填问卷的人不是随机的。这是检查悖论的近亲:取样方式和被测量本身相关时,你得到的永远是偏的。

为什么等红灯感觉那么久。你在随机时刻到路口,更容易撞上长的那个红灯周期。同一个信号灯,「平均红灯 40 秒」和「你平均等 40 秒以上」可以同时成立。

✗ 这个直觉是错的
我总是排到最慢的队、总是等最久的车,说明我运气特别差(或者这条线路管理有问题)。 这是结构性的,不是运气。在随机时刻取样,你被长间隔接住的概率天生更大。每个人都有同样的「坏运气」。

这个认知有两个实际用处。

第一,不要根据自己的体验去推系统的平均值。你的体验是长度偏倚的,会系统性地高估。要推平均值,得去看按事件加权的统计。

第二,反过来,做 SLA 的时候要按时间/用户加权,而不是按请求加权。因为用户体验的确就是那个偏倚后的量。用户的「不公平」感受,恰恰是对系统更准确的度量。

还有第三点,这一章最值钱的一条:既然等待时间正比于 1 + c²,那么让班次准时的收益,和加开班次的收益是同一个量级的。把 从 1 压到 0,等待从 10 分钟降到 5 分钟——等价于把班次密度翻倍,而后者要多买一倍的车。

◇ 结算

C10 分钟——整整一个平均间隔。不是一半。

公式:E[等待] = E[X](1 + c²)/2 = 10 × (1+1)/2 = 10.00。六万次模拟到站量出来是 9.97 分钟。

选 A 的人偏了 2 倍。而如果这条线路的 是 4(在现实的公交系统里完全正常,因为堵车会让班次挤成一团),答案是 25.00 分钟——偏了 5 倍

A 「等一半」——这个答案在班次完全准时时精确正确。它的问题不是算错了,是用错了模型:它假设你等可能落进每一段间隔。 B 「比一半略多」——方向对,量级不对。这个选项对应 ≈ 0.3 的世界,比真实的公交系统整齐得多。 D 「取决于运气」——这正是这一章要破的那个直觉。它是可以精确计算的,而且答案里没有「运气」这一项。

这一章的一句话

在随机时刻取样,你看到的世界系统性地比真实世界糟——而糟多少,恰好由「不齐」的程度决定。

下一章是这本书的骨架。前七章说的所有事——满、不齐、检查悖论、指数尾——会被压成一个只有三个因子的乘式。你会看到那三个因子分别是什么、哪一个是「速度」(只有一个)、以及这个近似公式在哪里精确、在哪里能偏到 96.1%