try ai
科普
编辑
分享
反馈
  • 零膨胀模型:理解过多零值数据指南

零膨胀模型:理解过多零值数据指南

SciencePedia玻尔百科
核心要点
  • 零膨胀模型通过区分结构性零值(不可能发生的事件)和抽样零值(偶然发生),解决了计数数据中零值过多的问题。
  • 零膨胀模型假设数据是两个总体(“恒为零”组和“风险”组)的混合,而跨栏模型则假定所有个体都经历一个两步过程。
  • 在 ZIP、NB 和跨栏模型等模型之间的选择,应基于潜在的科学机制,并通过 Vuong 检验或 AIC/BIC 等统计检验来确认。
  • 这些模型通过将影响事件发生的因素与影响事件频率的因素分开,为生态学、公共卫生和基因组学等领域提供了更深刻的见解。

引言

在数据分析的世界里,对事件进行计数似乎是一项直截了当的任务。从栖息地中的物种数量到患者的门诊次数,计数数据无处不在。长期以来,统计学家一直依赖泊松分布等模型来理解这些计数。然而,一个常见且令人困惑的问题是,数据中包含的零值远比这些标准模型预测的要多——这种现象被称为“零值过多”或“零膨胀”。这不仅仅是一个统计异常,它是一个信号,表明背后有一个更丰富的故事有待讲述,一个区分不同种类“无”的故事。

本文旨在作为一份全面的指南,帮助读者理解和应用专为应对这一挑战而设计的模型。通过探索零膨胀框架的概念和实践基础,本文解决了传统计数模型留下的关键知识空白。首先,在“原理与机制”部分,我们将剖析零值过多的问题,介绍结构性零值和抽样零值的关键概念,并详细阐述零膨胀模型和跨栏模型这两种优雅的叙事。然后,在“应用与跨学科联系”部分,我们将穿越不同的科学领域——从生态学到基因组学——看看这些模型如何在实践中被用来揭示更深刻、更细致的见解。读完本文,您不仅会理解这些模型的机制,还会领会到,通过对数据中的零值提出正确的问题,可以获得多么强大的分析能力。

原理与机制

过多零值的难题

想象一下,你是一位正在计数的科学家。计数的对象可以是任何东西:工厂批次中的次品数量、一个小时内通过某个安静十字路口的汽车数量,或者在一个更严肃的场景中,一位患者在医院获得的感染次数。计数似乎很简单,而且很长一段时间以来,统计学家们都有一个非常优雅的工具来处理这个问题:​​泊松分布​​。它是独立发生且平均速率恒定的事件的自然法则。如果你知道事件的平均数,比如说 μ\muμ,泊松分布就能告诉你观察到恰好 0,1,2,0, 1, 2,0,1,2, 或任何其他数量事件的概率。

但有时,自然界并不遵循如此简单的规则。当我们收集数据时,会发现一些奇怪的现象。让我们来看一个来自医院感染追踪研究的真实案例。研究人员发现,每位患者的平均感染次数很低,大约为 0.80.80.8 次。根据这个平均值,一个简单的泊松模型会预测大约 45% 的患者应该没有感染,这个数值是按 exp⁡(−0.8)\exp(-0.8)exp(−0.8) 计算出来的。然而,当他们查看自己的数据时,高达 70% 的患者没有感染。这个模型错得离谱。它无法解释这片巨大的空白,这种“无”的过度丰裕。

这不仅仅是一个数值错误;它表明我们关于计数如何产生的简单故事缺少了关键的一章。数据在向我们低语一个秘密:并非所有的零都是生而平等的。

两种“无”

解决这个难题所需的概念飞跃是认识到,我们数据中的“零”结果可能来自两个完全不同的来源。统计学家为这些来源起了非常直观的名字:​​结构性零值​​和​​抽样零值​​。

​​结构性零值​​是一个由于某种根本性的、确定性的原因而为零的结果。它是一个必然为零的“零”。而​​抽样零值​​则是一个纯粹偶然发生的零。事件本可以发生,但在我们的观察窗口内恰好没有发生。

