📈 第7章 主观概率
📄 一句话概括

新闻来了,团队立刻分成两拨吵。真正该做的不是选边,是把这条新闻对概率的影响算出来。 把新闻翻译成两个似然:如果会涨,看到它的可能性多大;如果不会涨,又是多大。 两条方向相反的新闻乘下来,概率停在 65.5%——比起点高,比只看第一条时低。这就是更新的样子。

📝 本章和前面几章的关系

前三篇把信念变成了数、量出了分歧、评出了可靠性。这一篇让这些数动起来。 方法还是第 6 章那套贝叶斯,只是输入从「检测结果」换成了「新闻」。 这一步换得通,说明方法是通用的。

一、一条新闻,两拨人

会开完第二周,新闻来了:俄罗斯央行意外降息。 一拨人说「降息利好股市,赶紧加仓」,一拨人说「降息说明经济比想象的差」。 两拨人都能自圆其说。争下去不会有结果,因为争的是解释,不是数。

把解释换成数,争吵就变成了计算。这是这一篇要做的全部事情。

二、把新闻翻译成两个似然

问第一个问题:如果股市真会涨,看到「央行降息」的可能性有多大?答 0.70。 问第二个问题:如果股市不会涨,看到同一条新闻的可能性又有多大?答 0.30。 这两个数也是主观的,可以吵。但它们比「利好还是利空」这种说法精确得多——因为它们有大小。

关键不是这两个数准不准,是它们能被写下来、被别人质疑、被事后修正。

三、更新一次:55% 到 74.0%

先验 0.55,乘上两个似然再归一化:0.55 × 0.70 ÷ (0.55 × 0.70 + 0.45 × 0.30) = 0.7404。 从 55% 涨到 74.0%,涨了 19 个百分点。 为什么不是直接变成 70%?因为 70% 是「会涨的前提下看到这条新闻」的概率,不是反过来。

分母又换了一次。这个坑在第 6 章已经踩过,这里换个场景又出现一次。

四、再更新一次:74.0% 到 65.5%

第二天又来一条:国际油价大跌 8%。俄罗斯是产油国,这条明显不利。 似然设成:会涨的情形下 0.40,不会涨的情形下 0.60。 把上一步的 74.0% 当新先验,算出来 65.5%。

两条新闻方向相反,最后停在 65.5%——比起点 55% 高,比只看第一条时的 74.0% 低。 这就是「证据累积」的样子。

五、这套组合的价值

主观概率负责「把信念变成数」,贝叶斯负责「让数随着证据动」。两个缺一个都不成。 没有主观概率,来了新闻只能吵「利好还是利空」;没有贝叶斯,主观概率就是个死数,永远不更新。 还有一个隐形的好处:更新过程是可复查的。哪一步用了什么似然,全写在纸上,事后能查是哪一步错了。

第 7 章到此结束。下一章换一个完全不同的角度:当数据根本量不出来的时候,人靠什么做判断。

六、动手 Demo:新闻来了,概率要改

两条新闻,每条给两个似然,用贝叶斯连着更新两次。 所有似然都是主观设定值,写在代码里,方便别人来改、来质疑。

def update(prior, l_yes, l_no):
    num = prior * l_yes
    return num / (num + (1 - prior) * l_no)

p0 = 0.55
p1 = update(p0, 0.70, 0.30)      # 央行降息
p2 = update(p1, 0.40, 0.60)      # 油价大跌

print("起点      %.1f%%" % (p0 * 100))
print("降息之后  %.1f%%  (%+.1f 个点)" % (p1 * 100, (p1 - p0) * 100))
print("油价之后  %.1f%%  (%+.1f 个点)" % (p2 * 100, (p2 - p1) * 100))

print()
p_alt = update(p0, 0.90, 0.10)   # 如果降息这条更硬
print("若第一条似然改成 0.90/0.10:%.1f%%" % (p_alt * 100))
print("似然越悬殊,更新幅度越大")

