《首要怀疑》3:但是你可以知道概率
1.承认未来的不确定性并且能把那个不确定性量化给你,这是观念的升级。
2.当我们谈论预测未来的时候,我们必须有个概率意识。
复杂系统不能做长期的精准预测,但是未来也不能说是一片漆黑的,我们还是可以在一定程度上知道一些事情。
虽然你不能知道未来一定会发生什么,但你可以知道未来发生各种事情的「概率」。而这已经是很大的帮助了。
先讲天气。天气预报其实有两种。前面说的要精准预报某一天的天气怎么样,那属于「短期天气预报」,最长期限14天,你要解纳维尔-斯托克斯方程。
还有一种则是「中长期天气预报」。比如在未来一个月或者一个季度之内,这个地区会发生几场飓风,让你给一个大概的估计,那完全是另一种思路。
✵
气象学家早在一百多年前就已经知道,中长期的天气不是一个地区本身所能决定的,会受到全球气候的影响。青藏高原下多少雪会影响印度洋上空的季风,而印度洋上空的季风则会影响欧洲的天气。所以你要做中长期天气预报,就必须把整个地球的大气和海洋看做一个整体。
上世纪60年代,气象学家发现了影响地球气候的一个关键区域,那就是太平洋上沿着赤道的一带。正常年份下,这个区域东部的海水会比较冷,西部会比较暖;可是有些年份中,海水温度会正好颠倒过来。秘鲁的渔民早就知道哪些年份正常哪些年份不正常,因为海水温度的异常会让鱼去别的地方或者直接死掉。
气象学家则注意到,当这个区域的海水温度不正常的时候,全球天气都会受到影响。这个动力学过程差不多是海水温度变化影响太平洋的信风,太平洋的信风影响印度洋季风,印度季风影响北大西洋,北大西洋影响全欧洲,最终影响全世界。这就是著名的「厄尔尼诺现象」。

统计表明,只要看一看赤道附近那个区域有没有发生厄尔尼诺,就能知道未来一个月到一个季度,大西洋上空大概会发生几场飓风。
当然你无法预知具体的一场飓风会发生在哪一天,这毕竟只是个统计结果。但是统计结果也很有用啊,如果知道飓风马上会增多,总可以提前做点准备。这就是中长期天气预报的意义所在:它能给你一个概率。
最初的预测思路完全是统计性的,依赖过去的经验,自己没有什么主动的计算。后来蒂姆·帕尔默加入进来,提出中长期天气预报也可以用物理模型啊!在他的推动下,科学家把物理模型结合统计事实,做出了很不错的中长期天气预报产品。
这件事把气象学家的思路给打开了。尤其是帕尔默,他说,那我们对短期天气预报也应该这么干啊。
原本的短期天气预报,输入值都是最新的观测,是唯一的,不用统计模型,输出结果也都是确定的。帕尔默说我们应该效法中长期天气预报的做法,对观测值主动制造一些不确定性,把不确定性输入到模型之中。
他不用重新发明轮子,因为市场上早就有一个现成的做法,叫做「蒙特卡洛(Monte Carlo)方法」。
✵
蒙特卡洛是摩纳哥的一片城区,以拥有很多豪华赌场闻名,蒙特卡洛方法是基于概率的。基本思路非常简单:如果你想预测一件事情的结果,你只要用随机生成的各种输入值,把这件事模拟很多遍,看看你模拟出来的众多结果大概是个什么情况。
举个最简单的例子,计算圆周率π等于几。
找一张白纸,在白纸中间画一个正方形,在正方形里画一个内切的圆。小学数学告诉你,圆的面积是正方形面积的π/4倍。接下来用数值模拟的方法「实现」这两个面积。

