李升伟 编译

Citation: Gimenez O, Royle A, Kéry M, Nater CR (2025) Ten quick tips to get you started with Bayesian statistics. PLoS Comput Biol 21(4): e1012898. https://doi.org/10.1371/journal.pcbi.1012898

引言

贝叶斯统计是一种框架,其中我们关于感兴趣未知量(尤其是参数)的知识通过观察到的数据中的信息得到更新,尽管它也可以被视为拟合统计模型的一种简单方法。它在生物学的许多分支中变得流行[1,2]。为了说明这一点,截至2024年8月19日,Web of Science中以“贝叶斯统计”为关键词的前10篇最具引用的论文中有5篇与生物学相关。在生物学中使用贝叶斯统计学使研究人员能够运行包含外部知识的分析、描述复杂系统以及有效地处理有限或混乱的数据。然而,大多数生物学家最初接受的是频率统计学训练。学习成为贝叶斯统计学的熟练使用者可能被认为是一项耗时的工作,或者采用不熟悉的统计框架的前景可能看起来过于令人畏惧。然而,尽管有这种看法,但贝叶斯统计学学习的曲线是渐进的而不是陡峭的,其好处将迅速超过投入。

为了帮助您在这个旅程中前进,我们提供了一份10条建议列表(总结在图1中),以帮助您开始学习贝叶斯统计学。在表1中我们还编制了一个术语表来定义技术术语。我们的论文并非旨在全面介绍贝叶斯统计学。相反,它提供了应用贝叶斯统计学的指导并指向您可以学习基础知识的额外资源。这篇论文不仅针对新手也针对那些对贝叶斯方法有一定经验的人士可能会用它作为设计、执行和发表贝叶斯分析的路标图。我们主要借鉴了我们教授生态学家和与他们合作的经验但我们希望这些建议将对更广泛的生物学家群体相关联。

对于那些寻求深化理解的人士我们指向了更全面的资源它们提供了对 贝 叶 斯 统 计 学 的深入探索。

我们的文章的目的不是说服你放弃频率方法而转向 贝 叶 斯 方法相反我们提倡一种务实的双重方法即你掌握这两种方法作为你的分析工具包的一部分并选择最适合你问题的工具。

1. 理解贝叶斯的基本思想

贝叶斯统计学使用条件概率[3-5]来推断未知量,如模型参数。在经典统计学中,概率描述了可观察数据的变异性,将其视为具有分布的随机变量。然而,在贝叶斯统计学中,概率量化了我们关于任何不可观测事物(包括参数值)的知识。例如,一个人可能会说:“我有99%的把握会下雨。”通过贝叶斯定理的条件概率允许我们更新先验知识(来自独立数据或假设)到一个新的知识状态,这由后验分布表示。