想象一项关于儿童哮喘急性发作的研究。研究中的一些儿童可能根本没有哮喘。对于这些儿童来说,哮喘发作的次数根据定义就是零。他们不可能发作。这是一个结构性零值。研究中的另一些儿童确实患有哮喘,并且处于风险之中。然而,由于有效的药物治疗、很少接触触发因素,或者仅仅是运气好,他们可能在整个研究期间没有一次急性发作。他们的计数也是零,这是一个抽样零值。他们有可能发作,但他们没有。

我们简单的泊松模型之所以失败,是因为它只理解一种“无”:抽样零值。为了讲述一个更真实的故事,我们需要能够同时驾驭这两种“空”的语言的模型。这引导我们走向两个优美而强大的框架:零膨胀模型和跨栏模型。

故事一:混合世界(零膨胀模型)

​​零膨胀模型​​讲述了一个关于由两个截然不同的潜在群体组成的总体的故事。想象一下,你研究中的每个个体都面临一个岔路口。

  • ​​路径1:​​ 以某个概率,我们称之为 π\piπ,个体属于一个“永不发生事件”组。对于这个组,结果总是且结构性地为零。这些是没有哮喘的儿童,或者是那些从未真正面临特定感染风险的住院患者。

  • ​​路径2:​​ 以剩余的概率 1−π1-\pi1−π,个体属于一个“风险”组。对于这个组,事件的数量由一个传统的计数过程决定,比如我们熟悉的、均值为 μ\muμ 的泊松分布。

现在,如果我们观察到一个零,它可能来自哪里?它可能来自走路径1的个体(这以概率 π\piπ 发生)。或者,它可能来自走路径2但其泊松过程碰巧产生零的个体(这以概率 (1−π)×exp⁡(−μ)(1-\pi) \times \exp(-\mu)(1−π)×exp(−μ) 发生)。

综合来看,在一个零膨胀泊松(ZIP)模型中观察到零的总概率是这两条路径之和:

P(Y=0)=π⏟路径1:结构性零+(1−π)exp⁡(−μ)⏟路径2:抽样零P(Y=0) = \underbrace{\pi}_{\text{路径1:结构性零}} + \underbrace{(1-\pi)\exp(-\mu)}_{\text{路径2:抽样零}}P(Y=0)=路径1:结构性零π​​+路径2:抽样零(1−π)exp(−μ)​​

任何正数计数,比如 k>0k > 0k>0,只能来自路径2。所以,它的概率就是:

P(Y=k)=(1−π)exp⁡(−μ)μkk!当 k>0P(Y=k) = (1-\pi) \frac{\exp(-\mu)\mu^k}{k!} \quad \text{当 } k > 0P(Y=k)=(1−π)k!exp(−μ)μk​当 k>0

这种两部分结构赋予了模型所需的灵活性,使其能够“膨胀”零类别以匹配现实。这是两个世界的混合:一个确定性的世界(总是零)和一个随机性的世界(泊松过程)。当我们将模型拟合到数据时,它的任务是找出混合概率 π\piπ 和事件率 μ\muμ 最可能的值。在一个优美的逻辑展示中,如果我们给模型输入完全没有零的数据,它会正确地推断出没有证据表明存在“结构性零”组,并估计 π^=0\hat{\pi}=0π^=0,从而退化为一个简单的泊松模型。

故事二:门前的跨栏(跨栏模型)

​​跨栏模型​​讲述了一个略有不同但同样引人入胜的故事。它不是关于两种类型的人,而是关于每个人都要经历的一个两步过程。

  • ​​步骤1:跨栏。​​ 首先,有一个隐喻性的门或“跨栏”。每个个体都必须决定是否要越过它。这是一个二元选择:要么你有一个非零的计数,要么你有一个零的计数。假设零计数(未能越过跨栏)的概率是 ϕ\phiϕ。

  • ​​步骤2:计数。​​ 当且仅当一个个体越过跨栏(以概率 1−ϕ1-\phi1−ϕ),他们才会进入一个“计数”阶段。这里的关键区别在于,这个计数过程被禁止产生零。它是一个​​零截断​​分布。计数必须是 1、2、3 或更多。

