本文是一个程序员利用自己的数学知识, 偷偷测量产品经理的顽固程度, 最终赢得胜利的故事...
第一回合 新来了一个产品经理
公司新来了一个十年经验的产品经理, 上来就对产品一通指点:
作为上班五年, 却有十年工作经验的老开发, 我并不认同她的观点:
- 用户已经习惯了
- 系统各个地方都是这个规范
- 不是影响用户关注的主要因素
- 更重要的是, 我懒得改了!!!
于是我据理力争:
好吧, 我实在争吵不过, 就先上线灰度一部分用户, 给产品看看效果, 让她好输得明白点。
第二回合 和产品赌二十块钱
为了让产品输得明白点, 我熬了一个通宵把需求干上线。灰度了一部分用户, 第一天共有一百个用户访问了弹窗, 其中 53 个点击了关注, 另外 47 个点击取消。
这个数据是否足够说服产品了呢? 作为严谨的理工男, 我要先做一些计算说服我自己。
根据我十年经验, 之前的版本用户点关注的概率大约是 50%。产品既然认为新版本更好, 那么关注率至少要达到 60% 吧, 所以我们这里就有两个假设, 分别记为 H1, H2:
- H1: 新版本弹窗用户的关注率为 50% (维持不变, 我胜)
- H2: 新版本弹窗用户的关注率为 60% (有所提升, 产品胜)
"新版本弹窗目前已经有 53 个用户点击了关注, 另外 47 个点击取消", 这个是事实。而 "新版本弹窗用户的关注率为 50%" 这个是假设。如果假设为真, 事实发生的概率就叫做 似然, 衡量的是假设对这个事实的解释性有多强。
- 如果 H1 是对的, 那么用户点关注与取消的概率就都是 0.5, 事实发生的概率就为
0.5^100, 计算得 H1 的似然为7.89e-31(保留了三位有效数字), 可以记为P(D|H1), 表示 H1 为真时, 事实 D 发生的概率 - 同理, H2 的似然为
(0.6^53)*(0.4^47), 计算得3.46e-31, 记为P(D|H2)
将 H1 的似然除以 H2, 我们就知道 H1 对事实的解释性比 H2 强多少了, 这个比值叫做 似然比, 又叫 贝叶斯因子。
如果大于1就说明 H1 的解释性更强, 越大就越强。我们计算一下, 发现结果为 2.28, 比 1 大了不少。这就去找产品经理掰回一局:
产品坚决认为, 过去十年的经历都印证了他的想法, 这点数据不足以推翻。
为什么面对同样的数据, 产品经理和程序员的看法不同呢? 因为在测试真实数据前, 我们脑中其实就已经有了先入为主的想法, 这个就是 先验信念。产品经理的先验信念就是认为新版本效果会更好, 而程序员认为会维持不变, 即使他们都还没有拿到任何数据。
所以产品经理的看法不仅受到似然比的影响, 还受到她自己先验信念的影响。产品先验地认为 H1 比 H2 强多少倍, 这个就是 先验胜率。用先验胜率乘以似然比, 得到 后验胜率, 才是产品看到数据后的真正想法:
先验胜率又要怎么知道呢? 只要用一个问题就能套出来:
这就说明产品先验地认为 H2 要比 H1 强 20 倍, 所以 H1 对于 H2 的先验胜率就是 1/20。
根据之前的似然比, 计算一下后验胜率为 (1/20)*2.28=0.114 , 远小于 1, 怪不得产品不信。
我们还需要提高下似然比, 如何提高呢? 似然比有个特点, 随着数据量越大, 它的值就会越极端。假如我后来获得 1000 条数据, 其中有 530 人点了关注。它相比 100 条数据, 53 人点了关注, 似然比会大很多, 虽然同样是 0.53 比例的人点了关注。这也比较符合人的直觉, 在见过大量吻合的数据后, 人们会更加确信他的假设, 这就是所谓的 "经验"。
假设一直是 0.53 比例的人点了关注, 我们可以画一张似然比和数据量的关系图:
从图中可以看到, 为了能打破产品经理 20 的先验信念, 我们至少要收集 400 的数据量。(这里假设了收集的数据一直能维持 0.53 的关注率, 如果不能维持, 可能我们自己的信念都要改变了)。
不幸的是, 我遇到了一个赖皮产品经理, 她在得知我的计算方法后开始耍赖:
每当我给出新的数据, 她总是耍赖提升先验信念, 这样下去永无止境啊。
不行, 我必须自己量化她的顽固程度(先验信念), 而不是靠她口述。
第三回合 顽固程度为 6520 的产品经理
我回忆了一下和她合作的上一个需求, 虽然没跟她赌钱, 但是最终用了1000 条数据, 其中只有 523 个用户满意, 才勉强说服她不要做新版本。依据这个, 我们可以计算下她真实的顽固程度到底是多少。
既然最终说服了她, 说明我们后验胜率肯定是大于 1 的, 具体是多少呢? 可以根据她当时的态度大概评估下:
| 后验胜率 | 数据的强度 |
|---|---|
| 1~3 | 有意思,但不能得出结论 |
| 3~20 | 看起来我们有发现了 |
| 20~150 | 支持假设的有力数据 |
| >150 | 支持假设的强有力数据 |
本表来源于参考书目
她上次只是 "勉强" 接受, 那后验胜率也不会过于乐观, 估计就在 3~20 之间, 假设就是 10。
同时可以根据数据算出似然比: 0.5^1000/(0.6^523*0.4^477)=65205.54。
根据之前的后验胜率公式就可以算出后验胜率了:
可以看出先验胜率大约为 1/6520, 产品先入为主地认为 H2 比 H1 要强 6520 倍。
果然比她口述得要大不少啊。
为什么这次能吵赢, 我们需要多少数据量, 继续画一张图:
大概需要 1100 的数据量, 也还行。
不过, 人可能也是多变的, 有可能她前一段时间心情好, 顽固程度就是 6250, 最近天气不好, 就变成了 10000。有可能面对上一个问题时, 顽固程度是 6250, 而面对这个问题时, 就变成了 10000......
参考书籍
本文其实是一篇将贝叶斯假设检验应用于日常产品迭代的科普文, 灵感来源于书籍 《趣学贝叶斯统计》
书中用很多贴近生活中的案例诠释了条件概率, 参数估计与假设检验的算法与思想。可以作为进一步阅读其他贝叶斯统计著作的启蒙。
参考文章
- zhuanlan.zhihu.com/p/25094274 确定按钮该放在左边还是右边?本文调整按钮位置的灵感来源
作者:元青
微信公众号 「技乐书香」