似然函数由统计模型定义;从某种意义上说,似然函数就是模型——它是数据与被估计参数之间的联系[6]。它为贝叶斯和频率方法提供了基础;但频率主义者仅依赖于似然进行估计,而贝叶斯主义者还结合了先验分布(贴士#2),允许外部信息影响估计。因此,贝叶斯模型结合了似然和先验分布,结果得到后验分布反映了我们对参数作为概率分布的更新知识(图2)。可以使用汇总指标如均值、中位数或众数来获得点估计值,以及通过标准差或百分位数来衡量不确定性。

大多数贝叶斯模型需要近似计算以评估贝叶斯定理,通常是通过模拟技术如马尔可夫链蒙特卡罗(MCMC)。MCMC为每个参数生成一系列随机值序列从指定的初始值开始并理想情况下收敛到一个平稳分布即所希望的后验分布。MCMC的魔力在于通过采样与它们的后验分布成比例的值简化了否则复杂甚至无法处理的涉及在贝叶斯定理中的积分。

2. 考虑你的先验分布

先验分布是贝叶斯定理和任何贝叶斯模型的基本部分。先验描述了我们对于一个参数可能值的期望,并允许我们通过信息性先验正式地将辅助信息纳入分析中。尽管如此,大多数分析师指定的先验表达的是缺乏先验信息(“模糊”或“非信息性”)——或者如常说的,“让数据自己说话”——即使有来自先前研究或专家意见的辅助信息(图2)。在某些情况下,使用信息性先验是合理的甚至是必要的[7,8]。例如,当一个复杂模型有一个已知的不可识别或弱可识别的参数时(提示#6),使用一个信息性先验可能使这个参数可估计。另一个例子是使用先前进行的、可比研究中的参数估计来改进估计([9]的第20章)。

那么,我们应该为参数选择哪种先验分布呢?对于模糊的先验分布,你想要一个在参数真实值附近“局部均匀”(大致平坦)且覆盖其所有允许值的范围的分布。例如,对于回归参数(截距、斜率),我们可以使用均值为0、方差大的正态分布;而对于概率来说,0到1之间的均匀分布是一个自然的选择。然而,对于不同的参数指定模糊或信息性先前的替代方案有很多种,“正确”的选择将取决于模型、数据和可用的辅助信息[8,10]。可以通过进行前敏感性分析来检查先行选择对推断的影响——如果担心某个特定的先行与某些其他选择相比是否足够模糊的话,可以通过重新运行分析并观察结果如何改变(多少)来测试它们之间的差异。

3. 应用标准建模原则

在贝叶斯统计中,一般的统计原理仍然适用[11,12](参见[13]的附录B),例如,始终明确你的建模目标(是描述、理解、解释还是预测),展示/可视化你的数据[14],检查假设,仔细规划你的研究设计[13],并报告效应量。在本提示中,我们重点关注两个这样的原则。
从简单开始,逐步增加复杂性:有时人们会涉足贝叶斯分析是因为他们有一个复杂的建模问题,无法使用现成的R、Python或Julia包解决[15]。在学习如何用与贝叶斯软件兼容的语言编写模型后,直接尝试在所选的贝叶斯框架中实现该复杂模型是很诱人的。

这样做的话,你可能会浪费大半辈子的时间,最终只面对各种难以理解的神秘错误;更糟糕的是,软件可能不会生成错误信息,但估计值虽然看起来是从平稳分布中抽取的,但实际上却卡在了后验分布的一个角落。为了避免这种情况发生,请遵循一个简单的规则:始终从你模型的可能最简版本开始!也就是说你应该采取模块化、分步的方法进行模型拟合——这让你可以测试“一切是否正常”:数据格式正确无误;没有奇怪的数据问题(如数据值超出范围或不良的先验分布导致不一致的数据)。

这种分步方法在贝叶斯分析中尤为重要因为MCMC算法的性能和行为至关重要。MCMC运行时间随着你的数据集大小和模型复杂度的增加而增长。因此从一个简单的模型开始可以让你评估运行时间并检查它是否在你的工作计划范围内可行(例如[16])。此外随着模型的复杂性增加将更容易识别潜在的数据限制或可识别性问题(提示#6)。在这个初步简单模型运行良好且结果合理之后你可以逐步构建更复杂的模型直到达到你期望的模型(提示#7)。

使用模拟数据集:为了更好地掌握你的模型的一种补充方法是使用模拟数据集。数据分析与数据模拟几乎是同一件事儿但方向不同:分析使用数据和模式来估计参数;而模拟则假设参数值和模式来生成潜在的数据集。

数据分析的第一目标是强制理解一个模式:如果你在一个模式下无法生成数据那么你可能并不完全理解它。同样地在一个模式下进行数据分析的计算代码可以说是向非统计学家解释统计模式的绝佳且未被充分利用的方法。

其他优点包括[17,18]:(1)已知真相因此你可以验证你的模式或代码以适应它。(2)这可能帮助你理解复杂的概念。(例如如果你不理解什么是标准误差你可以反复模拟一个数据集估计一些参数然后意识到标准误差只是这些估计值的重复的标准差。(3)你可以评估估计算法的偏差和精度。(4)功效分析评估你在显著性检验中拒绝零假设的概率并且是评价功效的最通用方式。(5)研究设计(例如所需的最小样本量是多少)也最好用模拟数据进行处理。(6)为了检查一个模式对违反假设的鲁棒性我们可以在一个更通用的模式下生成数据进行模拟然后拟合一个缺乏关键假设的简单模式。

4. 检查模型性能

使用贝叶斯统计是一个迭代过程,包括多个回合的构建、评估和修改模型(提示#3)。模型评估通常也有几个步骤,大多数集中在MCMC性能或模型拟合优度(GOF;提示#5)。从贝叶斯模型中获得可靠的推断需要我们运行多个链并评估它们的收敛性和充分的混合性,以便为我们提供有效的后验样本。
“收敛”意味着马尔可夫链已经稳定下来,样本正在从期望的后验分布中生成。这是从MCMC算法产生的随机数中获得有效推断所必需的。“混合”指的是不同的MCMC链在多大程度上采样相同的参数空间。可视化是贝叶斯模型评估的最佳工具之一[14],而MCMC链的时间序列图或轨迹图使我们能够检查收敛性和混合性,并根据需要进行相应的调整(图3)。

非收敛性通常可以通过运行更多的迭代来解决。不良的混合有时可以通过重新参数化(参见[19]的第12章)或选择不同的MCMC算法来改善,但也可能表明存在需要解决的基本模型问题,例如不可识别的参数(提示#6)或假设违反。用于检查MCMC收敛性和链混合性的定量指标应该补充可视化结果,例如潜在的尺度缩减统计量R-hat [20],它衡量多个链条行为中的发散程度。

5. 评估模型拟合优度

模型与数据拟合的好坏对于你对参数估计的信任至关重要。在频率派统计学中,拟合优度测试已经得到了很好的建立,并且许多测试可以应用于简单的贝叶斯模型(例如残差分析)。然而,贝叶斯方法通常用于更复杂的模型,对于这些模型我们缺乏简单的现成GOF测试[21]。

后验预测检查是通过从模型的後验分布中模拟新的数据集并与实际数据进行比较而常用的。模拟数据和观察数据越相似,模型拟合得越好;这可以通过视觉检查和使用“贝叶斯p值”[14,22]来评估。先验预测检查仅基于先验分布(不使用分析中的数据),利用专业知识[23]来评估适宜性,并且当它们预测不可能的数据时(例如负体重、每年被杀死的动物数量少于存活的动物数量)可能会表明模型(尤其是先验)是不充分的。

最后但同样重要的是:专家知识对于模型检查至关重要。在模型检查的第一阶段应该是提出问题:“估计值是否有生物学意义?”如果答案是“没有”,则需要对模型进行修订。

6. 警惕模型不可识别性

贝叶斯方法和MCMC方法使得构建复杂模型成为可能,但可能存在过度参数化和不可识别参数的风险——那些相互混淆且无法独立估计的参数[24]。具有不可识别参数的模型通常表现出较差的MCMC混合性能,并且可能会缓慢收敛。然而,检测非可识别性可能具有挑战性,因为即使这些参数实际上是不可估计的,它们也可能从可用数据中看起来是可以估计的[24]。
为了诊断非可识别性,模拟是非常有力的(提示#3)。无法从模拟数据中恢复真实的参数值可能表明存在潜在的非可识别性问题,正如在成对散点图中两个参数之间的MCMC样本高度相关所表明的那样。检查先验分布和后验分布之间的重叠是有帮助的,因为不可识别的参数通常显示出大量的重叠和有限的“贝叶斯学习”[25]。然而,大的重叠也可能源于信息丰富的先验与后验相匹配的情况;因此仅仅重叠本身不能确认非可识别性。不应忘记频率主义方法。例如,似然轮廓[26]涉及对所有除了一个以外的所有参数进行最大化似然度处理,该常数保持在一组值范围内。平坦的轮廓似然度表明该参数存在非可识别性问题。其他使用符号代数的方法可以诊断非可识别性问题,但需要高级专业知识并且随着许多参数的增加可能会很快变得不切实际[24]。

如果一个模型是不可辨识的,你很可能需要简化模型结构(提示#3)直到问题解决为止。此外,你应该考虑重新定义你的模型的变量[26-28]。如果问题仍然持续存在的话评估使用信息丰富的先验为不可辨识提供额外信息的可能性 [27,29-31],或者收集额外的数据以满足一个可辨识模型的必要条件。

7. 比较模型

在假设演绎框架中,模型被比较以评估支持替代假设的数据中相对证据的强度。在贝叶斯统计学中,这是通过评估模型在其数据下为真的概率来实现的,这由后验模型概率来表征。
推导这些概率的一种方法是通过贝叶斯因子,但这种方法的计算量可能很大,并且特别敏感于先验[32],这在实践中限制了其使用[33]。一个替代方案是使用可逆跳转MCMC来计算后验模型概率,这是一种在选择一组解释性协变量时相对简单易行的实现方法。

在选择模型时,考虑你分析的目标[34]是至关重要的。你的重点是理解潜在机制(推理)还是预测?具有最高后验概率的模型不一定总是用于预测的最佳选择。对于基于预测能力的模型选择[35],你可以评估以下样本内(使用与拟合该模型的同一数据)或样本外(使用新数据)的预测。后者通常被认为是最可靠的方法,但需要将你的数据分成子集进行拟合和预测。作为一个捷径,可以使用广泛适用的信息准则[36]和留一法交叉验证[37]等方法在样本内估计预测能力。

或者,一个人可能会完全放弃贝叶斯模型选择。相反,可以构建一个单一的综合模型并通过拟合、测试和批判步骤迭代地对其进行改进[38,39]。这种方法强调探索不同的模型变体以更好地理解系统,而不是选择一个单一的“最佳”模型。

8. 了解你的工具

正如你通常不会从头开始编写优化代码来在频率主义框架中拟合模型一样,我们建议使用具有可靠、经过充分测试和优化的MCMC算法的成熟软件。在这里,我们关注免费选项,R、Python和Julia中都有许多贝叶斯统计学的可用选择[15]。
仅根据速度和效率来选择软件是有挑战性的[40],因为这不仅仅涉及测量原始计算时间。你还必须考虑你的经验水平和对建模语言的熟悉程度或不熟悉程度。

贝叶斯软件通常分为两大类:需要编码的通用模型拟合引擎,如WinBUGS/OpenBUGS [41]、JAGS [42]、Stan [43]或NIMBLE [44],以及内置模型的那些,如JASP [45]、PyMC [46]或brms [47]。编码理论上提供了无限的灵活性来定制模型,但非编码选项以最小的努力处理许多任务。在优化性能之前,优先确保代码能够正常工作。像brms这样的自定义R包提供了易用性,通常采用标准的R约定进行模型指定。另一方面,JAGS、Stan和NIMBLE等MCMC引擎提供了描述异常复杂新型模型的灵活性,并增强了理解贝叶斯分析不同步骤的能力。

对于初学者来说,明智的做法可能是选择一个软件并坚持下去,因为熟悉有助于调试、了解有用的技巧以及实施高级技术。然而,随着你获得信心后,考虑多样化你的工具箱以应对可能使用默认软件有挑战性的任务。

9. 拥抱可重复性

在生物科学领域,对可重复性的重要性认识正在增长[48,49],出版商和资助机构强调发表经过良好记录的数据和代码[50]。现代研究工作流程从研究设计和数据收集开始,以呈现结果结束。确保可重复性可以提高你工作的质量和可信度,增强调试和分析重新运行的效率,并使你的模型以及整个工作流程得到更广泛的应用(提示#10)。鉴于MCMC固有的随机性和贝叶斯工作流程中的许多步骤和决策(图1),从一开始就考虑可重复性——而不仅仅是事后想起——可能会成为你在贝叶斯模型工作中的一项超级能力。
四个支柱支持可重复性:(1)控制随机性:在模拟数据时指定随机数生成器的种子、设置初始值以及运行MCMC可以确保结果的一致性。这增强了可重复性并简化了调试,尤其是在有完整初始值集的情况下。(2)干净的编码[51]:采用编写代码的最佳实践[52]有助于他人和你自己理解并在以后重新运行分析。干净的编码也是自动化你的工作流程的第一步,并便于在高性能计算环境中运行代码。(3)良好的文档意味着彻底注释你的代码并记录工作流程步骤,这有利于他人并且增加了产生更广泛影响的可能性。(4)使用git仓库(GitHub/GitLab)进行版本控制有助于代码开发和管理工作流,并促进协作[53]。

10. 学习并寻求他人的帮助

学习贝叶斯统计学可能会感到令人畏惧。幸运的是,你在这条路上并不孤单。我们建议你通过利用可用的资源,如在线论坛、研讨会和教科书,参与到你研究领域内的贝叶斯社区中去。

一个良好的起点是找到一本适合你生物学领域的入门教材,其中涵盖了贝叶斯统计学。为了建立你的技能信心,考虑使用频率主义和贝叶斯方法进行并行的分析[9,54-56]。这种比较实践可以帮助你认识到数值结果通常是一致的。你可以从自己的一个简单项目开始,或者复制你的工作或已发表研究中过去的分析。

如果你有问题,不要犹豫去寻求帮助于像Cross Validated或Stack Overflow这样的论坛或者更专业、主题相关的列表。对于特定软件的问题,考虑通过邮件列表或论坛联系他人,并且最好包括一个小型的、可重复的例子来展示你的问题。你所收到的反馈也常常对其他初学者有益。

参加研讨会可以在经验丰富的教师的指导下学习是一种极好的方式。这些活动也提供了极佳的Networking机会。随着你的进步,研讨会为你提供了掌握新方法和进一步提升技能的途径。

记住,现代科学是一个协作的努力过程,而贝叶斯统计学也不例外。如果一个任务感觉超出了你当前的专业知识范围的话,寻求合作以向他人学习并实现你的研究目标吧。

结论

贝叶斯统计学在生物学领域发展迅速,尽管它仍然是一个技术上具有挑战性的主题,许多研究人员在研究生学习期间对其接触不足。学习一项新技能可能要求很高且耗时。虽然我们所讨论的内容并不新颖,并且已经被其他人探讨过[2,57,58],但我们的建议旨在提供简短而实用的指导,帮助你入门。这些见解旨在支持你在生物研究中的贝叶斯统计学之旅,无论你的具体领域是什么。我们相信,对于早期职业科学家来说,学习贝叶斯统计学是值得的投入努力,随着时间的推移将带来多倍的回报。

参考文献详见:https://doi.org/10.1371/journal.pcbi.1012898

图表见原文。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