在这个故事中,所有的零都是在步骤1一次性产生的。该模型优雅地将“是否”发生事件的问题与“发生多少次”事件的问题分离开来。

一个完美的例子是为慢性疼痛患者的阿片类药物处方配药次数建模。所有患者都可能处于风险之中,但他们必须首先做出是否开始治疗的决定。这个决定就是跨栏。如果他们不开始,配药次数为零。如果他们确实开始,配药次数必须至少为一。产生零的过程与产生正计数的过程在根本上是不同的。

一段令人惊讶而优雅的数学揭示了这两个故事之间的深刻联系。在观察到正计数(Y>0Y>0Y>0)的条件下,零膨胀模型和跨栏模型都以完全相同的方式描述这些正计数的分布:使用一个零截断计数分布。这两个框架的全部区别归结于它们如何构建零的概率。

剧情深入:过离散

为了让我们的侦探故事更有趣,还有另一个可能导致零值过多的“罪魁祸首”:​​过离散​​。这是一个通用术语,指数据中的方差远大于均值,这直接违反了泊松模型的核心假设(方差 = 均值)。

零膨胀是过离散的一个原因,但不是唯一的原因。另一个主要原因是​​未观测到的异质性​​。这意味着即使在“风险”组中,个体也并非完全相同。有些人可能天生事件发生率高,而另一些人则天生事件发生率低。这种个体间隐藏的变异性拉伸了分布,增加了方差,同时也顺便增加了零计数的概率。

处理这种情况的经典模型是​​负二项(NB)模型​​。与 ZIP 模型不同,NB 模型并不提出两种不同类型的人。相反,它讲述了一个单一总体的故事,其中每个人都有自己的个人事件率,而这些率本身遵循一个分布。

这就提出了一个真正的挑战。当我们看到过多的零和高方差时,哪个故事是正确的?是“风险”和“非风险”个体的混合(一个 ZIP 故事)?还是一个具有不同风险水平的“风险”个体组成的单一总体(一个 NB 故事)?。

选择正确的叙事

选择正确的模型既是一门科学,也是一门艺术。它关乎找到一个不仅在统计上合理,而且在科学上可信的叙事。

首先,我们听从科学。在零膨胀模型和跨栏模型之间的选择应由潜在机制指导。如果你认为你的数据中包含一个对事件具有结构性免疫的群体(比如寄生虫研究中未被感染的个体),那么零膨胀的故事就很自然地契合。如果你认为在任何事件发生之前都需要一个激活或启动步骤(比如开始药物治疗),那么跨栏的故事就更有说服力。

其次,我们让数据说话。我们可以使用统计工具正式比较这些不同的、非嵌套的故事。我们可以同时拟合 NB 模型和 ZIP 模型,看看哪一个能更好地解释观察到的零的比例。我们可以使用更正式的方法,如​​Vuong 检验​​,它让两个模型相互竞争,看哪一个更接近真相,或者使用​​AIC​​和​​BIC​​等信息准则,它们奖励拟合数据好的模型,但惩罚过于复杂的模型。

这项细致工作的最终回报是对世界更丰富的理解。一个简单的泊松回归可能会告诉你一种新药降低了感染率。但一个零膨胀模型可能会揭示更深层次的东西。它可能会显示该药物有两种效果:它降低了患者易受感染的概率(通过改变 π\piπ 参数),并且它减少了那些确实易感人群的感染次数(通过改变 μ\muμ 参数)。通过选择一个讲述正确故事的模型,我们从仅仅描述发生了什么,转向了理解它为什么发生的根本机制。

应用与跨学科联系

