蒙特卡洛方法

2025年3月17日 | 阅读 10 分钟

蒙特卡洛模拟是一种统计方法,用于模拟概率性(或“随机”)系统并计算不同结果的可能性。在解决有限马尔可夫决策问题的技术中,有时间差学习、动态规划和蒙特卡洛。每类程序都有其优点和缺点。尽管理论上合理,但动态规划技术需要对周围环境进行全面而精确的表示。尽管概念上简单且无需模型,但蒙特卡洛技术不适合逐步进行的增量计算。最后,时间差技术完全是增量的,不需要模型,但更难评估。这些技术在收敛速度和效率方面也有许多差异。

蒙特卡洛模拟基于这样一个想法:随机变量的干扰使得计算不同结果的概率变得不可能。为了实现某些目标,蒙特卡洛模拟侧重于重复运行随机样本。

蒙特卡洛模拟会选取未知变量并为其赋予一个随机值。之后,模型会被执行并给出一个结果。上述过程会反复迭代,对所考虑的变量赋予多个值。模拟运行后,通过对数据进行平均来产生一个估计值。

如今,蒙特卡洛模拟已广泛应用于各个行业,包括物理科学、工程学、气候变化、辐射强迫、计算生物学、计算机图形学、应用统计学、人工智能、金融和商业、法律、数学等,以辅助涉及不确定性的自动化和人工辅助决策。

蒙特卡洛方法历史

波兰裔美国数学家斯坦·乌拉姆(Stan Ulam)在20世纪40年代末创造了“蒙特卡洛”这个词,当时他正在参与曼哈顿计划(也称为原子弹计划)。这个概念起源于乌拉姆无休止的单人纸牌游戏,他在脑部手术后恢复期间以此消磨时间。“我曾想,是否有一种比‘抽象思考’更实用的方法,那就是将它模拟出来,比如说,重复一百次,然后观察并计算成功游戏的次数,而不是花费大量时间试图通过纯粹的组合计算来估算它们。”

事实上,自从第一台通用电子计算机(称为曼哈顿计划)问世以来,这种技术就已经存在了。该项目的首席数学家之一约翰·冯·诺依曼(John von Neumann)立即被乌拉姆理论的重要性所打动,并意识到它可以应用于曼哈顿计划。两人一起致力于开发这项技术。由于该项目高度保密,因此需要一个代号;“蒙特卡洛”被选中,以纪念摩纳哥的赌博城镇,那里是乌拉姆叔叔曾经的赌徒。

代码

现在我们的任务是根据一些参数来模拟室内人群中的病毒传播模型,并在95%的置信水平下,计算t时刻各类别人群的数学期望的置信区间,为此我们将使用蒙特卡洛模拟。

输入数据

  • P_inf - 从已感染者那里感染的概率
  • P_latent - 从潜伏期进入疾病活动期的概率分布
  • P_active - 退出疾病活动期的概率分布(康复或死亡)
  • P_die - 一个病人的死亡概率
  • N - 人数
  • n_days - 模拟天数

模型描述

我们使用蒙特卡洛方法来描述病毒在家庭中的动态传播。该方法的基础是进行大量基于输入参数的计算机模拟。由于 n 是模拟次数,数量巨大,我们可以利用该方法结合大数定律来推导出数学期望的近似值。

虽然每个群体个体的分布是未知的,但根据中心极限定理,由于进行了足够的试验(n>100),样本均值的分布近似为正态分布,只是标准差未知。

我们使用科学家在建模前已确定的病毒参数的估计值,因为我们认为病毒不会随时间变化。唯一可能变化的变量是每个家庭的隔离程度(如果每个人都待在各自的房间里,那么从另一家庭成员那里感染疾病的几率会大大降低)。此外,该模型不考虑外部污染的可能性,例如来自商店和教堂等场所的污染。

当知道所有参数时,模型可以预测:

  • 发病率的增加和减少
  • 近似的峰值时间
  • 特定时间段内每个类别的人数

内部标识

  • he: 健康人(未生病)
  • de: 死亡者
  • l{i} : 疾病潜伏期第 {i} 天的潜伏者
  • a{i} : 疾病活动期第 {i} 天的活跃感染者
  • re: 已康复并获得免疫力者

导入库


我们对实验进行了100次模拟(更多的模拟意味着更准确的结果,但需要更多时间)。



软件在最后会显示许多图表,包括每天的标准差、置信区间的图形表示,以及从家庭中第一个冠状病毒病例开始的 n_days 天的动态(无累计和有累计)。

图表解释

  • 绿色曲线表示健康人数。
  • 橙色曲线表示潜伏期内的病例数。
  • 红色曲线表示活动感染期的病例数。
  • 黑色曲线表示死亡人数。
  • 蓝色曲线表示康复人数。

输出

Monte Carlo Methods

输出

Monte Carlo Methods

输出

Monte Carlo Methods

使用 T 间隔进行估计

此外,还会计算置信区间。

  • 输入您希望查看统计信息的日期编号。
  • 输入置信区间(1-p)。

输出

Monte Carlo Methods

输出

Monte Carlo Methods

输入您希望计算区间以及(1-置信度)的日期编号。

我们正在寻找获得所需区间大小所需的试验次数(其中包括定义分位数、标准差、平均值和半区间大小)。

输出

Monte Carlo Methods

该模型的结果有助于理解为什么家庭需要隔离。它允许在输入参数的条件下,模拟没有实际感染发生的情况。