# 《首要怀疑》3：但是你可以知道概率

![](https://piccdn3.umiwi.com/img/202302/22/202302221258539916880514.jpeg)

复杂系统不能做长期的精准预测，但是未来也不能说是一片漆黑的，我们还是可以在一定程度上知道一些事情。

这一讲的道理是虽然你不能知道未来一定会发生什么，但你可以知道未来发生各种事情的「概率」。而这已经是很大的帮助了。

我们还是先讲天气。天气预报其实有两种。前面说的要精准预报某一天的天气怎么样，那属于「短期天气预报」，最长期限14天，你要解纳维尔-斯托克斯方程。

还有一种则是「中长期天气预报」。比如在未来一个月或者一个季度之内，这个地区会发生几场飓风，让你给一个大概的估计，那完全是另一种思路。

✵

气象学家早在一百多年前就已经知道，中长期的天气不是一个地区本身所能决定的，会受到全球气候的影响。青藏高原下多少雪会影响印度洋上空的季风，而印度洋上空的季风则会影响欧洲的天气。所以你要做中长期天气预报，就必须把整个地球的大气和海洋看做一个整体。

上世纪60年代，气象学家发现了影响地球气候的一个关键区域，那就是太平洋上沿着赤道的一带。正常年份下，这个区域东部的海水会比较冷，西部会比较暖；可是有些年份中，海水温度会正好颠倒过来。秘鲁的渔民早就知道哪些年份正常哪些年份不正常，因为海水温度的异常会让鱼去别的地方或者直接死掉。

气象学家则注意到，当这个区域的海水温度不正常的时候，全球天气都会受到影响。这个动力学过程差不多是海水温度变化影响太平洋的信风，太平洋的信风影响印度洋季风，印度季风影响北大西洋，北大西洋影响全欧洲，最终影响全世界。这就是著名的「厄尔尼诺现象」。

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718608901440028/022215.png)

统计表明，你只要看一看赤道附近那个区域有没有发生厄尔尼诺，就能知道未来一个月到一个季度，大西洋上空大概会发生几场飓风。

当然你无法预知具体的一场飓风会发生在哪一天，这毕竟只是个统计结果。但是统计结果也很有用啊，如果知道飓风马上会增多，我们总可以提前做点准备。这就是中长期天气预报的意义所在：它能给你一个概率。

最初的预测思路完全是统计性的，依赖过去的经验，自己没有什么主动的计算。后来我们这本书的作者，蒂姆·帕尔默加入进来，他提出中长期天气预报也可以用物理模型啊！在他的推动下，科学家把物理模型结合统计事实，做出了很不错的中长期天气预报产品。

这件事把气象学家的思路给打开了。尤其是帕尔默，他说，那我们对短期天气预报也应该这么干啊。

原本的短期天气预报，输入值都是最新的观测，是唯一的，不用统计模型，输出结果也都是确定的。帕尔默说我们应该效法中长期天气预报的做法，对观测值主动制造一些不确定性，把不确定性输入到模型之中。

他不用重新发明轮子，因为市场上早就有一个现成的做法，叫做「蒙特卡洛（Monte Carlo）方法」。

✵

蒙特卡洛是摩纳哥的一片城区，以拥有很多豪华赌场闻名，蒙特卡洛方法是基于概率的。基本思路非常简单：如果你想预测一件事情的结果，你只要用随机生成的各种输入值，把这件事模拟很多遍，看看你模拟出来的众多结果大概是个什么情况。

举个最简单的例子，我们来计算圆周率π等于几。

找一张白纸，在白纸中间画一个正方形，在正方形里画一个内切的圆。小学数学告诉你，圆的面积是正方形面积的π/4倍。接下来让我们用数值模拟的方法「实现」这两个面积。

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718649703605840/022215.png)

你多找一些小颗粒，像什么小米或者花粉之类，随机地洒落在白纸上。白纸上有了足够多的颗粒之后，你数一数落在正方形里的小颗粒有多少个——这个数字代表正方形面积；再数一数其中落在圆形里的小颗粒有多少个——这个数字代表圆的面积。

那么小颗粒的这两个数字之比，就应该约等于圆形和正方形的面积之比，也就是π/4。

也就是说，你只是通过数数，就算出了π大约等于几。

这个方法当然不是精确的——但是这个方法是有用的。很多时候我们根本无法对方程精确求解，那么蒙特卡洛方法就是你的朋友。

✵

蒙特卡洛方法在哲学上是一种随机实验，在物理学上是通过人为制造的随机性——也就是噪声——探索系统的多个可能性，在数学上，它还有一个惊喜：它能减少计算量！也许是因为噪声自动代表了多种可能性，有了噪声，你不用太高的分辨率和预测精度就能达到很不错的计算结果。

比如短期天气模型中的小尺度湍流。我们可以不管一个格子里有没有湍流，也不管湍流是什么样的，随机给它分配一个湍流，然后把各种情况都模拟一遍，取个平均值，就能得到一个很不错的预测。

帕尔默在书中列举了好几种用法，这里咱们简单看一个结果。下面这几张图是计算机对同一个湍流中大大小小的漩涡的模拟。第一张图是使用64位有效数字的高精度算出来的。第二张图把计算精度降低到16位，我们看到预测结果非常不一样。有意思的是第三张图，还是用16位低精度，但是再加入一些噪声来模拟小湍流，算出来的结果就跟64位的计算结果几乎是一样的。

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718740971658772/022215.png)

在方法论上，蒙特卡洛法有点像是我们专栏以前讲过的「任意的震动」[1]：随机探索往往能得到更深更多的了解……具体的技术细节我们就不多讲了。

