📈 第5章 假设检验
📄 一句话概括

假设检验这件事,第一步不是算,是把「我猜是这样」写成一句能被数据否掉的话。 PodPhone 的题面看着是「新机好不好卖」, 真正要答的是「哪一周必须开工」——后者才能用手头的数算出来。 手头全部信息只有四条。承认信息只有这么多,是分析的起点,也是不乱下结论的底线。

📝 本章和前面几章的关系

第 4 章讲怎么把结论讲给别人听。第 5 章换一个场景:结论还没有,只有一堆互相矛盾的说法。 这一章的故事是给 PodPhone 供手机皮肤。 书里用 Excel 算,这里用标准库算,几步加减乘除,数都对得上。

一、题面:赶不上的发布会

PodPhone 要出新机,找上门来买新机型的皮肤。皮肤是贴在机身外面的那层膜,型号不对就贴不上。 这门生意的时间窗口很窄:发布会之前货必须铺到渠道,发布会之后热度一周比一周低。 做晚了,赶上热度尾巴,只能打折清货;做早了,新机推迟,货压在仓库里,一分钱不值。

所以这道题的核心不是「新机好不好卖」,是「哪一周必须开工」。换一个问法,题目就从猜变成了算。

二、手头的全部信息就四条

信息 内容 来源 确定性
发布日期 第 39 周发布 泄露的备忘录 未确认
同行分析 市场份额 22%,覆盖 8 款机型 电肤公司 待校验
销量曲线 首周最高,每周衰减约 12% 上一代机型 较可靠
产能与备货 一周 4 万片,首发备货 12 万片 工厂、渠道 明确

四条信息里,只有两条是硬的(产能、备货),一条是别人的估计(备忘录),一条是同行的话(电肤)。 信息的「确定性」这一列,比内容那一列更该先看。拿未确认的日期去做精确计算,算得再准也是空的。

三、把大问题换成小问题

「新机会不会成功」这个问题,四条信息答不了。它需要市场规模、竞品价格、渠道意愿,一样都没有。 「哪一周必须开工」这个问题,四条信息够了:发布日期减去生产周期,再减去铺货周期。 这不是偷懒,是分析里最常见的动作:把答不了的问题换成一个答得了的问题,然后诚实地说清换了什么。

换完之后还要交代一句:这个答案的前提是「第 39 周发布」。前提一变,答案跟着变。

四、倒排工期怎么算

发布周 39,生产周期 6 周,铺货 2 周,所以第 31 周必须开工。今天是第 24 周,还剩 7 周准备。 另一条路是顺推:备货 12 万片,一周 4 万片,生产要 3 周,加铺货 2 周,一共 5 周。 8 周和 5 周之间差 3 周,这 3 周就是缓冲。缓冲不是浪费,是留给「发布推迟」这种事用的。

倒排和顺推都要算一遍:倒排告诉你 deadline,顺推告诉你现实要多久。 两个数差得太多,说明有一头在吹牛。

五、已知信息这四个字要当真

「已知信息」的意思是:你能用的就这些,别的都得标成假设。 很多人在这里翻车,不是因为算错,是因为偷偷用了一条自己没意识到的假设——比如默认「新机会准时发布」。 把假设摆到台面上有个好处:以后结论错了,能查出是哪条假设错了,而不是全盘否定自己。

下一篇要做的事,就是拿这些信息去检验几条互相冲突的说法。 检验的前提,是先把说法写成能判对错的句子。

六、动手 Demo:已知信息:能钉死的只有一个日期

把四条信息摊开,倒排一遍、顺推一遍,看看差在哪儿。 这段代码全部是加减乘除,没有任何统计——这一节的重点本来就不在统计。

WEEK_PUB = 39        # 备忘录写的发布周
LEAD_PROD = 6        # 生产周期(周)
LEAD_SHIP = 2        # 铺货周期(周)
TODAY = 24
CAP, NEED = 4.0, 12.0   # 一周 4 万片,备货 12 万片

must = WEEK_PUB - LEAD_PROD - LEAD_SHIP
print("必须开工:第 %d 周" % must)
print("今天第 %d 周,还剩 %d 周准备" % (TODAY, must - TODAY))

weeks = NEED / CAP
print("备货 12 万片,一周 4 万片,生产要 %.1f 周" % weeks)
print("顺推:开工到上架 %.1f 周" % (weeks + LEAD_SHIP))
print("倒排:一共给 %d 周" % (LEAD_PROD + LEAD_SHIP))
print("缓冲 %.1f 周" % ((LEAD_PROD + LEAD_SHIP) - (weeks + LEAD_SHIP)))

