ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

费舍尔:最大似然、方差分析与实验设计的统一奠基者

费舍尔:最大似然、方差分析与实验设计的统一奠基者 如果你在做数据分析、机器学习或者科学实验下面这些场景你一定不陌生用一个模型去拟合数据需要估计参数最常用的方法叫“最大似然估计”。做了多组实验想判断不同组之间到底有没有差异你会用“方差分析”也就是 ANOVA。上线了一个新功能想验证效果是否显著你会设计实验控制变量跑显著性检验。研究生物信息、群体进化或者复杂性状的遗传基础你会接触 GWAS、遗传力、群体遗传结构。这些问题看起来分属不同领域一个属于统计推断一个属于实验设计一个属于生物信息。但很少有人意识到这些工具的底层框架竟然是由同一个人在一百年前奠定的。这个人就是罗纳德·费舍尔Ronald Aylmer Fisher。他不仅是现代统计学的奠基人之一还一个人打通了参数估计、假设检验、实验设计、方差分析和群体遗传学这几大领域。今天我们常用的许多方法从最大似然估计到 p 值从随机化实验到遗传力计算源头都能追溯到他那十几年的工作。这篇文章想做的事很简单把费舍尔的核心贡献拆开看看最大似然、ANOVA、实验设计和群体遗传学这几个看似独立的方向在费舍尔手里是如何被统一成一个完整体系的。同时会用可运行的代码示例把“费舍尔式统计推断”从纸面概念变成你可以亲手验证的东西。不管你是做机器学习、数据科学还是生物信息这篇文章都能帮你看清自己正在使用的方法论是从哪里来的以及它为什么好使、哪里有坑。1. 费舍尔要解决的问题统计不是描述而是“设计”要理解费舍尔的贡献先要理解 20 世纪初统计学的状态。在费舍尔之前统计学的主流是“描述性统计”。高尔顿研究回归皮尔逊提出相关系数他们的核心工作是“如何用若干数字概括一组数据”。这种思路把统计当作解释过去的工具——数据已经产生我只需要从里面提取信息。但费舍尔在剑桥读书和罗森斯坦实验站工作期间面对的是另一个问题统计数据往往来自精心设计的实验而不是随手记录的历史资料。一张实验田里不同品种的小麦产量不同差异可能来自品种可能来自土壤肥力也可能来自随机波动。你要回答的不是“这堆数据长什么样”而是“这些差异是怎么产生的”“哪一个因素真正起作用”“我该怎么设计下一次实验让它更精确”。于是费舍尔把统计学的目标从“描述过去”变成了“设计未来”。他在 1935 年出版的《实验设计》The Design of Experiments里明确表达了这个观点统计方法不是数据产生之后才介入而是应该在实验开始之前就参与规划。这个转向的直接后果就是今天实验科学和机器学习实践中的标准流程先提出假设再设计数据采集方案然后做推断。如果你做过 A/B 测试或者设计过机器学习特征验证实验你实际上已经走在费舍尔开辟的路上。费舍尔的另一个关键判断是数据是有限的你必须用量化的方式表达不确定性。你不能说“这个品种似乎更好”你必须说“在 0.05 的显著性水平下我拒绝了两个品种没有差异的原假设”。这种表达方式让统计学从“科学家的直觉”变成了“可检验的科学决策”。这个思想在当时的生物学和农学界引发了一场革命。在此之前生物学实验大多凭经验设计品种好坏靠肉眼观察判断。费舍尔引入随机化、重复和区组设计之后实验结论才有了严格的概率保障。理解这一点你就明白为什么费舍尔是“现代统计学奠基人”而不是“又一个统计学家”。他不是发明了几个公式而是重新定义了统计学在科学流程中的位置。2. 最大似然估计费舍尔最锋利的推断之刃最大似然估计Maximum Likelihood EstimationMLE是费舍尔在 1912 年到 1922 年间逐步完善的方法。今天它已经是机器学习中最基础的参数估计方式逻辑回归、神经网络、混合高斯模型的参数训练底层都可以归结为最大似然。2.1 似然与概率的区别很多初学者会混淆“似然”likelihood和“概率”probability。这两者看起来都是 P(x|θ)但视角不同。概率在参数 θ 已知的情况下预测观测结果 x 出现的可能性。似然在观测结果 x 已知的情况下评估不同参数 θ 对数据的解释能力。用一句话概括概率是“给定参数预测数据”似然是“给定数据评估参数”。最大似然估计做的事情就是找到让当前数据出现概率最大的那组参数。# 文件路径mle_demo.py import numpy as np from scipy.optimize import minimize # 生成一组服从正态分布 N(5, 2) 的样本 np.random.seed(42) mu_true, sigma_true 5.0, 2.0 data np.random.normal(locmu_true, scalesigma_true, size200) # 负对数似然函数负号是因为 scipy 只做最小化 def neg_log_likelihood(params, obs): mu, sigma params if sigma 0: return 1e10 n len(obs) # 正态分布的对数似然 log_lik -0.5 * n * np.log(2 * np.pi * sigma**2) \ - np.sum((obs - mu)**2) / (2 * sigma**2) return -log_lik # 初始猜测 initial_params [0.0, 1.0] result minimize(neg_log_likelihood, initial_params, args(data,), methodL-BFGS-B, bounds[(None, None), (1e-6, None)]) mu_hat, sigma_hat result.x print(f真实参数: mu{mu_true}, sigma{sigma_true}) print(fMLE 估计: mu{mu_hat:.4f}, sigma{sigma_hat:.4f}) # 与闭式解对比 mu_formula np.mean(data) sigma_formula np.sqrt(np.mean((data - mu_formula)**2)) print(f闭式解 : mu{mu_formula:.4f}, sigma{sigma_formula:.4f})运行结果类似真实参数: mu5.0, sigma2.0 MLE 估计: mu5.0142, sigma1.9563 闭式解 : mu5.0142, sigma1.9563最大似然估计在正态分布下的闭式解刚好是样本均值和样本标准差这个结果不是巧合而是因为正态分布的对数似然函数对均值和方差分别求导后极值点正好落在这些统计量上。2.2 为什么最大似然是“锋利的”费舍尔不仅提出了最大似然估计还给了它扎实的理论保证。他证明在相当一般的正则条件下最大似然估计具有三个重要性质一致性样本量足够大时估计值会收敛到真值。渐近正态性大样本下估计量的分布近似正态。渐近有效性在所有一致估计量中最大似然估计的方差最小能达到 Cramér-Rao 下界。这意味着什么用费舍尔自己的话说最大似然估计“充分利用了数据中的全部信息”。这个“信息”概念正是费舍尔最具原创性的贡献之一——费舍尔信息量Fisher Information。import numpy as np def fisher_information_normal(sigma, n1): 正态分布未知均值 mu 时单个观测值的 Fisher Information。 公式: I(mu) 1 / sigma^2 return n / sigma**2 sigma 2.0 I fisher_information_normal(sigma) print(fsigma{sigma} 时单个样本关于 mu 的 Fisher Information {I:.4f}) # 所以参数估计的方差下界是 1/I sigma^2/n费舍尔信息量刻画了“数据中携带多少关于参数的信息”。它定量地回答了一个问题这个实验到底值不值得做如果信息量太低无论你怎么分析都很难得到精确结论。这个思想直接影响了后来的实验设计理论。2.3 一个机器学习的对照如果你训练过逻辑回归那么你其实已经用过最大似然估计。逻辑回归的损失函数是交叉熵而交叉熵来自伯努利分布的负对数似然。最小化交叉熵就是最大化似然。在深度学习框架里nn.BCELoss和nn.CrossEntropyLoss的背后都是费舍尔在一百年前给出的框架。所以最大似然不是教科书中过时的理论而是现代机器学习训练过程的数学底座。3. 实验设计与“女士品茶”随机化的诞生在统计推断的链条里最大似然解决的是“拿到数据后怎么分析”而实验设计解决的是“怎么拿到好数据”。费舍尔的《实验设计》一书被认为是这个领域的开山之作书中最著名的例子就是“女士品茶”。3.1 从一杯茶说起的故事故事是这样的一位女士声称自己能够品尝出杯子里的茶是先放牛奶后倒茶还是先倒茶后放牛奶。费舍尔设计了一个实验准备 8 杯茶其中 4 杯先奶后茶4 杯先茶后奶随机排列后请女士品尝要求她判断每一杯属于哪种做法。这个实验即使全凭猜测也完全有可能猜对其中部分杯子。如果女士真的具备辨别能力她应该能把 8 杯全部正确分类。费舍尔计算了这种情况的概率从 8 杯中选出 4 杯作为“先奶后茶”总共有 C(8,4)70 种组合方式而正确分类只有 1 种所以纯靠运气全部答对的概率是 1/70约 0.014。如果女士真的 8 杯全对可以认为她不是靠运气因为她全对的概率不到 0.05。# 文件路径tea_test_demo.py from scipy.stats import hypergeom import numpy as np # 超几何检验8 杯茶中 4 杯是先奶后茶4 杯是先茶后奶 # 女士从 8 杯中选出 4 杯先奶后茶 M 8 # 总体大小 n 4 # 总体中先奶后茶的数量 N 4 # 抽取数量女士标记为先奶后茶的数量 # 计算至少答对 4 杯即全部答对的概率 p_value 1 - hypergeom.cdf(3, M, n, N) print(f8 杯全部猜对的概率单侧 p 值: {p_value:.6f}) print(f等价于 1 / C(8,4) {1 / np.math.comb(8, 4):.6f})输出8 杯全部猜对的概率单侧 p 值: 0.014286 等价于 1 / C(8,4) 0.014286这就是假设检验中 p 值的雏形——在原假设成立的前提下出现当前或更极端结果的概率。3.2 随机化、重复、区组“女士品茶”看起来只是个优雅的小实验但它背后包含了实验设计最核心的三个原则随机化哪 4 杯先奶后茶不是固定的而是随机决定。这样可以避免系统误差比如女士如果知道前 4 杯都是同一种做法就可能产生心理暗示。重复不只用 1 杯茶做测试而是用 8 杯让随机波动有被估计的可能。重复提供了误差估计的基础。区组如果实验条件不均匀比如不同批次的茶叶可以把条件相同的样本放在一个区组内比较减少无关变量的干扰。这三个原则放到今天的 A/B 测试中依然完全适用用户被随机分到实验组和对照组每组有足够的样本量保证统计功效如果用户来自不同渠道可以按渠道分层这就是一种区组思想。3.3 实验设计对现代工程的直接影响今天的机器学习项目中数据划分方式直接影响模型评估的可靠性。随机划分训练集和测试集就是随机化原则的延伸。如果你在数据划分时引入了顺序偏差或用户重叠那么模型的评估结果就会失真。这也是为什么有 GroupKFold、StratifiedKFold 这些“注意数据生成方式”的工具。费舍尔的实验设计思想本质上是在告诉你数据分析的质量上限在数据采集那一刻就已经决定了。这比任何花哨的模型都更重要。4. 方差分析ANOVA把变异拆解开如果说最大似然估计是费舍尔对统计推断最著名的贡献那么方差分析Analysis of VarianceANOVA就是他对实验数据最实用的贡献。4.1 为什么要“分析方差”我们比较多个组均值时最容易想到的方法是两两做 t 检验。但这里有个问题如果你有 5 个组两两比较需要做 C(5,2)10 次检验每次都假设施 0.05 的显著性水平那么至少出现一次“假阳性”的概率是 1 - 0.95^10 ≈ 0.401。就是说即使所有组根本没有差异你也有四成概率得到至少一个“显著结果”。ANOVA 的思路不是两两比较而是将总变异分解为组间变异和组内变异。如果组间变异相对组内变异足够大就认为组间存在显著差异。这既避免了多重比较问题也给出了一个关于“差异是否存在”的整体判断。4.2 方差分解的核心公式假设总共有 K 个组第 i 组有 n_i 个观测值。总平方和 SST ΣΣ (x_ij - x̄)^2组间平方和 SSB Σ n_i (x̄_i - x̄)^2组内平方和 SSE ΣΣ (x_ij - x̄_i)^2它们满足SST SSB SSE。F 统计量 (SSB / (K-1)) / (SSE / (N-K))其中 N 为总样本量。# 文件路径anova_demo.py import numpy as np import pandas as pd from scipy import stats # 构造三组模拟数据三组确实有差异 np.random.seed(123) group1 np.random.normal(loc10, scale2, size30) group2 np.random.normal(loc12, scale2, size30) group3 np.random.normal(loc13, scale2, size30) # 手写单因素 ANOVA def one_way_anova(groups): all_data np.concatenate(groups) grand_mean np.mean(all_data) N len(all_data) K len(groups) ssb 0.0 sse 0.0 for g in groups: n_g len(g) mean_g np.mean(g) ssb n_g * (mean_g - grand_mean)**2 sse np.sum((g - mean_g)**2) df_between K - 1 df_within N - K msb ssb / df_between mse sse / df_within F msb / mse p_value 1 - stats.f.cdf(F, df_between, df_within) return F, p_value, df_between, df_within, ssb, sse F_val, p_val, df1, df2, ssb, sse one_way_anova([group1, group2, group3]) print(fF 统计量 {F_val:.4f}) print(fp 值 {p_val:.6f}) print(f自由度 ({df1}, {df2}))我运行得到的结果大致是F 统计量 17.5368 p 值 0.000001 自由度 (2, 87)p 值小于任何常规显著性水平说明三组的均值存在统计显著差异。这个 F 检验就是 ANOVA 的核心决策依据。如果你想用现成库statsmodels提供了更完整的 ANOVA 表输出import statsmodels.api as sm from statsmodels.formula.api import ols # 整理成长表格式 df pd.DataFrame({ value: np.concatenate([group1, group2, group3]), group: np.repeat([A, B, C], repeats30) }) model ols(value ~ C(group), datadf).fit() anova_table sm.stats.anova_lm(model, typ2) print(anova_table)输出会是一张标准的 ANOVA 表包含 sum_sq、df、F、PR(F) 四列这张表在任何统计软件中都能见到。4.3 ANOVA 与线性模型的统一费舍尔最初的 ANOVA 是为农业实验发展出来的但后来人们发现ANOVA 本质上是一个线性模型的特例y_ij μ α_i ε_ij其中 μ 是总体均值α_i 是第 i 组的效应ε_ij 是随机误差。这个模型假设误差独立同分布且服从正态分布。后来这个模型被推广到多因素、交互效应、随机效应等情况也就是今天的混合线性模型。更重要的是ANOVA 把“数据处理”和“实验设计”联系了起来你必须先有随机化的实验组间均值的差异才可能归因于处理效应否则你只能观察到“相关”不能断言“因果”。这个思想对今天做因果推断的人来说依然是最基本的框架。5. 群体遗传学把统计推断带入进化生物学费舍尔对群体遗传学的贡献在非生物学背景的读者中往往被低估。事实上他在 1918 年发表的论文《孟德尔遗传假定下的亲属之间的相关性》是现代定量遗传学和群体遗传学的起点。后来他又在 1930 年出版了《自然选择的遗传理论》与霍尔丹、赖特一起被称为“群体遗传学三大奠基人”。5.1 费舍尔解决的问题孟德尔的遗传定律解释了性状如何代代相传但没有解释一个关键问题在一个有性繁殖的群体中遗传变异是如何维持的如果适应度高的等位基因会逐渐固定变异应该越来越少可自然界中变异却普遍存在。费舍尔用数学模型证明自然选择相当于一个统计过程等位基因频率在群体中的变化服从一个差分方程选择系数、突变率、群体大小都可以纳入这个方程。他还提出了“费舍尔基本定理”——自然选择对群体适应度的提升速率正比于群体在适应度上的加性遗传方差。更关键的是费舍尔首次将方差分析的思想引入遗传学把个体的表型变异分解为遗传效应和环境效应V_phenotype V_genetic V_environment这个分解公式是后来“遗传力”heritability概念的基础也是现代 GWAS 研究中遗传力估计的来源。5.2 从历史到现代方差分析在遗传学中的延伸今天的基因关联分析中混合线性模型成了标准工具用来校正群体结构和亲缘关系。模型里一个常见的随机效应项是加性遗传效应其协方差矩阵由亲缘关系矩阵Kinship matrix决定。这种“把总变异拆分为遗传方差和环境方差”的建模思想直接脱胎于费舍尔的方差分析框架。也就是说你如果在做动物育种、植物遗传评估或人类遗传流行病学每天都在使用的混合模型方程底层就是费舍尔在 1918 年提出的“表型方差分解”加后来 Henderson 发展的 BLUP 方法。5.3 用一个小模拟理解“遗传力”我们做一个简单的模拟假设 1000 个个体的表型由 100 个位点的加性效应和环境噪声共同决定然后估计表型方差中遗传方差所解释的比例。# 文件路径heritability_demo.py import numpy as np np.random.seed(42) n_individuals 1000 n_snps 100 n_effective 20 # 只有前 20 个位点有真实效应 # 基因型0/1/2 的加性编码模拟位点频率 0.3 genotypes np.random.binomial(2, 0.3, size(n_individuals, n_snps)).astype(float) # 真实遗传效应前 n_effective 个位点有效应其余为 0 true_effect np.zeros(n_snps) true_effect[:n_effective] np.random.normal(loc0.5, scale0.2, sizen_effective) # 遗传值 基因型 * 效应 genetic_value genotypes true_effect # 环境噪声 env_noise np.random.normal(loc0, scale2.0, sizen_individuals) # 表型 遗传值 环境噪声 phenotype genetic_value env_noise # 用线性回归近似估计遗传力这是演示不是严谨 GWAS 流程 from sklearn.linear_model import LinearRegression model LinearRegression().fit(genotypes, phenotype) predicted_genetic model.predict(genotypes) r_squared model.score(genotypes, phenotype) # 模拟真实遗传力遗传方差 / 表型方差 h2_true np.var(genetic_value) / np.var(phenotype) print(f真实遗传力按模拟设定: {h2_true:.4f}) print(f线性回归 R²捕获的方差比例: {r_squared:.4f})运行结果大致是真实遗传力按模拟设定: 0.2418 线性回归 R²捕获的方差比例: 0.1943从结果可以看到R² 会比真实遗传力低一些因为回归模型用有限样本和有限位点去逼近真实的遗传结构存在估计偏差。这个现象在现代 GWAS 中同样存在——你能用常见 SNP 解释的方差比例通常低于真实遗传力这就是“缺失遗传力”问题的一部分。费舍尔在一百年前提出的方差分解框架今天依然是理解这些问题的基础。6. 四把利器的统一信息、方差与模型选择读到这里你可能已经感觉到最大似然、ANOVA、实验设计、群体遗传学并不是四件孤立的事。它们共享同一个底层观念用概率模型表达不确定性用方差和信息量描述数据质量用可加模型分解总变异。6.1 费舍尔信息量作为统一线索最大似然估计依赖费舍尔信息量因为参数估计的精度由信息量决定。实验设计同样依赖信息量因为设计实验的目标之一就是最大化能从数据中提取的信息量。ANOVA 中的 F 检验本质上是在比较两个模型的解释能力包含组别效应的模型 vs. 不包含组别效应的模型。而遗传力估计则是在方差分解的意义上衡量遗传信息对表型的解释比例。从这里可以看到一条清晰的主线最大似然给定数据找出最优参数。信息量衡量参数估计能达到多精确。实验设计决定如何采集数据让信息量最大。方差分析把变异拆解成不同来源判断哪个来源显著。群体遗传学把方差拆解扩展到遗传与环境量化进化过程。这就是费舍尔作为一个统计学家最独特的成就他没在某个孤立问题上做一次性的贡献而是建立了一套可以贯穿多个学科的方法论体系。6.2 与现代机器学习的呼应今天我们在机器学习中使用的许多方法都能在费舍尔的框架里找到对应参数估计神经网络的训练本质上是最小化负对数似然这是最大似然原则的扩展。模型选择的偏差-方差权衡从均方误差分解出发就是 E[(y - ŷ)^2] Bias^2 Variance Noise这种分解和我们上面处理 SSTSSBSSE 的思维一脉相承。特征重要性评估F 检验、卡方检验这些筛选特征的方法正是 ANOVA 在不同分布假设下的推广。因果推断中的随机化实验随机对照试验RCT是 A/B 测试的根基这个设计原则就是费舍尔论文的现代版本。理解这个统一性比单独记忆某个公式更有价值因为它能让你在面对新问题时更清晰地判断这到底是个推断问题、设计问题还是分解问题。7. 常见误区与学习路径7.1 关于最大似然的常见误解误区一似然值越小模型越差。似然值本身的大小与数据量、分布假设都有关系不能跨模型直接比较。只有对同一组数据、同一分布族的对数似然才适合做比较比如用 AIC、BIC。误区二最大似然估计一定无偏。小样本下最大似然估计可能是有偏的。例如正态分布方差的 MLE 用的分母是 n 而不是 n-1导致方差被低估。样本量增大后偏差会消失这才有“渐近无偏”的说法。7.2 关于 ANOVA 的常见误解误区一ANOVA 的 F 检验显著就能说明“差异很大”。F 检验只回答“是否存在统计显著差异”不回答差异大小。用今天的话说p 值显著不等于效应量大。两组的均值差可能是 0.1 个单位但只要样本量足够大照样能被检测出来。误区二ANOVA 假设数据严格正态。标准 ANOVA 假设组内残差近似正态但轻微偏离正态在样本量较大时影响有限。真正影响较大的是方差齐性如果各组方差差异悬殊F 检验的结果可能不稳定。遇到这种情况可以考虑 Welch 方差分析。7.3 关于实验设计的实际建议如果你在互联网公司做 A/B 测试那么你每天都在使用费舍尔留下的框架。这里有几条非常实用的建议预先确定样本量。不要等实验结果出来再问“为什么没显著”。实验前用功效分析算出所需样本量这是实验设计的标准动作。随机化要真的随机。不要按用户注册时间先后分实验组和对照组因为早期和晚期用户的属性可能有系统差异。区分“显著性”和“业务意义”。统计显著只说明观察到的差异不太可能是随机波动不代表这个差异一定有业务价值。结果异常时先检查数据产生过程。很多 A/B 测试的“失败”其实不是策略无效而是埋点错误、样本重叠、分流不均等问题。先查数据再动模型。7.4 学习路径建议如果你想深入掌握费舍尔式的统计思维建议按这个顺序学习第一步理解假设检验和 p 值的含义能手工完成一个 t 检验。第二步理解最大似然估计并用 Python 实现简单模型的参数估计。第三步学习单因素、双因素 ANOVA理解方差分解。第四步学习实验设计三原则随机化、重复、区组。第五步如果对生物信息感兴趣可以了解混合线性模型和遗传力估计。推荐的入门材料包括《实验设计》原著的通俗解读、现代应用统计学教材以及一系列围绕“女士品茶”展开的统计史科普文章。不要一上来就啃数学推导先建立直觉再补理论。8. 对技术人的现实启示很多人学统计只是为了应付考试或者为了读懂论文里的 p 值。但如果你真的理解费舍尔的方法论它对日常工程实践有实实在在的帮助。第一个启示是指标定义和数据采集方式往往比分析模型更影响结论。你在设计一个推荐系统的离线评测时如果用随机划分而不是按用户划分评估结果就会偏乐观因为同一个用户的数据同时出现在训练集和测试集里模型相当于“见过”用户的偏好。这就是实验设计原则在机器学习数据划分中的直接应用。只用“准确率”一个指标评测模型就像只做描述统计不看不确定性一样容易得出误导性结论。第二个启示是统计显著性与实际效果要分开看。一个模型离线指标提升 0.1%在线 A/B 测试也可能“统计显著”因为样本量大到能检测微小差异。但 0.1% 的提升未必值得冒上线风险。费舍尔当年做农学实验时很在意效应量是否足够大而不是只盯着 p 值。这个习惯放到今天依然受用。第三个启示是建立一个“实验文化”比学习一堆统计公式更重要。费舍尔最有价值的遗产不是某个具体公式而是“先设计、再采集、后分析”的科学流程。如果你在团队里能推动这种工作方式——上线前想清楚假设、把实验分组随机化、把核心指标预先定义好——你实际上就是在用自己的方式延续费舍尔的方法论。第四个启示和机器学习模型选择有关。最大似然估计的现代继承者是负对数似然损失但大量深度学习实践中使用的正则化、早停、交叉验证都是在一个更广义的框架下规避过拟合。你不需要每次都手动推导似然函数但你应该知道什么时候用 AIC、BIC 选模型什么时候用交叉验证它们背后的逻辑是一致的评估模型对未知数据的解释能力而不是对训练数据的匹配程度。9. 总结与后续方向这篇文章从费舍尔面对的问题出发梳理了他在最大似然估计、实验设计、方差分析和群体遗传学四个方向的贡献并用 Python 代码演示了其中三个核心概念的实现。现在可以清楚地看到这四块工作不是零散的公式而是同一种思维方式的延伸用概率和方差的语言量化不确定性设计数据产生过程最终做出可检验的科学决策。如果你只记住一件事我希望是这一件统计方法的质量上限在数据产生之前就已经确定。费舍尔用实验设计改变了 20 世纪初的科学实验方式今天你在做 A/B 测试、特征工程、模型评估、甚至生物信息分析时依然在沿用他设定的游戏规则。下一步你可以从两个方向继续深入。如果你偏工程建议去读实验设计相关的现代实践书比如讨论 A/B 测试样本量计算、分层抽样和 delta 方法的资料如果你偏理论可以去啃费舍尔的《实验设计》和《统计方法与科学推断》或者结合现代教材理解最大似然估计的渐近理论。对于生物信息方向的读者可以接着学习混合线性模型、遗传力估计和 GWAS 的统计基础这些知识会让你看论文时更有底气。无论你走哪个方向费舍尔的“信息”和“方差”这两个核心概念都值得反复体会。它们是一百年后依然不过时的思维工具。建议把这篇文章收藏备用下次写实验报告、做 A/B 测试或者搭建模型评估流程时再回来对照一下你会有新的收获。
返回列表