你多找一些小颗粒,像什么小米或者花粉之类,随机地洒落在白纸上。白纸上有了足够多的颗粒之后,数一数落在正方形里的小颗粒有多少个——这个数字代表正方形面积;再数一数其中落在圆形里的小颗粒有多少个——这个数字代表圆的面积。
那么小颗粒的这两个数字之比,就应该约等于圆形和正方形的面积之比,也就是π/4。
只是通过数数,就算出了π大约等于几。
这个方法当然不是精确的——但是这个方法是有用的。很多时候我们根本无法对方程精确求解,那么蒙特卡洛方法就是你的朋友。
✵
蒙特卡洛方法在哲学上是一种随机实验,在物理学上是通过人为制造的随机性——也就是噪声——探索系统的多个可能性,在数学上,它还有一个惊喜:它能减少计算量!也许是因为噪声自动代表了多种可能性,有了噪声,你不用太高的分辨率和预测精度就能达到很不错的计算结果。
比如短期天气模型中的小尺度湍流。可以不管一个格子里有没有湍流,也不管湍流是什么样的,随机给它分配一个湍流,然后把各种情况都模拟一遍,取个平均值,就能得到一个很不错的预测。
帕尔默在书中列举了好几种用法,简单看一个结果。下面这几张图是计算机对同一个湍流中大大小小的漩涡的模拟。第一张图是使用64位有效数字的高精度算出来的。第二张图把计算精度降低到16位,我们看到预测结果非常不一样。有意思的是第三张图,还是用16位低精度,但是再加入一些噪声来模拟小湍流,算出来的结果就跟64位的计算结果几乎是一样的。

在方法论上,蒙特卡洛法有点像「任意的震动」:随机探索往往能得到更深更多的了解……
✵
回到天气预报,帕尔默要把蒙特卡洛方法引入短期天气预报的呼吁,最初受到过一些抵制。本来呢,做短期天气预报的气象学家跟做中长期天气预报的气象学家是两拨人,他们之间平时不怎么交流,有点像丐帮的污衣派和净衣派。
中长期派用统计模型本来是不得已,因为你没法直接计算,只能依赖经验。而既然是依赖经验,你跟民间气象学家——也就是当地的老大爷——其实没啥区别。大爷说:飓风啊,根据这么多年我的经验,今年恐怕会有点多。
而人家短期派一直都是用纳维尔-斯托克斯方程说话,讲究的是科学和算力,每次输出一个固定的结果。短期派说,你让我出概率,这不是对我专业性的质疑吗?
但帕尔默认为,短期预报所谓的计算,其实是尽最大努力给一个*最可能*出现的结果,这种方法天然放弃了一些明明也有很大可能、但是没有被计算到的情境。你既然那么会算,为什么不把所有可能的状态都算一遍呢?
一个特别好的例子。那是英国的一次天气预报,气象学家计算的结果中没有飓风,可是到时候却发生了破坏性很强的飓风,气象学家遭到了老百姓的嘲讽。帕尔默说这回不算一次,算50次——每一次计算中把初始值稍微变动一下,给个随机的噪声,看看都有哪些结果。
结果是下面这样的——

这叫「邮票图」,图中每个小邮票代表一次模拟结果。50次模拟中有一些场景,真的发生了飓风。
现在把所有50张邮票综合在一起,就可以给出英国各个地区发生飓风的概率有多大——

可以看到,英国南部地区发生飓风的概率最高的可以达到30%,其他地区则几乎不会发生飓风。
这个结果是概率性的,但是这样的结果对老百姓是很有用的啊!如果你知道你家所在的地区明天有30%的概率会发生飓风,你大概不会把车停在户外,你可以稍微做点准备,总比不知道强吧?
✵
蒙特卡洛方法预测的不是一个结果,而是一个结果的「集合」。帕尔默1985年开发了第一个集合式的短期天气预报模型,现在所有主流的天气模型已经都是这样的了。这里的操作不关心平均值,而关心各种情形出现的概率。
集合式模型很大程度上解决了我们前面说的哪里出恒纪元、哪里出乱纪元的问题。比如像下面这场天气预报,50次模拟,50次都是风平浪静——

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

