
在经济学、生物学和医学等多个不同领域,研究人员经常会遇到一种令人困惑的数据状况:大量的零值与有偏的正值结果分布并存。这个“过量零值”问题对传统的统计方法构成了重大挑战,这些方法常常产生无意义的预测,或无法捕捉真实的基础数据生成过程。本文旨在通过全面介绍两部分模型——一种优雅而强大的统计解决方案——来弥补这一差距。我们将首先深入探讨“原理与机制”,解释这些模型如何将一个复杂问题分解为两个更简单、更易于管理的部分。随后,“应用与跨学科联系”一章将展示这个灵活的框架如何为现实世界现象提供更深刻的见解,从医疗保健利用率建模到理解生命本身的逻辑。
想象你是一位研究自然现象的科学家。你收集数据,并在绘制图表时,发现一个奇怪且反复出现的模式。无论你是分析年度医疗成本的健康经济学家,还是追踪每日黑巧克力消费量的营养流行病学家,抑或是计算肠道中特定微生物丰度的微生物学家,你都会看到同样的情况:一大堆零值。你的研究对象中,有大量的人没有产生任何费用,在某一天没有吃巧克力,或者体内没有那种特定的微生物。其余的数据,即正值,则散布在数轴上,通常形成一个长长的、有偏的尾部。。
你该怎么办?你的第一反应可能是求助于标准的统计工具。但你很快就会遇到麻烦。例如,一个经典的线性回归模型,它根本没有结果不能为负的概念。它可能会轻松地预测某人将产生-100美元的医疗费用,这显然是荒谬的。
“好吧,”你说,“我将使用一个为非负数据设计的模型。”但这些模型也有其自身的问题。像 Gamma 分布或对数正态分布这样的分布是为连续流动的数据设计的。它们的数学基因中没有空间容纳在单一点上的巨大离散尖峰。试图将连续分布强加于有一堆零值的数据,就像试图用一条光滑的毯子盖住一张中间竖着旗杆的床。你最终会扭曲毯子,并且在任何地方都得不到好的拟合效果。
即使是像泊松分布这样的标准计数模型,虽然它自然包含零,但也有其自身的严格规则。泊松过程规定了其平均值 和方差 之间的严格关系:它们必须相等。它还有一个特定的、内置的产生零的概率,即 。在现实世界的数据中,这些规则常常被惊人地打破。例如,在微生物组数据中,方差可能是均值的五倍(一种称为过度离散的现象),而观测到的零值比例可能是75%,而模型预期的仅为45%(一种称为零膨胀的现象)。。模型根本没有描述我们所看到的现实。
有人可能会建议一个临时技巧,比如对 而不是 建模。但这不是真正的解决方案,它只是一个烟幕弹。在 处的一堆零值,只是变成了在 处的一堆零值。根本问题——一个部分是离散尖峰,部分是连续涂抹的分布——依然存在。我们没有解决问题,只是给它换了个标签。
教训是明确的:我们的数据并非由单一、简单的过程生成。它们在讲述一个由两部分组成的故事。而要理解这个故事,我们需要一个能同时倾听这两个部分的模型。
科学中最美的想法往往是最简单的。与其寻找一个把所有事情都做得一团糟的复杂模型,不如将问题拆分为两个我们能很好解决的简单问题?这种“分而治之”的策略正是两部分模型的精髓所在。
这一见解源于一个基本的概率法则,即全期望定律。这个名字听起来很花哨,但它的直觉却非常美妙。它指出,某个量 的总体平均值可以这样分解:
用大白话说就是:某物的平均量等于拥有任何该物的概率,乘以在那些拥有它的人中的平均量。想一下如何计算一个群体中看医生的平均次数。。这个公式告诉我们,它就是去看医生的总人数比例,乘以那些确实去看医生的人的平均就诊次数。
这个方程不仅为我们提供了一种计算平均值的方法,它还为我们提供了一个模型的蓝图。它将我们单一、困难的问题分解为两个不同的、可管理的问题:
“是否”问题(外延边际): 是什么决定了一个人是否具有非零值?这是一个简单的“是/否”问题。一个人是否去看医生,是或否?他们是否产生了任何医疗费用,是或否?对于这个问题,我们可以使用一个二元选择模型,比如逻辑斯谛回归,它非常适合对概率进行建模。
“多少”问题(内涵边际): 在给定一个人有非零值的情况下,是什么决定了其值的大小?他们有多少次就诊?他们的费用有多高?对于这个问题,我们只看那些具有正值的人的数据。由于这些值通常是有偏的,我们可以使用灵活的模型,如Gamma 回归或对数转换线性模型,这些模型专为正值、有偏数据设计。
这种方法的力量在于其灵活性。一个变量可能影响决策的一个部分,但不影响另一部分,或者可能以不同方式影响两者。考虑一下看医生的自付费用。。高额的共付额可能会强烈阻止某人进行第一次就诊(对“是否”问题有很大影响)。但一旦他们病得足够重去看病,后续就诊的次数可能由医生的建议决定,而不是价格(对“多少”问题影响很小或没有影响)。单一模型将难以捕捉这种细微差别,但两部分模型却能优雅地处理它。通过分别对这两个过程建模,我们得到了一个更丰富、更真实的对潜在行为的描绘。
随着我们深入研究,我们发现即使是零值本身也可能有其故事。到目前为止,我们一直将所有零值视为相同:它们代表未能跨越从“零”到“正”的单一障碍。这是 Hurdle 模型(或称跨栏模型)的逻辑。这是一个清晰的两阶段过程:首先你决定是否要跨越障碍,如果跨越了,再决定跳多高。
但如果存在两种根本不同类型的零值呢?这就引出了一个稍微更复杂且引人入胜的想法:零膨胀模型。。想象一下你正在研究一位垂钓者一年中捕获的鱼的数量。你的数据中的一些零值将来自那些去钓鱼但一无所获的垂钓者。这些是“抽样零”。但另一些零值则来自那些甚至不拥有鱼竿的人。他们根本不属于垂钓人群。这些是“结构性零”。
零膨胀模型是一种混合模型,它明确承认这两种通往零的路径。对于每个人,模型都想象一次抛硬币。
因此,观测到零的总概率是这两种可能性的总和:
这个框架常用于零膨胀泊松(ZIP)或零膨胀负二项(ZINB)模型中,其功能极其强大。它允许我们分别提出问题:哪些因素决定某人是否属于“风险”人群( 的逻辑斯谛部分),以及对于那些属于风险人群的人,哪些因素影响事件发生的频率(计数部分)。
构建这些复杂的模型就像当一名侦探;它有其自身的一系列挑战,需要巧妙的工具来解决。 一个微妙的问题是可识别性。当你在一个零膨胀模型的两个部分都包含相同的解释变量——比如病人的年龄——会发生什么?。模型可能会感到困惑。如果老年人有更多的零计数,是因为他们更有可能是“结构性零”(在逻辑斯谛部分),还是因为他们处于“风险”组但事件发生率较低(在计数部分)?数据可能没有足够的信息来清晰地分离这两种效应,导致模型各部分之间出现“拉锯战”,参数估计也不稳定。统计学家已经开发出诊断方法来检测这种情况,比如通过分析似然函数来查看不同效应组合是否产生几乎相同的结果,或者在贝叶斯分析中检查参数估计值之间的相关性。。这是最高水平的统计侦探工作。
另一个挑战是确定我们对结果的确定性有多大。对于这些模型,计算标准误的数学可能变得复杂。在这里,bootstrap(自助法)提供了一个优雅而强大的解决方案。。这个被称为非参数成对自助法的想法,简单得美妙。把数据集中的每个主题——他们的协变量和他们的结果——想象成一个单一、不可分割的数据“乐高”积木。为了理解结果中的不确定性,你通过有放回地随机抽取 个这样的积木,创建数千个新的“自助”数据集。一些原始主题会被多次选中,另一些则完全不会被选中。然后,你在每个新数据集上重新拟合整个两部分模型,并收集结果。你在这数千次拟合中看到的变异,为你提供了一个直接、稳健的原始估计不确定性的度量。这是一项计算上的杰作,使我们能够在不迷失于极其复杂的公式的情况下,做出可靠的推断。
两部分模型的基本原则——识别并分别建模不同但相互关联的过程——是现代统计学中最富有成果的思想之一。它远远超出了简单的零值情况。 考虑这样一个挑战:随时间追踪患者的生物标志物(如肿瘤标志物),同时还想知道该生物标志物的水平如何影响他们发生临床事件(如疾病进展)的风险。。一个幼稚的两阶段方法——首先对生物标志物的轨迹进行建模,然后将这些预测值代入生存模型——是充满危险的。它会因测量误差(预测并非完美)和高风险轨迹患者更可能发生事件并“退出”研究(从而使数据产生偏差,即信息性删失)而产生偏误。
解决方案是两部分思想的推广:联合模型。它构建了一个单一、统一的似然函数,同时描述生物标志物随时间变化的路径和事件发生的风险。这两个过程通过共享的潜变量(随机效应)联系在一起,很像 NCI 营养模型的两个部分。。通过将纵向过程和生存过程一同建模,该模型正确地解释了测量误差,并利用关于事件发生时间(或是否发生)的信息来更准确地描绘整个生物标志物的轨迹。这是一个绝佳的例子,说明了承认不同数据生成过程之间的相互关联性,如何导向对世界更深刻、更准确的理解。从一堆简单的零值到生命与死亡的复杂动态,“分而治之”的原则,即通过对部分建模来理解整体的原则,揭示了统计推理的内在统一性与美感。
在理解了两部分模型的机制之后,我们现在可以踏上一段旅程,去看看它们存在于何处,以及它们的作用。你可能会倾向于认为它们是一种小众的统计工具,是为解决数据分析师“零值过多”头痛问题的巧妙修复。但这就像说望远镜只是为了解决“东西太远”的问题一样。实际上,望远镜是一种看待宇宙的新方式。两部分模型也是如此。它是一个镜头,揭示了无数过程中固有的两幕结构,从自然界中生命与死亡的宏大戏剧,到人类选择的微妙经济学,再到人工智能的复杂逻辑。
让我们从田野里开始,观察一种简单的多年生植物。从进化的角度来看,它的最终目标是传递其基因。我们可以通过其终身繁殖成功率(Lifetime Reproductive Success),即 ,来衡量这一点。是什么决定了这种成功?植物面临两个基本的、相继的挑战。首先,它必须在严冬、干旱和疾病中存活下来。这是一个二元结果:存活()或死亡()。其次,如果它存活下来,它必须产生种子。这是它的繁殖力(fecundity),,一个可以是零、一或许多的计数。植物的总成功是这两幕的产物:。如果它在第一幕中失败了(),无论它在第二幕中有多大潜力,它的成功都为零。 一个幼稚的统计模型可能会试图用植物的性状——比如它的高度或叶子大小——一步预测 。但这个模型会对底层的生物学视而不见。它会把帮助植物度过冬天的性状和帮助它将能量分配给种子生产的性状混为一谈。而两部分模型,以其自身的结构,尊重了这一生物学现实。它构建了一个两幕模型。第一部分使用逻辑斯谛回归来提问:哪些性状预测了存活概率 ?第二部分,只看存活者,使用一个计数模型来提问:在存活下来的植物中,哪些性状预测了它们产生的种子数量 ?总的预期成功率就变得非常简单:进入第二幕的概率,乘以在第二幕中的预期表现,。这不仅是一个拟合得更好的模型,更是一个更真实的模型,反映了生命本身的序列逻辑。 同样的逻辑也适用于我们。考虑一下健康经济学领域。为什么有些人频繁看医生,而另一些人根本不去?我们再次看到了一个两幕剧。第一幕是首先决定寻求医疗服务。你有交通工具去诊所吗?费用能负担得起吗?你有保险吗?这些因素决定了你是否能克服进入医疗系统的最初“障碍”。第二幕涉及医疗服务的强度。一旦你成为病人,你需要多少次就诊?这可能更多地取决于你潜在的健康状况。两部分模型允许公共卫生官员理清这些效应。他们可以看到哪些健康的社会决定因素是获取服务(第一部分)的障碍,而哪些因素驱动了那些已经获得服务的人的使用率(第二部分)。这种区分对于设计有效和公平的卫生政策至关重要。 该框架不仅限于计算就诊次数。想象一下尝试对年度医疗费用进行建模。在某一年里,大部分人口可能没有任何费用。而对于那些有费用的人来说,金额是一个连续的、非负的数字,并且通常高度有偏——少数有严重疾病的个体可能会有极高的费用。试图用单一的线性回归来对此建模是徒劳的;模型在零值堆和正成本长尾之间被撕裂。两部分模型优雅地解决了这种紧张关系。第一部分:一个逻辑斯谛模型,用于处理产生任何费用与无费用的二元问题。第二部分:对于那些有正费用的人,我们使用一个更合适的工具,比如 Gamma 广义线性模型。Gamma 分布天然适合像成本这样右偏的正值数据,而对数连接 确保我们对成本的预测总是正的。结果是一个合理、稳健的模型,它尊重了数据的双重性质。
到目前为止,我们已经看到两部分模型是处理自然分两阶段产生的结果的一种方式。但“两部分”这个想法更为根本。它是一种思考链式依赖关系、将复杂问题分解为更易处理部分的方式。这种逻辑远远超出了零膨胀数据的范畴。 考虑一下自动驾驶汽车中人工智能系统的任务。为了让汽车对行人做出反应,其视觉系统必须首先检测到有一个感兴趣的物体,并将其与背景噪音区分开来(如果检测到则 ,否则 )。其次,它必须将该物体分类为行人(如果是行人则 C=0Y = Z \cdot C\bar{A}_c$) 的真实因果效应,但采纳该项目的社区与未采纳的社区存在系统性差异。简单的比较是有偏的。为了解决这个问题,计量经济学家和流行病学家开发了一类强大的“两阶段”方法,例如工具变量分析和控制函数法。 在第一阶段,他们使用一个“工具变量”——一个影响项目采纳但对健康结果没有其他影响的变量——来分离出项目实施中“干净”或“外生”的变异来源。在第二阶段,他们仅使用这种干净的变异来估计项目对健康结果的影响。虽然其数学原理与我们的零膨胀模型不同,但精神是相同的。这是将一个难题(从混乱数据中估计因果效应)分解为两个阶段:首先,分离出一个干净的信号;其次,使用该信号找到答案。这展示了统计推理中一种美妙的统一性:无论我们是在为植物繁殖、医疗成本还是公共政策的效果建模,将一个过程分解为其基本序列部分是我们拥有的最强大工具之一。
我们的探索从一个简单的数据特征——过多的零值——带我们走向了科学和工程领域的一个深刻的组织原则。两部分模型不仅仅是一个统计技巧。它是一个镜头,鼓励我们去寻找周围世界中的潜在结构。它要求我们思考事件的顺序、必须跨越的障碍,以及连接一个结果与下一个结果的依赖关系。通过这样做,它不仅提供了更准确的预测,而且为我们试图解释的现象提供了更深刻、更令人满意的理解。