实跑输出:

--------------------------------------------------------------------
新闻来了,概率要改
--------------------------------------------------------------------

  ① 一条让人措手不及的新闻
  --------------------------------------------------------------------
  会开完第二周,新闻来了:俄罗斯央行意外降息。
  团队里立刻分成两拨:一拨说「降息利好股市,赶紧加仓」,一拨说「降息说明经济比想象的差」。
  你要做的不是选边,是把这条新闻对概率的影响算出来。

  ② 先算这条新闻有多「挑食」
  --------------------------------------------------------------------
  问一个问题:如果股市真会涨,看到「央行降息」这条新闻的可能性有多大?
  再问一个:如果股市不会涨,看到同一条新闻的可能性又有多大?
  这两条是主观判断,可以吵,但要写下来:涨的情形下 0.70,不涨的情形下 0.30。
  比值 0.70 比 0.30,说明这条新闻稍微偏向「会涨」,但没有一边倒。

  ③ 用贝叶斯规则改一次
  --------------------------------------------------------------------
  先验 0.55,乘上两条似然再归一化:后验 0.7404,也就是 74.0%。
  从 55% 涨到 74.0%,涨了 19.0 个百分点。这就是「新闻改变概率」的全部计算。

  ④ 第二条新闻,再改一次
  --------------------------------------------------------------------
  第二天又来一条:国际油价大跌 8%。俄罗斯是产油国,这条明显不利。
  把上一步的 74.0% 当成新的先验,似然设成涨 0.40、不涨 0.60。
  后验 0.6553,也就是 65.5%。
  两条新闻方向相反,最后停在 65.5%——比一开始的 55% 高,比只看第一条时的 74.0% 低。

  ⑤ 这就是主观概率的好处
  --------------------------------------------------------------------
  如果当初只记「大家觉得会涨」,来了新闻只能吵。
  记成了 55%,新闻就能一次一次地乘上去,最后落到一个具体数上。
  主观概率不是「不准的客观概率」,它是让信念可以被更新的一种写法。

两次更新的幅度不一样:第一条 +19.0 个点,第二条 −8.5 个点。 幅度由似然的悬殊程度决定,不由新闻的重要性决定。 最后两行是一次数敏感性检查:把第一条似然从 0.70/0.30 拉到 0.90/0.10,结果从 74.0% 变成 91.7%。 似然是你自己给的,它的分量必须先想清楚。

30 秒实验

  1. 如果先验不是 55% 而是 35%(团队里偏悲观的那一档),两次更新后是多少?
  2. 想让两条新闻净效果为零,第二条的似然该是多少?先估一下再算。
  3. 想一想:为什么说「似然越悬殊,更新幅度越大」?举一个极端的例子。

常见误区

  1. 拿新闻的「好坏」直接改结论:利好就加仓,等于跳过计算,把似然当成了 1 和 0。
  2. 把 P(新闻|涨) 当 P(涨|新闻):又一次换分母,和第 6 章同一个坑。
  3. 似然随手给:0.70/0.30 和 0.90/0.10 差得很远,给之前要说清理由。
  4. 只更新一次就停:证据是一条条来的,停在一半等于放弃后面的信息。
自测三问(点开对答案) 1. 把新闻翻译成似然,具体要问哪两个问题? —— 如果事件会发生,看到这条新闻的可能性多大;如果不会发生,可能性又多大。 2. 为什么概率只从 55% 涨到 74.0%,而不是直接变成 70%? —— 因为 70% 是「会涨的前提下看到新闻」的概率,方向反了。 要归一化之后才是「看到新闻后会涨」的概率。 3. 两条相反的新闻乘下来,结果由什么决定? —— 由两条似然的悬殊程度决定。越悬殊的那条,对结果的拉动越大。

第 7 章收尾。第 8 章换一个角度:数据根本量不出来的时候,人靠什么做判断。

相关笔记