费舍尔统计思想:实验设计、最大似然与方差分析如何塑造现代数据科学 📅 发布时间:2026/9/3 13:39:24 👁 浏览次数: 很多人知道罗纳德·费舍尔是从“女士品茶”这个故事开始的。一群剑桥学者坐在午后茶桌旁一位女士声称自己能分辨出先倒茶还是先倒牛奶。旁人大多把这当成闲谈费舍尔没有直接争论而是设计了一次随机化的盲测实验把“她到底能不能尝出来”变成一个可以被检验的问题。这个场景后来被反复讲述看起来像科学史上的一段逸闻。但今天再读它其实浓缩了费舍尔对统计学的整体判断统计学的职责不是事后解释已经发生的数据而是事先决定数据应该如何产生从而让结论站得住脚。这个判断才是他真正改变现代科学的地方。他留下的最大似然估计、方差分析、实验设计原则和群体遗传学理论表面上是一组互不相关的数学工具骨子里却在回答同一个问题在充满随机性和混杂因素的世界里我们凭什么相信一个结论是真的写下这篇文章不是想给费舍尔作传而是想认真拆一遍他的思想路径。因为你会发现一百年前他在田间试验和进化论里遇到的问题今天做数据分析、机器学习、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、实验设计、群体遗传学看起来是四个方向实际是一条主线科学结论是否可信不取决于你后来用了多复杂的统计方法而取决于你在一开始有没有把问题定义清楚、把数据生成的规则设计清楚。一百年后的今天数据量爆炸机器学习模型变得极其复杂但我们验证一个结论的基本逻辑仍然绕不开费舍尔画下的那道底线在相信一个数字之前先确认它是怎么来的。