第一张图是飓风“锡德”(Sidr)。预测非常清楚,集合中几乎每个场景都说它会一直往正北方向走,登陆地点也很明确。
第二张图是曾经制造过大新闻的“卡特里娜”飓风(Katrina)。可以看到预测结果显示它的可能路径分布比较广,基本上会在美国佛罗里达州登陆,但是登陆之后的走向,是回到海上还是继续往内陆走,很不确定。
第三张图是飓风“纳丁”(Nadine),它的走向就非常分散了,难以确定。
请注意,这三次预测的精度其实是一样的。是当时具体的情境决定了预测结果是比较确定的还是非常不确定的,正如洛伦兹吸引子上某些区域是恒纪元,某些区域是乱纪元。
✵
我们看到了真实的天气预报是什么样的,为什么现在的天气预报往往都会给你一个「降雨概率」,而不像以前那样直接说下不下雨。承认未来的不确定性并且能把那个不确定性量化给你,这是观念的升级。
其实天气预报这种概率预测有个哲学问题。你算出来的概率,说到底是你模拟的那个集合里发生的概率,对吧?那你这个概率岂不是主观的吗?换一组预测集合,要是算出另一个概率,哪个是对的呢?这个概率在真实世界的物理意义是什么呢?
比如天气预报说「明天下雨的概率是80%」——请问这句话是什么意思?明天难道不是只有一次吗?怎么还整出概率来了呢?
唯一理想的定义,是在天气预报说下雨概率是80%的那些日子里,事后的统计发现真的有80%的日子下雨了。你给出的概率必须达到这个水平,我们才能相信它是靠谱的。
而要做到这一点非常困难。实践表明直接用完全随机的噪声生成初始值是不行的——那会低估系统的不确定性,往往预测出来的结果不如真实局面的戏剧性强。为了更接近真实局面,气象学家还必须对预测的初始值做一些手脚,你必须得先考虑好哪儿更容易出状况,你得把气象知识结合到初始值的生成之中……那些都是细节问题,这里不用考虑。
总而言之,当谈论预测未来的时候,必须有个概率意识。
这个意识有多高级呢?你想想那些在街头摆摊算命的。他们从来都是信誓旦旦地告诉你一个结果,从来没说过「我的预测模型显示你这次升职的概率是55%。」
《首要怀疑》4:政策与模型
因为结构性不确定性的存在,目前科学家对复杂预测的操作方法是运行多个模型,给你提供一个预测集合。看看集合里的结果是怎么分布的,就能猜测——或者说“投射”——出发生各种局面的概率大小大概是多少,然后从那些概率出发,再去做决策。
如何理解公共政策对科学预测的使用。
现在各国的公共政策都要有点科学依据。政客遇到大事不能拍脑袋决策,总要先问问科学家,如果我这么干会有什么结果,那么干又会有什么结果,从各个选项中选一个,这叫科学执政。
你看政客跟科学家的关系,是不是有点像古代君主跟祭司关系:君主要打仗,先请祭司占卜一番。而懂行的都懂,有时候祭司会根据君主的喜好调整占卜结果……那属于学术腐败,是题外话。我们最想知道的是,科学家真的知道该怎么办吗?
现代公众对科学的态度,也有点像古人对神灵的态度。有些人选择盲信,认为应该科学家咋说就咋办;有些人经历过几次科学家的判断错误,就走向了另一个极端,认为“专家”都没用。
如果你总把科学当做一个黑盒子,你就难免会把它神圣化或者妖魔化。聪明人需要知道科学家的说法都是怎么来的。
✵
说两个例子,一个是全球变暖,一个是新冠疫情。这两个都是国策级别的议题,有很多共同点。
全球变暖议题的焦点是到底应不应该为了避免变暖带来的气候灾难而减少碳排放,疫情议题的焦点是政府应该选择清零还是共存。减排和清零都会阻碍经济发展,继续排放和共存都必须面对发生灾难的风险,你说怎么办。
这两个问题本质上不完全是科学问题。每个人都既想要经济发展,又想要避免灾难,面对这种矛盾的目标怎么取舍,这里面有价值观和承担责任的问题,最终只能让政客拍板。
科学家的任务是提供政策的参考。简单说就是如果我们使用这个政策,你大概给我估计一下会发生什么结果——这个结果估计得准不准确,是科学家的责任;是否接受这个结果,则由政客决定。
希望科学家给精确的预测——可是帕尔默讲了这么多,最大的主题就是精确预测是不存在的。事实上把政策加入模型是比天气预报更难的预测,因为现在你必须考虑「政府行为」这个变量,你得考虑若干个虚拟的现实。帕尔默说,如果考虑政策变量,预测就不能叫「预测(prediction)」了,只能叫「投射(projection)」,或者说估计,因为准确度更低了。
还有一个更基本的难点在于,气候变化和新冠疫情的模型中都存在一些结构性的未知,不像前面说的天气预报模型里只有参数的不确定性。如果你已经知道这里需要一个参数,只不过你不知道这个参数具体是多少,这种不确定性是「已知的未知」;结构性的不确定性则是你根本就不知道这里需要什么样的参数,是「未知的未知」。
✵
先说全球变暖。基本道理很简单,二氧化碳是一种温室气体。人类的工业活动使得大气中的二氧化碳持续增多,导致温室效应越来越强。
二氧化碳气体对太阳发出的可见光、紫外光都是透明的,允许太阳光直接穿过它照射到地球表面;但是从地面反射回到太空的光,因为温度比较低,有更多的成分在红外端,二氧化碳会吸收红外线。也就是说,因为二氧化碳气体的存在,照射到地球的光没变,但从地球上离开的光减少了——所以大气温度会上升。
但故事并没有这么简单。其实大气中二氧化碳的含量是非常非常低的,就算是工业活动也没有增加多少。即便满打满算,把大气层中二氧化碳的浓度增加一倍,它本身导致的变暖,也就1℃。这有啥可担心的?
问题的复杂性在于,这1℃之差会导致另一种温室气体的增加,那个才是主力。那就是水蒸气。
水蒸气你很熟悉,遇冷就会变成小水滴或者水雾,不会引起变暖;但是气态的水的反光性质跟二氧化碳性差不多,也是让阳光进来不让反射光回去,是变暖气体。
二氧化碳增多会让大气温度升高,大气温度升高会让大气里的水蒸气含量增加,水蒸气含量增加又让大气进一步变暖,这是一个正反馈过程。
然后你还要考虑,变暖会让地面的冰雪减少,而因为冰雪本来有反光的作用,冰雪减少又会进一步导致地面吸收的热量增多,所以又加剧了变暖。
把二氧化碳、水蒸气和冰雪都考虑进来,模型显示二氧化碳增加一倍会让全球温度升高2.5℃,这就有点严重了。但是这还不够,还有一个更复杂的因素,那就是云。水蒸气增加,云也会增加。而云,却是目前的模型所无法精确预测的。
平常看到的那种乌云和白云都是低空云,它是不透明的,会挡住阳光,这样的云会让大气温度下降。这相当于起到一个负反馈作用,能抵消温室效应。那你说这不是很好吗?
问题是天空中还有另一种云,高层的云。这种云对入射的阳光是透明的,可是它会遮挡从地球返回太空的阳光,作用跟二氧化碳和水蒸气差不多,这就等于又增加了一层温室效应!
总体而论,到底是低层云的负反馈作用大还是高层云的正反馈作用大,云到底是减弱了还是加剧了变暖?我们不知道。这是当前气候模型最大的难点所在。云是一种非常复杂的现象,跟水蒸气含量有关系,跟空气中有多少杂质也有关系,海洋上的云和陆地上的云也不一样……没有一个像纳维尔-斯托克斯方程那样的精确公式来计算云,云是一种高阶的混沌现象。甚至不知道二氧化碳增多到底是让高层云变得更多了还是让低层云变得更多了。
所以现在的局面是多个研究者分别对云做出不同的假设,搞自己的模型,这些模型的预测结果各不相同。如果二氧化碳排放增加一倍,大气温度到底增加多少?我们得到的是下面图中这样一个预测集合——