✵

回到天气预报，帕尔默要把蒙特卡洛方法引入短期天气预报的呼吁，最初受到过一些抵制。本来呢，做短期天气预报的气象学家跟做中长期天气预报的气象学家是两拨人，他们之间平时不怎么交流，有点像丐帮的污衣派和净衣派。

中长期派用统计模型本来是不得已，因为你没法直接计算，只能依赖经验。而既然是依赖经验，你跟民间气象学家——也就是当地的老大爷——其实没啥区别。大爷说：飓风啊，根据这么多年我的经验，今年恐怕会有点多。你看味道像不像。

而人家短期派一直都是用纳维尔-斯托克斯方程说话，讲究的是科学和算力，每次输出一个固定的结果。短期派说，你让我出概率，这不是对我专业性的质疑吗？

但帕尔默认为，短期预报所谓的计算，其实是尽最大努力给一个*最可能*出现的结果，这种方法天然放弃了一些明明也有很大可能、但是没有被计算到的情境。你既然那么会算，为什么不把所有可能的状态都算一遍呢？

他找到一个特别好的例子。那是英国的一次天气预报，气象学家计算的结果中没有飓风，可是到时候却发生了破坏性很强的飓风，气象学家遭到了老百姓的嘲讽。帕尔默说这回咱们不算一次，咱们算50次——每一次计算中把初始值稍微变动一下，给个随机的噪声，看看都有哪些结果。

结果是下面这样的——

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718786068840988/022215.png)

这叫「邮票图」，图中每个小邮票代表一次模拟结果。我们看到，50次模拟中有一些场景，真的发生了飓风。

现在我们把所有50张邮票综合在一起，就可以给出英国各个地区发生飓风的概率有多大——

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718834387199568/022215.png)

可以看到，英国南部地区发生飓风的概率最高的可以达到30%，其他地区则几乎不会发生飓风。

这个结果是概率性的，但是这样的结果对老百姓是很有用的啊！如果你知道你家所在的地区明天有30%的概率会发生飓风，你大概不会把车停在户外，你可以稍微做点准备，总比不知道强吧？

✵

蒙特卡洛方法预测的不是一个结果，而是一个结果的「集合」。帕尔默1985年开发了第一个集合式的短期天气预报模型，现在所有主流的天气模型已经都是这样的了。这里的操作不关心平均值，而关心各种情形出现的概率。

集合式模型很大程度上解决了我们前面说的哪里出恒纪元、哪里出乱纪元的问题。比如像下面这场天气预报，50次模拟，50次都是风平浪静——

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718864451968532/022215.png)

那你就有充分的信心可以预报，这次没有飓风。

再者，对于有飓风的情况，你还可以做更深入的预测。比如我们已经知道海上形成了一个飓风，我们想知道这个飓风的走向会是怎样的，下面这张图就是对三次真实飓风的走向的预测。图中每条线代表飓风的一条可能的前进路线。

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718897737990684/022215.png)

第一张图是飓风“锡德”(Sidr)。预测非常清楚，集合中几乎每个场景都说它会一直往正北方向走，登陆地点也很明确。

第二张图是曾经制造过大新闻的“卡特里娜”飓风（Katrina）。我们可以看到预测结果显示它的可能路径分布比较广，基本上会在美国佛罗里达州登陆，但是登陆之后的走向，是回到海上还是继续往内陆走，很不确定。

第三张图是飓风“纳丁”（Nadine），它的走向就非常分散了，难以确定。

请注意，这三次预测的精度其实是一样的。是当时具体的情境决定了预测结果是比较确定的还是非常不确定的，正如洛伦兹吸引子上某些区域是恒纪元，某些区域是乱纪元。

✵

这一讲我们看到了真实的天气预报是什么样的，为什么现在的天气预报往往都会给你一个「降雨概率」，而不像以前那样直接说下不下雨。承认未来的不确定性并且能把那个不确定性量化给你，这是观念的升级。

其实天气预报这种概率预测有个哲学问题。你算出来的概率，说到底是你模拟的那个集合里发生的概率，对吧？那你这个概率岂不是主观的吗？我换一组预测集合，要是算出另一个概率，哪个是对的呢？这个概率在真实世界的物理意义是什么呢？

比如天气预报说「明天下雨的概率是80%」——请问这句话是什么意思？明天难道不是只有一次吗？怎么还整出概率来了呢？

唯一理想的定义，是在天气预报说下雨概率是80%的那些日子里，事后的统计发现真的有80%的日子下雨了。你给出的概率必须达到这个水平，我们才能相信它是靠谱的。

而要做到这一点非常困难。实践表明直接用完全随机的噪声生成初始值是不行的——那会低估系统的不确定性，往往预测出来的结果不如真实局面的戏剧性强。为了更接近真实局面，气象学家还必须对预测的初始值做一些手脚，你必须得先考虑好哪儿更容易出状况，你得把气象知识结合到初始值的生成之中……那些都是细节问题，这里我们不用考虑。

总而言之，当我们谈论预测未来的时候，我们必须有个概率意识。

这个意识有多高级呢？你想想那些在街头摆摊算命的。他们从来都是信誓旦旦地告诉你一个结果，从来没说过「我的预测模型显示你这次升职的概率是55%。」

![](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022215/1800718932097705552/022215.jpeg)

注释

[1] 《混乱》1：任意的震动

## 划重点

1.承认未来的不确定性并且能把那个不确定性量化给你，这是观念的升级。
2.当我们谈论预测未来的时候，我们必须有个概率意识。

