
科学数据如同古代史料,鲜有完美。从失灵的传感器到被跳过的问卷题目,数据集中常常充满了缺失值。忽略这些缺失信息意味着丢弃大量知识,然而,用朴素的方法填补空白可能比留着它们更加危险。本文旨在应对处理缺失数据这一关键挑战,介绍插补模型的原理和强大功能——这是一个精妙且可靠的框架,能帮助我们从不完整的数据中洞察全局。
本文将引导您深入了解插补的科学。首先,在“原理与机制”一章中,我们将揭示为何均值插补等简单方法会失败,并导致虚假的确定性和有缺陷的结论。接着,我们将探讨多重插补(MI)这一优雅的解决方案,该方法通过接纳不确定性来提供更真实、更可信的结果。随后,“应用与跨学科关联”一章将展示这些模型如何给遗传学、生态学乃至材料科学等领域带来革命性变化,将缺失数据问题转变为高效实验设计的一项特色。
想象一下,你是一位考古学家,发现了一批古代泥板。它们共同讲述着一个宏伟的故事,但令人沮丧的是,许多泥板都已破碎。单词、句子,甚至整个段落都缺失了。你会怎么做?你会简单地丢弃每一块破碎的泥板,然后尝试用少数几块完好的拼凑出一个故事吗?那样你会丢失大量信息。你会在空白处写上“词语缺失”吗?那对理解叙事毫无帮助。还是,作为一名专家,你会根据语法、上下文以及残存的碎片,对缺失的词语做出有根据的猜测?
这正是我们每天在科学研究中面临的挑战。我们的数据,就像那些泥板一样,鲜有完美。从环境研究中失灵的传感器,到调查对象跳过一个敏感问题,我们的数据集充满了漏洞。一个插补模型就是我们用来做出这些有根据猜测的工具——一种有原则地填补缺失值、从而让我们洞察全局的方法。但我们将看到,我们填补这些漏洞的方式既是一门精巧的艺术,也是一门深奥的科学,一种朴素的方法可能比留下空白更加危险。
让我们来看一个研究土壤细菌的生态学家团队。他们拥有来自原始森林和附近农场的样本,并且已经对存在的不同类型细菌进行了计数。但对于一份森林样本,由于技术故障,一种特定细菌(我们称之为 OTU-98)的计数缺失了。第一反应可能是使用均值插补:计算所有其他样本中 OTU-98 的平均计数,然后将这个数字填入。
这听起来简单,也听起来合理。但这是一个陷阱。假设 OTU-98 在农场中很丰富,但在森林中完全不存在。通过对农场和森林数据取平均值,我们可能会插补一个像 40.6 这样的值。首先,小数部分有点可笑——细菌计数不可能有 0.6。但真正的灾难在于生物学层面。原始数据可能显示,在另一份森林样本中,该细菌的计数为 0。零不仅仅是一个数字;它是一条关键信息,意味着“这个物种不在这里”。通过插补一个非零值,我们刚刚伪造了证据,错误地声称该细菌存在于它可能真正缺席的生境中。我们不只是填补了一个空白,而是改写了生态学的故事。
这揭示了我们的第一条深层原则:插补模型必须尊重数据的背景和性质。这不仅仅是关于数字,更是关于这些数字所代表的意义。
但是,即使是比均值更复杂的猜测,填入一个单一的数值也存在一个更深层、更微妙的缺陷。当我们写下一个单一的值时,我们的行为就好像我们确信这就是那个真实、缺失的值。这是一种幻觉,它会带来危险的后果。
想象一下,你试图描述一群人的身高变化,但有些人的身高是未知的。如果你用群体的平均身高替换每一个未知身高,你就人为地让这个群体看起来比实际情况更整齐划一。你压缩了数据的自然分布范围,即方差。
这种人为减小的方差会毒害任何后续的统计分析。我们所依赖的不确定性度量——比如标准误和置信区间——都是从方差计算出来的。如果我们人为地缩小了方差,我们的标准误就会过小,置信区间就会过窄。我们可能会运行一个统计检验并得到一个极小的 p 值,从而宣称一个“显著发现”,而实际上这种“显著性”只是我们在插补过程中虚假确定性所造成的人为结果。我们欺骗了自己。
那么我们该如何解决这个问题呢?现代的答案是一个优美且在理智上更可靠的理念,称为多重插补(MI)。MI 的高明之处在于它不试图为缺失数据点找到唯一的“正确”值,而是坦然接受我们的不确定性。
这个过程如同一个三步舞:
插补步骤:我们不创建一个“完整”的数据集,而是创建多个——可能是 5 个、20 个或 100 个。对于每个数据集,我们通过从一个合理数值的概率分布中随机抽样来填补缺失值。这些插补后的数据集,每一个都是对现实世界不同但同样貌似合理的版本。一位调查有线索缺失案件的侦探不会只满足于一种理论;他们会探索多种貌似合理的场景。这正是我们对数据所做的事情。
分析步骤:然后,我们将原本要进行的分析——无论是 t 检验、线性回归,还是训练机器学习模型——在每一个完整数据集上独立运行。如果我们创建了 20 个数据集,我们就会得到 20 组不同的结果。
合并步骤:最后,我们使用由 Donald Rubin 开发的一套规则,将这 20 组结果合并成一个单一的最终答案。最终的估计值(如回归系数)通常只是这 20 个独立估计值的平均值。但神奇之处在于我们计算不确定性的方式。
我们最终答案的总不确定性来自两个来源。首先是插补内方差(within-imputation variance),它只是我们在每次分析中发现的统计不确定性的平均值(也就是在完整数据下我们会有的抽样误差)。但至关重要的是,还有插补间方差(between-imputation variance, )。它衡量的是结果在不同插补数据集之间的变异程度。如果这个方差很大,就直接表明缺失数据给我们的分析带来了巨大的不确定性。最终合并后的不确定性估计结合了这两个来源。
这是一个深刻的转变。多重插补并没有让缺失数据带来的不确定性消失,而是将其量化并融入最终结果中。它为我们提供了更可靠、更真实的置信区间,保护我们免受虚假确定性的幻觉影响。
整个过程的成功取决于我们在第一步中生成的“合理数值”的质量。这由我们的插补模型决定。建立一个好的模型需要我们仔细思考数据为何会缺失。
统计学家将缺失数据分为三种主要类型。最糟糕的情况是非随机缺失(MNAR),即一个数值缺失的原因取决于该数值本身。例如,如果收入极低的人更可能拒绝回答收入问题,那么数据就是 MNAR。这是一个巨大的问题,因为观测到的数据不再是代表性样本,标准的插补方法会产生有偏倚的结果(在这种情况下,它们会高估平均收入)。
一种更容易处理的情况是随机缺失(MAR)。这个名字起得容易让人混淆的假设,并不意味着数据是随意缺失的。它指的是某个数值的缺失概率可以完全由我们已观测到的其他信息来解释。例如,如果研究人员决定对学历低于高中的参与者跳过收入问题,那么收入的“缺失性”仅取决于已观测到的变量——教育水平。标准的多重插补方法在 MAR 假设下是有效的。
因此,插补艺术的一个关键部分是在我们的插补模型中包含正确的变量。我们不仅应该包括我们计划在最终分析中使用的变量,还应该包括任何可能预测缺失值或预测“缺失性”本身的辅助变量。在我们的收入例子中,将像“信用评分”这样的变量包含在插补模型中——即使我们最终的分析并不关心信用评分——也可能至关重要。如果信用评分既与收入相关,又与某人报告收入的可能性相关,那么包含它有助于使 MAR 假设更具合理性,并能带来更准确的插补结果。
但如果你在多个列中都有缺失值——年龄、血压、胆固醇等等,该怎么办?为所有这些变量定义一个单一的联合概率分布可能极其复杂。这时,一种强大而流行的技术——链式方程多重插补(MICE)就派上用场了。
MICE 不是建立一个庞大的模型,而是为每个有缺失数据的变量建立一个独立的插补模型。然后它通过迭代的方式在这些模型之间循环。
血压和[胆固醇](/sciencepedia/feynman/keyword/cholesterol)作为预测变量来插补缺失的年龄。年龄和[胆固醇](/sciencepedia/feynman/keyword/cholesterol)来插补缺失的[血压](/sciencepedia/feynman/keyword/blood_pressure)。年龄和[血压](/sciencepedia/feynman/keyword/blood_pressure)来插补[胆固醇](/sciencepedia/feynman/keyword/cholesterol)。MICE 的美妙之处在于其灵活性。每个变量的模型都可以根据其特定类型量身定制。要插补一个连续变量,我们可能会使用线性回归。要插补一个二元 Yes/No 变量,我们使用逻辑回归。而要插补一个有多个无序选项的分类变量,如 杂食、素食 或 纯素,我们会使用多项逻辑回归。
插补不是一个通用的、一刀切的程序。一个好的统计学家知道,插补模型必须与最终的分析模型“一致”(congenial),或者说兼容。它必须尊重数据的内在结构。
考虑学生考试成绩的数据,其中学生嵌套在学校内。同一所学校的学生彼此之间比来自不同学校的学生更相似。这种聚类是数据的一个关键特征,由组内相关系数(ICC)来衡量。如果我们使用一种忽略学校结构的朴素插补方法,仅仅从分数的总体分布中抽取数值,我们就会系统性地破坏插补数据中的这种聚类。结果呢?我们会严重低估真实的 ICC,破坏了我们本打算研究的结构。一个恰当的插补模型本身必须是一个多层模型,以尊重数据的层级结构。
同样,如果我们的最终分析计划研究一个交互项——例如,经验对生产力的影响如何随能力得分的变化而变化——我们的插补模型必须知道这一点。通常,仅仅分别插补 Experience 和 Aptitude 然后将它们相乘是错误的。这会扭曲交互作用所代表的微妙关系。一个更好的方法往往是先创建交互项,然后让插补算法直接将其作为一个独立的变量进行插补,从而保留这种关键关系。
最后,至关重要的一点是,要理解插补不是一个在开始时做一次就可以忘记的简单数据清理步骤。它是统计推断中不可或缺的一部分。
一个常见且毁灭性的错误,尤其是在机器学习中,是在将整个数据集分割成用于交叉验证的训练集和测试集之前就进行插补。这是一种作弊行为。插补算法使用了所有样本的信息——包括那些将成为你测试集的样本——来为你的训练集中的插补值提供信息。这种信息泄露意味着你的模型在训练期间偷窥了测试数据。其后果是,你的模型性能会看起来比实际好得多,让你对其在新的、未见过的数据上的表现产生危险的过度乐观估计。唯一正确的流程是在交叉验证循环内部执行插补,即仅使用特定折叠(fold)的训练数据来构建插补模型。
从一个简单但有缺陷的想法出发,我们探索了一个精妙且可靠的框架,用以处理现实世界数据的不完美。多重插补并未给予我们“真相”,但它做了一件可以说更重要的事情:它告诉我们关于自身不确定性的真相。
在了解了插补的原理之后,人们可能会留下这样的印象:这些模型不过是一种巧妙的统计修补术,是整理杂乱数据集时不得已而为之的手段。但这样想就只见树木,不见森林了。这些思想的真正美妙之处不在于修复破损,而在于它们让我们能够发现什么。处理缺失数据不仅仅是填补漏洞,更是学会解读沉默。它将不完整信息这一令人沮丧的现实,转变为进行科学探究的强大透镜。其应用不仅仅是技术修复,它们是新的观察方式、新的实验设计方法、以及新的理解世界的方式,从我们自身 DNA 的密码延伸到材料科学的前沿。
也许没有任何领域比现代遗传学更能体现插补的革命性。想象一下,你试图阅读一个巨大的古代图书馆,在每一卷书中,都有一部分字母被随机弄花了。这正是全基因组关联研究(GWAS)面临的挑战,我们可能只测量了构成我们 DNA 的数十亿个碱基中的一百万个遗传标记(SNP)。如果我们恰好没有测量到与某种疾病相关的那个关键“字母”,我们又怎么可能找到它呢?
这时,插补模型施展了一个近乎魔术的技巧。通过理解基因组的“语言”——即彼此靠近的碱基倾向于以称为单倍型的长“词”和“短语”形式一起遗传——我们可以对我们未曾看到的碱基做出极其准确的预测。使用高质量的参考手稿,比如 1000 Genomes Project,插补算法可以查看我们在某一个体中确实测量到的碱基序列,在参考库中找到匹配的“短语”,然后直接读出缺失的碱基。这种统计戏法让研究人员能够检验与数百万额外遗传变异的关联,从而在不增加任何额外实验室工作的情况下,极大地提高了他们研究的效力。
但这种魔术有其局限性,理解这些局限性将我们带入一段关于我们自身历史的迷人旅程。为什么一个对欧洲血统个体完美无缺的插补,对于西非血统的个体来说准确性会降低?答案在于群体遗传学。在“走出非洲”迁移之后,现代欧洲人的祖先经历了一次种群瓶颈,这降低了遗传多样性,并导致了更长、更均一的单倍型“短语”。相比之下,非洲人群保留了更深厚、更多样化的单倍型库。因此,一个固定大小的参考面板不可避免地只能捕捉到非洲存在的总单倍型多样性的一小部分,这使得插补时更难找到完美匹配,特别是对于稀有变异。因此,一个统计工具的准确性与人类迁徙的历史紧密相连,提醒我们数据永远无法脱离其背景。
当我们审视我们基因组中最复杂多变的区域:主要组织相容性复合体(MHC),即掌管我们免疫系统的 HLA 基因所在地时,风险变得最高。准确确定一个人的 HLA 类型对于理解自身免疫性疾病和器官移植相容性至关重要。通过插补,我们可以从附近的 SNP 数据中以惊人的精确度推断出这些复杂的 HLA 等位基因。这不是猜测,而是一门定量科学。我们可以严格地测量插补数据的质量,例如通过计算插补的遗传剂量与经测序验证的真实基因型之间的预期相关性平方()。像 这样的公式,其中 是等位基因频率, 是单个单倍型插补的平均不确定性,使我们能够为我们的置信度赋予一个精确的数值,将模糊的预测转变为可靠的科学测量。
虽然遗传学提供了一个壮观的展示,但插补的原则贯穿整个生物学。但能力越大,责任越大。一个朴素的插补模型可能比没有任何模型更危险。考虑一个蛋白质组学实验,当一种蛋白质的丰度低于仪器的检测限时,其丰度被记录为“缺失”。一种简单粗暴的方法可能是用一个小的固定数值(如检测限本身)来替换所有这些缺失值。结果可能是一场灾难。如果一种药物治疗真的使蛋白质水平从略高于检测限降至略低于检测限,这种朴素的插补会造成平均丰度出现人为的急剧下降,从而“发现”一个完全是由拙劣统计方法造成的人为显著效应。这是一个至关重要的警示:插补模型必须尊重数据缺失的原因。
在单细胞生物学的前沿,插补的力量与风险之间的这种张力得到了充分展示。当我们测量数千个单细胞的基因表达时,这个过程是如此精细,以至于许多表达的基因根本没有被检测到,导致数据集中充满了零。插补方法可以通过在相似细胞间共享信息来“填补”这些缺失,帮助揭示协调细胞功能的基因之间的微妙相关性。然而,这种信息共享的行为本身可能是一把双刃剑。通过使一个组内的细胞看起来更相似,插补会人为地减少自然的生物学变异。这种方差的缩小会夸大下游分析中的统计显著性,导致研究人员错误地得出结论,认为某个基因在健康细胞和患病细胞之间存在差异表达 [@problem_gittid:1465867]。我们用来看得更清楚的工具,如果我们不小心,也可能会制造出美丽的幻觉。
从细胞的微观世界,让我们将视野放大到整个生态系统的尺度。公民科学项目现在产生了海量的数据集,例如由志愿者提交的数百万份观鸟清单。这些数据是一座金矿,但它很杂乱。一位专家可能会花一个小时精心调查一个栖息地,而一个随意的观察者可能在瞥了一眼五分钟后就提交了一份清单。这种“努力程度”的差异通常没有被记录下来,而它对一个物种是否被检测到有关键影响。我们如何才能比较这些观察结果呢?有原则的插补方法来解救了。通过建立一个模型,使用可观察的代理变量——如报告的物种数量、一天中的时间,甚至观察者已知的习惯——来预测缺失的努力数据(例如,持续时间),我们可以在统计上解释这种变异性。像多重插补这样的复杂方法让我们能够做到这一点,同时正确地传播不确定性,甚至允许我们进行敏感性分析,以检验如果数据缺失的方式与我们假设的不同,我们的结论会发生怎样的变化。这是一个将成千上万人的热情转化为严谨科学的美丽范例。
也许插补模型所激发的思想上最深刻的转变,在于我们如何设计实验。我们倾向于将缺失数据视为不幸的意外,一个事后需要处理的缺陷。但如果我们能利用它来为我们服务呢?如果我们计划让数据缺失呢?
想象一项长期的临床研究,需要在数年内追踪数百名患者的一种昂贵的生物标志物。在每个时间点都测量每位患者可能会贵得令人望而却步。巧妙的解决方案是一种“计划性缺失”设计。研究者可以在研究的开始和结束时测量所有患者,但在中间的时间点只测量随机的、重叠的患者子集。乍一看,这似乎创建了一个极其不完整的数据集。但由于缺失完全在实验者的控制之下(根据设计,它属于随机缺失),像多重插补这样的有原则的方法可以利用来自已观测时间点和廉价辅助测量(如年龄或认知分数)的信息来填补空白,并以惊人的准确性为所有患者重建完整的轨迹。这是一种视角的完全颠覆:缺失不再是一个缺陷,而是一种更高效、更经济的研究设计中的一个优雅特性。
这种将插补深度融入科学过程的做法,要求我们对自己的工具有成熟的理解。我们必须确保我们的插补模型和我们的最终分析模型是“一致的”(congenial)——即它们关于世界中变量如何关联的假设不相互矛盾。此外,随着我们开发出越来越多的插补方法,我们需要一门严谨的科学来比较它们。设计一个受控实验来分离插补方法的选择如何因果地影响下游结果(如机器学习模型的特征重要性得分),需要对所有其他变量进行严谨的控制:使用固定的数据分割,防止任何来自测试集的信息泄露,并保持模型的训练过程恒定。我们不只是在使用模型;我们正在建立一门如何明智地使用它们的科学。
在所有这些不同的领域中,一个统一的主题浮现出来。选择正确的插补策略完全取决于理解数据为何缺失。一个来自材料科学的绝佳例子将这一切联系在一起。在对新材料的高通量搜索中,一个机器人可能会生成一个包含数千种化学成分属性的表格。在这张单一的表格中,我们可以发现所有三种主要的缺失“类型”并存。
一个缺失的带隙测量值可能是由于机器人的随机移液错误。这个小故障与材料的任何属性都无关。这是完全随机缺失(MCAR),一个简单的随机插补,比如从观测到的带隙分布中抽样,通常就足够了。
一个缺失的形成能,它来自复杂的量子力学计算,可能发生是因为对于含有某些重元素的材料,计算更容易失败。由于我们知道哪些材料含有这些元素,所以缺失与已观测到的数据有关。这是随机缺失(MAR),它需要一个基于模型的插补,以材料的成分为条件。
一个缺失的电导率值可能发生是因为仪器根本无法测量低于某个阈值的值。数据之所以缺失,是因为它自身的值——它太低了以至于无法被看到。这是非随机缺失(MNAR),它需要一个特殊的模型,如删失模型或 Tobit 模型,来明确考虑这个检测限。
这个教训是深刻的。插补并非一刀切的解决方案。它是一个诊断过程。通过检查空缺的性质,我们选择合适的工具来填补它。它是一种用于推理已知与未知的语言,一个用于表达不确定性的框架,以及一门将不完美转化为洞察力的学科。它提醒我们,在科学中,如同在生活中一样,只要我们学会倾听,缺席的东西往往能告诉我们和在场的东西一样多的信息。