很多人知道罗纳德·费舍尔,是从“女士品茶”这个故事开始的。一群剑桥学者坐在午后茶桌旁,一位女士声称自己能分辨出先倒茶还是先倒牛奶。旁人大多把这当成闲谈,费舍尔没有直接争论,而是设计了一次随机化的盲测实验,把“她到底能不能尝出来”变成一个可以被检验的问题。
这个场景后来被反复讲述,看起来像科学史上的一段逸闻。但今天再读,它其实浓缩了费舍尔对统计学的整体判断:统计学的职责,不是事后解释已经发生的数据,而是事先决定数据应该如何产生,从而让结论站得住脚。
这个判断,才是他真正改变现代科学的地方。他留下的最大似然估计、方差分析、实验设计原则和群体遗传学理论,表面上是一组互不相关的数学工具,骨子里却在回答同一个问题:在充满随机性和混杂因素的世界里,我们凭什么相信一个结论是真的?
写下这篇文章,不是想给费舍尔作传,而是想认真拆一遍他的思想路径。因为你会发现,一百年前他在田间试验和进化论里遇到的问题,今天做数据分析、机器学习、AB测试、用户研究的人,依然在遇到。
1. 先回到二十世纪初:统计学的天花板不是数学,而是数据来源
1.1 皮尔逊时代的统计长什么样
费舍尔进入统计学领域时,这个学科的主流还不是今天意义上的推断统计。高尔顿和皮尔逊建立了相关与回归,他们擅长描述:给出一批数据,计算均值、方差、相关系数,画出分布曲线,告诉人们变量之间“看起来有关系”。
这种方法在当时已经很有用了。高尔顿研究身高的亲子遗传,皮尔逊收集了大量人体测量数据,用相关系数说明父母身高和子女身高的关系。数据描述本身没有错,但它有一个隐藏的前提:数据是已经存在的东西,统计分析只是被动地整理它们。
问题是,如果数据来源本身有偏、分组方式不随机、试验条件不可比,那么再漂亮的相关分析也只是给错误的数据涂上一层数学的光泽。
1.2 费舍尔看到的真正缺口
费舍尔在 Rothamsted 试验站工作时,面对的是延续几十年的田间试验数据。不同年份、不同地块、不同施肥方式,导致小麦产量的差异。你用相关分析能算出施肥量和产量之间的相关系数,但没有人能说清这个系数到底有多大意义:是施肥真的有效,还是那年雨水好、那块地土壤肥、或者其他原因造成的?
费舍尔意识到,这不是数据不够多的问题,也不是算法不够精巧的问题,而是从源头就没有把试验安排好。如果你在开始之前没有定义清楚处理组和对照组、没有随机分配地块、没有设置重复,那后面的统计无论多复杂,都不能弥补试验设计的缺陷。
所以他的核心判断是:统计不是从数据开始,而是从“数据如何诞生”开始。
这一下就把统计学的角色从“事后描述”转变成“事前推演”。数据不再是可以随便拿来的素材,而是必须在明确假设、明确随机化、明确重复条件下生产出来的证据。这个转变,才是费舍尔对现代科学真正的贡献。
2. 最大似然:把“哪个参数最像真的”变成一种统一框架
2.1 最大似然的直观含义
最大似然估计是费舍尔提出的最广为人知的方法。它听起来很数学,但底层直觉非常朴素。
假设你有一枚硬币,不知道它正面朝上的概率是多少。你抛了十次,结果出来了七次正面、三次反面。在费舍尔看来,合理的做法是问:如果正面概率是0.5,这组结果出现的可能性有多大?如果是0.7呢?如果是0.8呢?
“似然”这个词,描述的就是在不同参数假设下,当前观测结果出现的概率。最大似然估计就是寻找到那个让当前结果“最可能被观测到”的参数值。在抛硬币这个例子里,十次出现七次正面,最可能的正面概率是0.7。这就是最大似然估计。
这个想法今天看起来理所当然,但把它放到统计史上看,它是革命性的。它把“参数估计”变成了一个统一的可计算问题:无论你面对的是均值、方差、相关系数还是回归系数,你都可以先写出一个概率模型,然后找到让数据“最像”的那组参数。
2.2 为什么它超越了当时的估计方法
费舍尔之前,统计学家常用的估计方法是矩估计和最小二乘。
矩估计的思路是让样本矩等于理论矩。它简单,但在很多复杂分布里会失效,而且它没有一个统一的标准来判断“为什么这么估计是好的”。
最小二乘最早由高斯、勒让德等人发展,在回归场景下很有用,但它更多是一个代数技巧:让误差平方和最小。费舍尔证明,如果误差服从正态分布,最小二乘其实就是最大似然估计的一种特殊情况。这就把最小二乘从一个看起来“无所谓为什么”的技巧,纳入了概率推断的框架。
最大似然还有两个非常重要的理论性质:一致性和渐进有效性。意思是,当样本量越来越大时,估计值会越来越接近真实参数,而且这个估计的方差在众多估计方法里是渐进最小的。这给了统计学家一个选择估计方法的依据:只要能用最大似然,就不太需要担心估计效率的问题。
2.3 对现代估计、训练模型、参数学习的启发
今天做机器学习的人,其实每天都在用最大似然的影子。
交叉熵损失函数,底层就是最大似然。逻辑回归的目标是最大化给定数据下参数的后验概率或似然函数。神经网络训练时最小化的很多损失函数,都可以理解为在某一类概率分布假设下的负对数似然。你不一定知道自己用了费舍尔的方法,但你的训练过程已经被他定义过了。
理解这一层,对实际调试模型有直接帮助。你会明白,损失函数不是随便选的一个“惩罚项”,它背后对应着“你假设数据是怎么生成的”。如果你的任务是一个分类问题,你用交叉熵而不是均方误差,不只是因为大家说交叉熵好,而是因为交叉熵对应了分类分布下的最大似然推断,它在理论上更贴合这个问题本身。
建议:在排查一个模型训练异常的时候,先不要急着调学习率,而是先确认一件事——你选的损失函数,是否和你的数据生成假设一致。这一步如果错了,后面很多调参都是徒劳。
3. 方差分析:不是比较平均数,而是分解波动的来源
3.1 为什么“看均值”是不够的
很多人在分析实验数据时,习惯先看平均数。种了三块地的肥料实验,最终产量平均下来,A肥料比B肥料高一点,就认为A更好。
费舍尔发现这种做法很不严谨。均值高出来的那一点,可能只是噪声。同一块地里,不同植株之间本来就有差异;不同地块之间,土壤肥力也不一样;不同年份之间,降雨量不同。如果在这些差异面前,肥料带来的均值差异不够大,那它就很可能是随机波动造成的假象。
所以问题不是“谁的均值高”,而是“这些均值差异在总波动里占多少比例”。
3.2 组间方差和组内方差
方差分析的核心,是把总的波动拆成两个部分:
- 组间方差:由不同处理、不同分组导致的差异。
- 组内方差:即使在同一处理下,样本之间也存在的随机差异。
然后比较这两个部分。如果组间方差明显比组内方差大,说明处理效应不是单纯运气,而是超过了随机波动的范围。这个比较的数学工具就是 F 检验。
这个框架看起来很简洁,但它背后的思维转变非常重要。它把一个“数据描述问题”变成了“归因分析问题”:总体差异有多少来自我们关心的因素,有多少来自无法控制的随机因素?只有回答了这个问题,才能决定一个观察到的差异是否可解释、可相信。
3.3 从 F 检验到现代评估:AB测试、特征重要性和模型差异判断
方差分析的思想今天依然贯穿在数据分析工作流里。
最直接的对应是 AB 测试。在两个版本页面上做测试,不能只看哪个版本转化率高,还要看这个差异相对样本波动是否显著。所谓显著性检验,本质上就是在判断:组间差异在总波动里占比有多大?如果样本量太小,哪怕看起来转化率差很多,也可能没有统计显著性。
在机器学习里,方差分析的思想也很有用。评估特征重要性的许多方法,本质上都在回答同一个问题:加入这个特征之后,预测能力的提升,相对于随机噪声来说,是明显还是不明显?如果你只比较训练集上的指标差异,完全可能被过拟合欺骗;只有理解了模型预测误差的波动构成,才能判断一个特征是否有真实贡献。
同样的逻辑也适用于对比两个模型。A 模型的准确率比 B 模型高 0.5 个百分点,看起来是赢了。但如果你跑十次交叉验证,发现这个差距在不同折上反复横跳,那这 0.5 个百分点很可能只是噪声。费舍尔的方差分析思想,给了我们一个冷静下来检查差异来源的框架。
提醒:判断两个模型或者两个版本谁更好,不要只记住一个分数差,要问一个方差上的问题:这个差异在不同数据子集、不同重复实验里是否稳定?如果它不稳定,你看到的所谓优势,可能只是偶然。
4. 实验设计的诞生:女士品茶不是轶事,而是一套因果推论的算法
4.1 女士品茶真正演示的是什么
“女士品茶”这个例子,在费舍尔那里并不是一场真实的现场测试,而是他在《实验设计》里设计的一个思想实验,用来演示实验设计的核心要素。
他提出的问题是:如果一位女士声称自己能分辨奶茶是先倒茶还是先倒奶,你该怎么验证她的说法?
费舍尔给出的方案是:准备若干杯茶,一半先倒茶后倒奶,一半先倒奶后倒茶,随机打乱顺序,不让她知道顺序。每杯只让她回答“哪一种做法”。如果她全部分对,我们要计算一个概率:在完全靠猜的前提下,全部分对的概率有多少?如果这个概率很小,就有理由相信她的判断并不仅仅是运气。
这里面包含了现代实验设计的几乎所有基本元素:
- 随机化:防止她知道或猜出顺序,切断系统性偏差。
- 盲测:避免心理暗示。
- 零假设:先假设“她尝不出来”,然后看数据能否推翻这个假设。
- 样本量:不是一杯两杯,而是足够检验的杯数。
4.2 为什么随机化在因果推断中不可替代
随机化是费舍尔实验设计思想里最容易被低估的部分。
很多人觉得随机化只是流程上的一个规定,用来显得“科学”。实际上,随机化解决的是一个更深刻的逻辑问题:我们永远不可能把所有可能的混杂因素都列干净。
在农作物试验里,你没法保证两块地土壤完全一样;在用户测试里,你没法保证两组用户年龄、性别、消费习惯完全一致;在医学研究里,你没法保证两组病人的身体状况、生活方式完全相同。
如果你用“人为匹配”的方式控制混杂因素,你总会漏掉一个你没想到的变量。随机化的厉害之处在于:它不要求你列出所有可能的混杂因素,而是通过概率分配,让各种已知和未知的混杂因素在处理组和对照组之间均匀分布。你不需要知道是哪一个变量在干扰,随机化会把它们一起打散。
这正是费舍尔的高明之处。他解决的不仅仅是“如何比较两组数据”,而是“如何让两组数据具有可比性”这个前置难题。
4.3 对现代AB测试、田野实验、用户研究的直接映射
今天做增长实验、产品迭代、用户研究的人,几乎都在沿用费舍尔设计的流程。
你上线一个 AB 测试,第一步不是写统计代码,而是确定随机分组是否落地。用户是被均匀分到实验组和对照组的吗?分流过程是否存在时间偏差?是否存在同一用户多次进入实验导致样本相关性的问题?这些问题看起来是工程问题,实际上都是实验设计问题。
如果你在做线上实验时,发现用户并不是均匀随机分组的,比如老用户都在对照组、新用户都在实验组,那后面的所有显著性检验都失去了意义。因为组间差异可能不是由你的产品改动引起的,而是由用户结构差异引起的。这就是随机化没做好的典型后果。
注意:线上 AB 测试里,随机化是否成立,比显著性公式重要得多。先检查分组逻辑,再检查统计结果,顺序不要反。
5. 群体遗传学:费舍尔为什么要把统计带进进化论
5.1 孟德尔遗传与连续性状的矛盾
费舍尔的贡献不止在统计学,他还是群体遗传学的奠基人之一,与霍尔丹、赖特并列。
二十世纪初,生物学家面临一个尖锐的矛盾。孟德尔遗传学说认为,性状由离散的遗传因子控制,比如豌豆的圆粒或皱粒,是“有或无”的关系。但达尔文进化论描述的自然选择,是在连续变异的性状上发挥作用,比如身高、体重、产量,这些性状不是非此即彼的。
如果遗传是离散的,连续变异怎么来的?如果连续变异不能稳定遗传,自然选择怎么起作用?这个矛盾导致孟德尔主义和生物测量学派长期对立。
5.2 方差分解如何连接遗传学和自然选择
费舍尔用统计思维解开了这个死结。
他的做法,是把一个群体的表型方差分解成遗传方差和环境方差。然后,在遗传方差内部,再进一步分解为可加性遗传方差、显性效应方差和上位效应方差。
这个分解的关键在于“可加性”。虽然单个基因可能以离散的方式遗传,但很多基因对某个性状的微小效应加在一起,就可以产生连续分布。多个微效基因的累加效应,在表型上看起来就是连续变异。这样一来,孟德尔式离散遗传和达尔文式连续变异之间的鸿沟就被填平了。
费舍尔还提出了“自然选择的基本定理”,大意是:种群适应度的增加速率,与该种群可加性遗传方差成正比。简单说,如果一个群体里可供选择的遗传变异足够多,自然选择就能有效推动进化。这个定理把自然选择描述成一个由遗传方差驱动的统计过程。
5.3 对现代GWAS、多基因性状理解的影响
费舍尔在一百年前埋下的这个思想,今天已经成为现代遗传学的主流框架。
基因组时代,研究人员做全基因组关联分析(GWAS),寻找与身高、体重、疾病风险等复杂性状相关的位点。他们发现,单个位点通常只解释非常小的表型变异,但成千上万个位点加在一起,可以解释相当大比例的遗传度。这正是费舍尔“多基因微效累加”模型的现代验证。
复杂性状的遗传研究,从概念上讲,就是费舍尔方差分解思想在基因组尺度上的扩展。你对一个性状做遗传力估计,本质上就是在回答一个方差的问题:表型差异里,有多少比例来自遗传差异?这个问题的统计框架,是费舍尔建立的。
6. 今天做数据分析的人,还能从费舍尔身上借到什么
6.1 先写假设,再写代码
费舍尔的工作方式给现代数据分析师最直接的建议是:不要先拿数据跑一堆相关性分析,再去编故事。
更合理的工作流是,先想清楚你要验证什么问题,提出一个可以证伪的假设,再决定需要收集什么样的数据,最后才进入计算和分析阶段。没有假设的数据挖掘,容易产生大量伪相关和巧合。
这个顺序看似基础,但实际非常容易被忽略。拿到一份数据后,先看相关性矩阵、跑聚类、做可视化,然后从中发现一个“有趣”的结果,再去解释它——这是很多人默认的做法。但费舍尔会提醒你:如果你事先没有设计假设,那么你从数据里找到的那个“显著结果”,很可能只是多次试探下的偶然产物。
6.2 用随机化处理“看似明显”的结论
做观察性研究时,如果发现一个变量和结果强相关,先不要急着下结论。要问:这个相关性在随机化的实验设计下还能不能稳定复现?
现实中有太多表面相关不能推出因果的例子。商店里的冰淇淋销量上升,同时溺水人数也在上升,但这不代表冰淇淋导致溺水。真正的共因是气温。费舍尔对随机化的强调,本质上是让我们对“看上去很明显”的因果关系保持怀疑。
6.3 用方差分解理解预测模型
在机器学习项目里,当你发现模型在验证集上效果不好时,不要只想着调参、加特征、换模型。可以先做一个方差式的归因思考:
- 误差主要来自模型偏差,还是来自数据噪声?
- 不同训练集子采样下,模型性能的波动有多大?
- 加入一个新特征后,性能提升是否超过了随机波动?
这套问法,就是把费舍尔的方差分析思想用在模型评估上。它能帮助你区分一个问题是样本量不够、数据质量差、特征表达不足,还是模型结构不够好。没有这种归因框架,调参就变成了碰运气。
6.4 别把显著性当成唯一真理
费舍尔推动了显著性检验,但他同样强调:一个统计上显著的结果,还需要结合实验设计、样本代表性、效应量大小来综合判断。
现代统计学对 p 值的大量批评,实际上指向的是误用,而不是费舍尔本人。把“p 小于 0.05”当作“结论成立”的自动开关,是简化到危险程度的理解。费舍尔自己在分析试验数据时,关注的从来不只是显著与否,还包括效应量有多大、设计是否合理、结果是否可重复。
所以今天做数据决策时,最稳妥的做法是:把显著性当作一条线索,而不是最终判决。真正稳健的结论,应该能经受重复实验、不同数据集和不同分析方法的检验。
6.5 学科交叉的力量来源
费舍尔最让我佩服的地方,是他从不把自己锁在一个学科里。他研究田间试验,创立了方差分析和实验设计;研究统计学理论,发展了最大似然估计和充分统计量;研究遗传学,用方差分解解决了孟德尔与达尔文的矛盾。
这种交叉不是靠“什么都懂一点”的散装知识,而是靠一套统一的数学思维。他看到不同领域问题背后的共同结构:波动如何分解、信息如何提取、因果如何推断。正是这种底层结构的把握,让他能够在一个领域建立的方法,迁移到另一个领域解决看似无关的问题。
今天做 AI、数据科学和用户研究的人,如果只把自己定位成“写代码的人”或“跑模型的人”,很难获得这种跨领域迁移能力。值得借鉴的做法是:在解决一个具体问题之后,多问一句——这个问题的数学结构,还出现在别的什么场景里?一旦建立了这种抽象迁移的能力,你的工具箱就不再是一堆孤立函数,而是一套真正的思维框架。
费舍尔的故事讲到最后,想落回一个可能有些反直觉的判断:他最重要的遗产,并不是某个具体公式,而是“数据不能自证其合法性”这一观念。
最大似然、ANOVA、实验设计、群体遗传学,看起来是四个方向,实际是一条主线:科学结论是否可信,不取决于你后来用了多复杂的统计方法,而取决于你在一开始有没有把问题定义清楚、把数据生成的规则设计清楚。一百年后的今天,数据量爆炸,机器学习模型变得极其复杂,但我们验证一个结论的基本逻辑,仍然绕不开费舍尔画下的那道底线:在相信一个数字之前,先确认它是怎么来的。