女士品茶:统计学如何变革了科学和生活
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

迭代算法

最早的迭代算法之一似乎出现在文艺复兴时期(尽管戴维·史密斯在1923年出版的《数学史》中声称他在古埃及和中国的记载中发现了使用这种方法的例子)。在资本主义萌芽时期,意大利北部出现的银行或者叫账房面临着一个基本问题。每一个小城邦或国家都拥有自己的货币。根据汇率,假设14枚雅典银币兑换1枚威尼斯金币,账房需要研究如何将一批以127枚威尼斯金币购买的木材换算成雅典银币的价格。现在,我们有强大的代数思想,可以用于求解。还记得高中代数吗?如果x等于银币的价格,那么……

当时的数学家已经开始发展代数学,不过大多数人仍然不擅长计算。银行家使用一种叫做“试位法规则”的计算方法。每个账房都拥有自己的规则版本,他们秘密地将这种版本传授给职员,因为每个账房都相信他们的规则版本是“最好的”。16世纪的英国数学家罗伯特·雷科德(Robert Recorde)在推广代数标记新方法方面表现突出。为了将代数的力量与试位法规则进行对比,他在1542年的作品《艺术基础》中对试位法规则进行了如下描述:

按照自己的意愿猜一个答案。

运气好的话,你可能会接近真理。

对问题进行初次计算,

尽管真理仍然遥不可及。

这种错误是良好的基础,

你很快就会发现真相。

走过的道路越来越多,

离目标的距离越来越近。

再长的道路也会走到尽头,

再小的水滴也能聚成大海。

不同种类交叉相乘,

错误的方法也可以找到真理。

雷科德的这段文字用16世纪的英文写成,大意是,你首先猜测一个答案,然后把它放到问题中。用这个猜测得到的结果和你想要的结果之间将会出现偏差。你用这个偏差得到一个更好的猜测,用这个猜测得到一个新的偏差,从而得到另一个猜测。如果你在计算偏差时足够聪明,你得到的猜测最终就会接近正确答案。试位法只需要一次迭代,第二次猜测总是准确的。对费希尔的最大似然方法来说,为了得到满意的答案,你可能需要迭代数千次甚至数百万次。

100万次迭代对一台耐心的计算机来说意味着什么呢?放在今天,也就是一眨眼的工夫而已。不久以前,计算机的功能和速度要差得多。在20世纪60年代后期,我有一台可编程台式计算机。这是一台原始的电子仪器,可以执行加减乘除操作。它还拥有一个小型内存,你可以存放一个程序,让它进行一系列算术操作。你还可以让它在程序中自动跳转。因此,这台可编程计算机可以进行迭代计算,只是需要很长时间。一天下午,我编好程序,检查了前几步,确保我没有在程序中犯错误,然后关掉办公室里的灯,回家了。与此同时,可编程计算机里面的电子元件仍然在嗡嗡作响,默默进行着加减乘除操作。按照程序,每隔一段时间,它会打印出一个结果。电脑上的打印机是个噪音很大的家伙,它会发出“咔啦咔啦”的巨大声响。

夜间保洁人员进入了大楼,一个人拿着笤帚和撮箕来到了我的办公室。在黑暗中,他听到了嗡嗡声。他可以看到计算机不断运算时一只眼睛一张一翕发出的蓝色光亮。突然,打印机醒了。“咔啦,”它叫了一声,然后是“咔啦,咔啦,咔啦,咔啦咔啦!”这位清洁工后来告诉我,这是一种极其可怕的经历,并请求我下次留下某种标记,警告人们计算机正在工作。

今天的计算机工作速度非常快,因此人们在分析越来越复杂的似然方法。哈佛大学的娜恩·莱尔德(Nan Laird)教授和詹姆斯·韦尔(James Ware)教授发明了一种强大而灵活的迭代程序,叫做“EM算法”。在我的统计学期刊中,每一期都有文章介绍某人将他的EM算法用到了之前被认为无法解决的问题上。其他一些算法也出现在了文献中,它们拥有怪诞的名字,如“模拟退火法”和“克里格法”。此外,我们还有梅特罗波利斯算法和马夸特算法,以及其他以发明者命名的算法。我们有复杂的软件包,包含成百上千条代码,可以让这些迭代计算变得“方便用户操作”。

费希尔的统计估计方法取得了胜利。最大似然统治了世界,皮尔逊的方法被人们丢进了历史的垃圾堆。不过,在20世纪30年代——此时,费希尔对数理统计理论的贡献终于获得承认,他正处在四十来岁年富力强的好时光——一个名叫内曼的波兰青年数学家提出了一些问题,将费希尔藏在地毯下面的问题重新暴露在阳光下。

20世纪50年代,印度的C. R. 拉奥和在霍华德大学任教的戴维·布莱克威尔表示,即使费希尔的正则条件不成立,仍然可以根据最大似然估计值构造出效率最高的统计量。两个人独立得到了相同的定理,因此拉奥-布莱克威尔定理是施蒂格勒误称定律的一个例外。