图中横坐标是预测温度会升高的度数,纵坐标是给每个度数“投票”的模型数,比如有9个模型认为温度会升高3℃。这张图注定会让政客感到无所适从。
如果你按照“哪个度数票数多就采纳哪个度数”,那么预测结果应该算是在2.5℃到3℃之间,因为有最多的模型是这个结果。可是图中曲线的右侧,明明有更多的模型认为变暖程度会超过3℃!
这个麻烦在于,这条曲线不是那种正态分布的钟形曲线,而是一个偏斜(skewed)的形状,有一条厚厚的、看起来不敢忽略的大尾巴。这是非线性模型的典型现象,意味着容易出“蝴蝶效应”、“黑天鹅”之类的极端事件。
如果大祭司对你说“嗯……我看这次最可能的结局是不发生灾难,……但是也有可能发生很大的灾难”,你会怎么做呢?
✵
再说新冠疫情。政府希望模型能告诉我们,如果选择共存,会有多少人感染,会不会发生严重的医疗挤兑,会导致多少超额死亡。可是模型能做的很有限。
传染病模型的基本原理也很简单,把所有人分成三类:
* 第一类是没有感染、但很有可能会被感染的人(susceptible);
* 第二类是已经感染病毒、并且很有可能会传染给其他人的人(infected);
* 第三类是已经感染过、康复了或者死亡了的人,他们既不会传染别人,也不会被人传染(removed)。
然后考察这三类人的互动和人数变化。最关键是第二类,需要知道他们每个人平均会传染给多少人,这个数也就是你这几年经常听到的「R0」。你可能听说过,新冠病毒最初的R0是多少,后来的奥密克戎变体的R0又是多少云云……
但真实的R0并不是一个单一数值。它不但跟病毒的传染性强弱有关,更跟人群的分布、人群的行为习惯有关。乡村地区的人们互相不怎么接触,R0自然小;城市里人们喜欢聚集,R0就会大。
在英国用的一个最复杂的模型中,全国被分成了若干个街区,每个街区都有自己的R0——但就是这样也是不准确的。关键是你无法预测人的行为。有时候政府说封控,老百姓真的会老老实实待在家里;可有些时候老百姓根本不听政府号召,而且每个街区的人口密度也会随着居家或者上班发生变化……
R0值的这个不确定性,是一种「结构性的不确定性(structural model uncertainties)」,跟天气模型中的云一样,真是人心如浮云啊……
所以科学家还是得像气候模型一样,弄出若干个不同的模型,每个模型设定不同的R0值分布,最后搞一个预测结果集合。然后政客还是得面对到底该如何听取这么多模型的意见的困难局面。
疫情在英国基本结束之后,公众发现真实的结果跟政客当初说的也太不一样了。政客立即就可以拿科学家当替罪羊,说不是我们瞎指挥,是科学家的预测有问题。而科学家,只能有苦说不出。
✵
总而言之,因为像云和R0这样的结构性不确定性的存在,目前科学家对复杂预测的操作方法是运行多个模型,给你提供一个预测集合。我们看看集合里的结果是怎么分布的,就能猜测——或者说“投射”——出发生各种局面的概率大小大概是多少,然后从那些概率出发,再去做决策。
理解了这些幕后的操作,你的第一反应大概是不要迷信所谓的科学预测,你知道预测肯定不准。但我认为你的第二反应应该是我们也不能据此就排斥科学,因为这就是我们所能得到的最好的答案。
其实这样的答案比「没有答案」要强得多。
最起码现在知道,全球变暖带来害处的可能性远远大于带来好处的可能性。这个认知就已经可以说服各国政府对碳排放小心行事了。
科学家毕竟不真是用龟甲占卜的祭司,那些预测结果并不是胡乱给的,更不是完全随机分布的。尽管所有模型都有不确定性,但是每个模型处理不确定性的方式是不一样的,然后这么多模型都在「气候一定会变暖,并且很有可能会导致灾难」这个说法上取得了共识,这难道不也是一个很靠谱的参考意见吗?