A practical introduction to ODE modelling in Stan for biological systems

本文通过循序渐进的实例,为生物系统研究者提供了在 Stan 框架下利用计算贝叶斯推断对一阶线性和非线性常微分方程模型进行参数估计与模型评估的实用指南。

Sara Hamis, John Forslund, Cici Chen Gu, Jodie A. Cochrane

发布于 2026-03-24
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇文章就像是一份**“给生物学家的 Stan 编程入门指南”**。

想象一下,你是一位生物学家,手里有一堆随时间变化的实验数据(比如细菌怎么生长、珊瑚怎么白化、或者癌症患者体内的指标怎么变化)。你想用数学公式(微分方程,ODE)来描述这些生命过程,但问题是:公式里的具体参数(比如生长有多快、死亡率是多少)你并不知道,只能从数据里“猜”出来。

这篇文章就是教你如何使用一个叫 Stan 的超级工具,用一种叫**“贝叶斯推断”**的聪明方法来猜出这些参数,并且还能告诉你“猜得有多准”。

为了让你更容易理解,我们把文章里的核心概念用几个生活化的比喻串起来:

1. 核心任务:在迷雾中拼图

  • 背景:生物系统很复杂,像是一个黑盒子。我们能看到输入(时间)和输出(数据),但不知道盒子内部齿轮(参数)是怎么咬合的。
  • 传统做法:以前大家可能只找一个“最可能”的齿轮组合,然后说“这就是答案”。
  • Stan 的做法(贝叶斯):Stan 不只看一个答案,它说:“不,答案其实是一堆可能性。”它会给你一张概率地图。比如,它不会说“细菌生长率是 0.5",而是说“生长率有 95% 的可能性在 0.4 到 0.6 之间”。这就像是在迷雾中不仅找到了宝藏的大致位置,还画出了宝藏可能分布的整个区域,让你知道哪里最安全,哪里最危险。

2. 主角登场:Stan 是什么?

  • 比喻:Stan 就像一个**“不知疲倦的超级侦探”,或者一个“自动化的概率计算器”**。
  • 它的工作:你给它三个东西:
    1. 数据(你观察到的现象)。
    2. 模型(你猜想的数学公式,比如细菌竞争公式)。
    3. 先验知识(你之前对参数的模糊印象,比如“生长率肯定大于 0")。
  • 它的绝招:Stan 内部运行一种叫**HMC(哈密顿蒙特卡洛)**的算法。
    • 普通方法(像瞎子摸象):以前的方法像是一个人在山上随机乱走,偶尔碰运气找到高点(高概率区),效率很低。
    • Stan 的方法(像滑雪高手):Stan 给这个侦探装上了“滑雪板”和“指南针”。它能感知地形的坡度(数学上的梯度),顺着势能山谷滑下去,既能跑得快,又不会乱撞。它能迅速找到那些“最符合数据”的参数区域,并且知道哪里是死胡同。

3. 三个实战案例:从玩具到现实

文章通过三个例子展示了怎么用:

案例一:细菌的“抢地盘”大战(玩具模型)

  • 场景:两个细菌种群在培养皿里抢地盘。
  • 任务:根据它们随时间变化的数量,算出它们各自的生长速度和地盘上限。
  • Stan 的表现:它完美地还原了细菌的生长曲线,并且给出了每个参数的“可信区间”。这就像你看着两群蚂蚁打架,通过 Stan 算出了它们各自的“战斗力”和“领地大小”,而且知道这个计算有多靠谱。

案例二:大堡礁的珊瑚“白化”危机(真实数据)

  • 场景:珊瑚要么健康,要么白化。我们要预测未来珊瑚的覆盖率。
  • 挑战:数据来自不同的礁石,有的数据多,有的数据少。
  • Stan 的妙招(部分归并)
    • 完全归并:假设所有礁石都一样(太粗糙)。
    • 不归并:假设每个礁石都完全不同(数据少的时候算不准)。
    • 部分归并(Stan 的强项):就像**“班级里的学生”**。每个学生的成绩(参数)是独特的,但都受“班级平均水平”的影响。如果某个学生(礁石)数据很少,Stan 会参考全班(其他礁石)的平均水平来帮他“补全”信息。
    • 结果:Stan 给出的预测比传统方法更稳健,尤其是在数据稀缺的时候,它知道如何“借力打力”。

案例三:前列腺癌患者的“治疗博弈”

  • 场景:癌细胞分“敏感型”和“耐药型”,治疗就是在这两者之间搞平衡。
  • 挑战:不同患者的反应差异巨大。
  • Stan 的妙招
    • 如果只用第一个治疗周期的数据(数据很少),**“不归并”**的方法会给出非常宽泛、不可靠的预测(就像只看了一个人一眼就猜他的一生)。
    • 而**“部分归并”**的方法,利用所有患者的数据作为背景知识,能更准确地预测单个患者的未来走向。
    • 比喻:这就像医生看病,如果只看你今天的体温,很难判断病情;但如果结合“像你这样的病人通常怎么发展”的群体数据,就能更精准地预测你的康复路径。

4. 为什么这篇文章很重要?

  • 打破门槛:以前,用这种高级的贝叶斯方法需要你是统计学专家。现在,Stan 把复杂的数学封装好了,生物学家只需要写几行代码(像搭积木一样),就能用上最先进的推断工具。
  • 拥抱不确定性:生物学充满了不确定性(基因突变、环境变化)。Stan 不试图消除这种不确定性,而是量化它。它告诉你:“在这个参数下,我们有 90% 的把握是对的。”这对于做医疗决策或生态保护至关重要。
  • 诊断工具:文章还教你怎么检查 Stan 是不是“瞎猜”。就像开车前要看仪表盘(检查收敛性、有效样本量),确保你的计算结果是可信的,而不是机器在胡跑。

总结

这篇文章就是一本**“操作手册”,教生物学家如何把“观察到的生命现象”“数学公式”“不确定性”**结合起来,利用 Stan 这个强大的引擎,从数据中挖掘出更深刻、更可靠的生物学规律。

它不再只是问“答案是多少?”,而是问“答案的可能性分布是怎样的?”,这让科学研究变得更加严谨和透明。