for wk in (39, 41, 43, 45):
    print("若第 %d 周发布,则第 %d 周必须开工" % (wk, wk - LEAD_PROD - LEAD_SHIP))

实跑输出:

--------------------------------------------------------------------
已知信息:能钉死的只有一个日期
--------------------------------------------------------------------

  ① 这道题问的是「什么时候开工」
  --------------------------------------------------------------------
  PodPhone 要出一款新手机,找上门来买新机型的皮肤。
  皮肤这种东西赶不上发布会,就一文不值;做早了堆在仓库,也一文不值。
  所以真正要答的问题不是「新机好不好卖」,是「哪一周必须开工」。

  ② 倒排工期:把不确定的一头钉死
  --------------------------------------------------------------------

| 项目 | 周数 | 这条有多确定 |
|---|---|---|
| 备忘录写的发布周 | 第 39 周 | 未确认 |
| 减生产周期 | 6 周 | 工厂给的 |
| 减铺货周期 | 2 周 | 渠道给的 |
| 必须开工的周 | 第 31 周 | 算出来的 |
| 今天 | 第 24 周 | 确定的 |
| 剩下的准备时间 | 7 周 | 算出来的 |

  六行里两行是别人给的估计(生产周期、铺货周期),一行是没确认的日期,三行是算出来的。

  ③ 手头全部信息,一共就这么几条
  --------------------------------------------------------------------
  ① 备忘录:新机计划第 39 周发布(没写「预计」,写的是「发布」)。
  ② 电肤公司自己的分析:市场份额 22%,覆盖 3 个品牌、8 款机型,同比增长 40%。
  ③ 上一代机型的销量曲线:发布首周最高,之后每周衰减约 12%。
  ④ 工厂产能:一周最多 4 万片;渠道要求首发备货不低于 12 万片。
  这四条就是全部。没有历史同类项目的完整档案,也没有内部人脉。

  ④ 产能和备货对得上吗
  --------------------------------------------------------------------
  备货 12 万片,按一周 4 万片算,光生产就要 3.0 周。
  加上铺货 2 周,从开工到上架一共 5.0 周——和倒排出来的 8 周差 3.0 周。
  ! 多出来的 3.0 周是缓冲。缓冲不是浪费,是给「发布推迟」这种事留的余量。

  ⑤ 这一节的结论
  --------------------------------------------------------------------
  手头的信息不够回答「新机会不会成功」,但足够回答「最晚哪周开工」。
  分析方法的第一动作,经常是把一个大问题换成一个能用现有信息回答的小问题。

最后那个循环值得记住:发布周每推一周,开工周就跟着推一周,两者是硬绑定。 倒排出的缓冲是 3 周,正好够一次「推迟四周」里的前三周。这就是缓冲的真实用途,不是给拖延留的。

30 秒实验

  1. 如果工厂产能降到一周 3 万片,缓冲还剩几周?还够不够一次推迟?
  2. 把「每周衰减 12%」代进去,第 8 周的销量是首周的百分之几?这个数决定了晚一周的代价。
  3. 想一想:这一篇里哪条信息最不可靠?如果它错了,结论会怎么变?

常见误区

  1. 拿未确认的日期做精确计算:算到小数点后两位,前提本身却是「听说」。
  2. 只倒排不顺推:倒排给出 deadline,顺推才知道现实能不能做到,两个都要算。
  3. 把缓冲当浪费:缓冲是拿来吸收推迟的,砍掉缓冲等于把风险全扛在自己身上。
  4. 偷偷加假设:默认「会准时发布」却不写出来,结论错了也查不到原因。
自测三问(点开对答案) 1. 为什么把问题从「好不好卖」换成「哪周开工」? —— 因为后者能用现有四条信息算出来。答不了的问题换成答得了的问题,并诚实交代换了什么。 2. 倒排和顺推分别给什么? —— 倒排给 deadline(最晚哪周开工),顺推给现实工期。两者之差就是缓冲。 3. 为什么要把「发布周 39」标成未确认? —— 因为它来自泄露的备忘录。标出来才能在结论出错时追到源头。

信息摊开了,接下来是拿它去检验别人的说法。下一篇看电肤交来的那份分析经不经得起加一遍。

相关笔记