现在我们已经探索了零膨胀模型的机制,让我们踏上一段旅程,看看它们在实践中的应用。你会发现,一旦你学会用这个新视角看待世界——去质疑“无”的本质——这些模型就会无处不在。它们不仅仅是一个抽象的统计工具,它们是一种描述自然界基本过程的语言,从森林中生命的分布到我们自身细胞的复杂运作。这个框架的美妙之处在于其统一性;同一个核心思想照亮了截然不同的领域,揭示了我们可能从未预料到的联系。

生态学:森林的寂静

想象你是一位生态学家,正跋涉在茂密的热带雨林中,研究一种稀有而美丽的兰花的分布。你一丝不苟地布设了数百个一平方米的样方,并计算每个样方中的幼苗数量。你的笔记本很快就写满了数据,但一个数字以惊人的频率出现:零。一个又一个样方是空的。

这种空无意味着什么?一个简单的泊松模型可能会认为这种兰花只是极其稀有,所以找到一株纯属偶然。但你的生态学直觉告诉你,故事可能不止于此。一些样方可能是空的,仅仅是因为没有种子恰好落在这里并萌发——这是一个“抽样零值”。但其他样方可能从根本上就不适宜生存;也许土壤太酸,阳光被遮挡,或者一种竞争植物占据了地盘。在这些样方中,兰花无法生长。这是一个“结构性零值”。

标准的泊松模型无法区分这两种“无”。然而,零膨胀模型可以。通过拟合一个零膨胀泊松(ZIP)模型,我们可以估计两个独立的参数:适宜生境中幼苗的平均速率(λ\lambdaλ)和任何给定样方根本不适宜的概率(ϕ\phiϕ)。这是一个深刻的飞跃。我们不再仅仅是计数植物;我们正在绘制生命潜能的地图,区分偶然的缺席和根本上的不可能。

这个概念超越了对生物体的计数。考虑同一片雨林的每日降雨量。有些天是干燥的;计数为零。一个干燥天仅仅是连续降雨谱系的低端,还是一个独特的天气状态?一个零膨胀模型,这次使用像伽马分布这样的连续分布来处理正降雨量,允许我们这样建模。我们可以将一个“结构性”干燥天的概率与决定一个湿润天降雨量的过程分离开来。

医学与公共卫生:解读零值中的故事

区分不同种类的零不仅仅是生态学上的好奇心;在医学上,它具有生死攸关的意义。考虑一项关于诊所利用率的研究,我们计算每位患者一年内的就诊次数。许多患者的就诊次数为零。这是否意味着他们都完全健康?一个标准的负二项模型,它能处理过离散问题,可能会认为这是一个单一的、异质性的过程在起作用——有些人只是更健康或更不倾向于寻求医疗服务。

但零膨胀模型提出了一个更深层次的问题。它假定可能存在两个亚群:一个“风险”组,其就诊次数遵循负二项分布(并且可以包括那些幸运地没有生病的“抽样零值”),以及一个“结构性零值”组。后一个群体可能由那些由于各种原因,如缺乏保险、地理位置偏远或信奉替代医学,而永远不会去诊所的人组成,无论他们的健康状况如何。识别这个群体的规模和特征是一个至关重要的公共卫生挑战,而一个简单的计数模型会完全忽略这一点。

在评估干预措施时,这个框架变得更加强大。想象一家医院实施了一项新的预防保健计划,以减少慢性病患者的急诊(ED)就诊次数。我们如何衡量其成功?一个简单的方法是看平均就诊次数是否下降。但一个零膨胀混合效应模型可以讲述一个更丰富的故事。该计划可能有两种效果:

  1. 对于仍有急诊风险的患者,它可能会降低他们就诊的频率(影响 λ\lambdaλ 参数)。
  2. 更深刻的是,它可能会将一些患者完全转移到“无风险”状态,在这种状态下,有效的管理使急诊几乎成为不可能(影响 π\piπ 参数)。

