You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于NetLogo的COVID-19传播主体模型再生数(R0)计算方法咨询

嘿,我刚好对NetLogo里的流行病模型R0计算很熟悉,帮你梳理两种实用方法,顺便解决你关于恢复率参数的疑问~

一、先搞懂参数对应关系:chance-to-recover 和 γ(恢复率)

你猜的没错!如果你的模型里chance-to-recover滑块设置的是1/平均病程,那它直接就是γ(单位时间恢复率)的数值。举个例子:如果平均病程是10个时间步,那chance-to-recover设为0.1,γ就等于0.1,对应每步有10%的概率康复,平均10步康复,完全符合γ=1/平均病程的定义。

如果你的模型用的是固定康复时间(比如有recovery-time滑块),那γ=1/recovery-time,这时候chance-to-recover可以不用,直接用这个值计算就行。

二、手动计算R0(Excel就能搞定)

根据R0的定义,完全易感人群中单个感染者的平均二代病例数,公式就是:

R0 = β(有效接触率) / γ(恢复率)

拆解参数怎么从你的模型里提取:

  • β的计算:NetLogo里的病毒模型通常用「每次接触的感染概率」×「每步平均接触数」,比如你的模型里有infection-probability(接触后感染的概率)和contacts-per-step(每步的平均接触次数),那β = infection-probability × contacts-per-step
  • γ的计算:如果用chance-to-recover滑块,γ就是这个滑块的值;如果用固定病程recovery-time,γ=1/recovery-time

Excel计算示例:

参数数值公式
接触感染概率0.2-
每步平均接触数5-
β(有效接触率)1.0=A2*A3
chance-to-recover(γ)0.1-
R010=A4/A5
三、NetLogo代码实现R0计算

分两种场景,你可以根据模型情况选:

1. 公式法(快速计算,适合均匀混合模型)

直接在模型里定义全局变量,初始化时计算R0,还能实时显示在界面上:

2. 模拟估算法(更准确,适合有空间/异质性的模型)

这种方法完全贴合R0的定义:初始化1个感染者,其余全易感,运行到这个感染者康复,统计期间产生的新感染数,就是R0的估算值。代码示例:

这种方法能考虑模型里的空间接触(比如in-radius)、随机波动,比纯公式更贴近你模型的实际行为。

四、关于EpiDEM Basic模型的R0代码补充

EpiDEM Basic里的R0计算本质和公式法一致,只是参数命名可能不同。比如它可能用infectivity代表β的一部分,contact-rate代表每步接触数,recovery-rate就是γ,所以代码里会有类似set r0 (infectivity * contact-rate) / recovery-rate的逻辑。如果你还是看不懂,可以把它的参数对应到β和γ的定义上,就容易理解了。

内容的提问来源于stack exchange,提问作者Lawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 05:38:12