通过同时为这两个过程建模,我们可以对干预措施如何运作获得更细致的理解。我们甚至可以处理复杂的、嵌套的数据——比如聚集在不同诊所内的患者——通过使用分层模型,让参数在不同诊所间变化。

同样的逻辑也适用于追踪随时间变化的罕见事件。当一家医院尝试新的卫生协议以阻止感染时,一个零膨胀中断时间序列模型可以确定该协议是仅仅降低了感染率,还是在某些病房创造了“结构性”无感染期。然而,需要提醒的是,当事件变得过于罕见时,我们可能会遇到“可识别性”问题。例如,如果在干预后完全没有感染,模型就无法知道这是因为感染率 λ\lambdaλ 降至零,还是因为结构性零概率 π\piπ 变为一。这是一个绝佳的例子,说明了我们统计模型的局限性如何反映了我们能从数据中学到的东西的真实局限。

基因组学与生物信息学:缺失的意义

在精准医疗时代,我们正淹没于自己基因组产生的数据中。在这里,零的意义问题同样至关重要。在单细胞 RNA 测序(scRNA-seq)中,我们通过计算称为 UMI 的分子来测量数千个基因在单个细胞中的表达水平。由此产生的数据矩阵是出了名的稀疏——充满了零。

一个基因在一个细胞中的零计数可能意味着两种截然不同的事情。它可能是一个“抽样零值”:该基因正在低水平表达,但由于测序技术的低效率,我们恰好未能捕获到它的任何分子。这是测量的产物。或者,它可能是一个“结构性零值”:该基因的启动子可能处于紧密缠绕的“关闭”状态,意味着该基因在生物学上是沉默的,根本没有被转录。

区分这两种情况是理解细胞身份和功能的关键。零膨胀模型(通常是零膨胀负二项模型,或 ZINB)是完美的工具。模型的负二项部分捕捉了计数过程,包括其固有的随机性和技术噪音(抽样零值),而零膨胀部分(π\piπ)则模拟了基因真正“关闭”(结构性零值)的概率。这使我们能够将生物学上的沉默与技术上的假象分离开来。

这种推理方式延伸到癌症基因组学的研究。肿瘤的基因组上布满了突变的伤疤,这些突变通常以特定的模式或“印记”出现,为癌症的成因(例如,吸烟或紫外线照射)提供了线索。当我们将这些突变分为不同类型时,我们得到了一个包含许多零计数的稀疏目录。一个零是意味着某种特定类型的突变恰好没有发生(抽样零值),还是意味着存在某种生物学限制使其不可能发生(结构性零值)?通过计算在一个基线模型(如泊松模型)下我们期望的零的数量,我们可以识别是否存在“零值过多”,从而证明使用零膨胀模型来捕捉那些结构性限制是合理的,并深化我们对突变过程的理解。

结语:原则性建模的力量

在我们这个快节奏、数据驱动的世界里,人们很容易倾向于使用权宜之计。对于有许多零的数据,机器学习中一个常见的技巧是在取对数之前加上一个小的常数 ccc,创建特征 log⁡(X+c)\log(X+c)log(X+c)。这避免了可怕的 log⁡(0)\log(0)log(0) 错误,而且似乎效果还不错。但我们实际上在做什么呢?

统计理论给出了一个明确的答案。这个看似无害的转换引入了一种复杂的偏差,这种偏差依赖于所选的 ccc 值。增加 ccc 的值会减小转换后特征的方差,但会增加其偏差 ([@problem_-id:5194333])。这里存在一个权衡,如果没有指导原则,c 的选择是任意的。

这正是像零膨胀框架这样的模型真正闪光的地方。它不是应用一种临时的转换,而是迫使我们思考生成数据的过程。它要求我们阐明一个关于为什么会出现零的假设。通过建立一个反映这种潜在现实的模型,我们最终能对世界获得一种更有原则、更易解释、也更强大的理解。从雨林寂静的地面到活细胞繁忙的内部,这个简单的问题——“这个零意味着什么?”——为更深层次的科学发现打开了大门。