手搓传染病模型(SEICR)

模型描述

SEICR 模型是一种用于描述具有慢性期的传染病传播规律的数学模型。该模型将人群分为五个部分,分别是易感个体(Susceptible,S)、潜伏期个体(Exposed,E)、急性期感染个体(Infected,I)、慢性期个体(Chronic,C)以及恢复个体(Recovered,R)。在 SEICR 模型中,通过一系列经过参数化的传播、进展和恢复速率,详细描绘了易感个体被感染的初始阶段、潜伏期个体逐渐发展为急性感染的过程、急性感染个体转变为慢性感染状态以及最终所有感染个体逐步恢复的整个疾病传播与演变历程。

模型假设

  1. 感染力假设 :急性感染病例与慢性感染病例在传播疾病方面具有相同的感染力,无论个体处于急性感染阶段还是慢性感染阶段,其传染他人的能力系数均用 β 来表示。

  2. 潜伏期与进展速率 :设定潜伏期的时长为 1/ω,基于此,在 t 时刻,从潜伏期状态(E)进展到急性感染状态(I)的人数计算方式为 ωEt。

  3. 慢性期进展与恢复 :假定感染个体中进入慢性期的比例为 p。对于处于急性感染期(I)的个体,以速率 γ 向两个方向转变:一部分(pγI)进展为慢性感染状态(C),另一部分(1-p)γI 则进入恢复状态(R)。

  4. 急性感染期存活假设 :考虑到急性感染期的患者通常症状相对较轻,并不会面临生命危险,因此在模型构建过程中,急性感染期不考虑因该疾病导致的死亡情况发生。

  5. 人口更新与病死率 :假设所有新生儿均为易感个体,自然出生率用 br 表示,同时存在自然死亡率 dr,此外,针对该疾病还单独设定有病死率 f,用于综合衡量疾病对人群生存的影响。

模型介绍

手搓代码

% 模型参数
N = 100000; % 总人数
I0 = 36; % 初始急性期感染人数
C0 = 0; % 初始慢性期感染人数
R0 = 0; % 初始康复人数
E0 = 100; % 初始暴露人数
S0 = 99864; % 初始易感人数
omega = 1 / 1.5; % 暴露转化速率
p = 0.7; % 感染者进入慢性期的比例
gamma = 1 / 6; % 康复速率
f = 0.15; % 病死率
br = 0.00021; % 人口自然出生率
dr = 0.00016; % 人口自然死亡率
num_days = 120; % 模拟天数
I_obs = [36, 37, 58, 55, 39, 52, 56, 38, 54, 34, 48, 51, 34, 38, 46, 49, 40, 65, 55, 61,...59, 46, 57, 85, 64, 41, 78, 72, 67, 75, 63, 74, 77, 56, 81, 71, 52, 69, 83, 100,...112, 95, 97, 114, 103, 90, 102, 106, 82, 70, 118, 113, 131, 120, 120, 153, 156, 124,...117, 138, 139, 124, 149, 171, 176, 182, 176, 165, 200, 150, 186, 186, 165, 115, 219,...234, 218, 235, 269, 191, 232, 176, 254, 282, 189, 132, 265, 246, 238, 257, 235, 254,...249, 244, 250, 270, 180, 182, 296, 252, 266, 293, 271, 253, 247, 239, 284, 269, 252,...145, 320, 304, 308, 267, 290, 300, 303, 244, 361, 339];beta_initial = 0.01; % 传染率
lb = 0.01;
ub = 1;
options = optimoptions('lsqcurvefit', 'Display', 'iter');
[beta_optimal, resnorm] = lsqcurvefit(@(beta, t) forecast(N, I0, C0, R0, E0, S0, beta, omega, p, gamma, f, br, dr, num_days),...beta_initial,...1: num_days,...I_obs',...lb,...ub,...options);% x(1):急性期感染人群I,
% x(2):慢性期感染人群C
% x(3):易感人群S, 
% x(4):康复人群R,
% x(5):暴露人群E
dxdt = @(t, x) [omega * x(5) - gamma * x(1) - dr * x(1); % dIdtp * gamma * x(1) - (dr + f) * x(2); % dCdtbr * N - beta_optimal * x(3) * (x(2) + x(1)) / N - dr * x(3); % dSdt(1 - p) * gamma * x(1) - dr * x(4); % dRdtbeta_optimal * x(3) * (x(2) + x(1)) / N - omega * x(5) - dr * x(5); % dEdt];[t, y] = ode45(dxdt, 1: num_days, [I0, C0, S0, R0, E0]);
subplot(1, 2, 1)
plot(t, y(:, 3));
legend('易感人数S')
subplot(1, 2, 2)
hold on
plot(t, y(:, 1));
plot(t, y(:, 2));
plot(t, y(:, 4));
plot(t, y(:, 5));
legend('急性期感染人群I', '慢性期感染人群C', '康复人群R', '暴露人群E');

这段代码同样根据观测数值来拟合最佳beta。因此,下面放上forecast函数。

function I_extracted = forecast(N, I0, C0, R0, E0, S0, beta, omega, p, gamma, f, br, dr, num_days)% x(1):急性期感染人群I,% x(2):慢性期感染人群C% x(3):易感人群S, % x(4):康复人群R,% x(5):暴露人群Edxdt = @(t, x) [omega * x(5) - gamma * x(1) - dr * x(1); % dIdtp * gamma * x(1) - (dr + f) * x(2); % dCdtbr * N - beta * x(3) * (x(2) + x(1)) / N - dr * x(3); % dSdt(1 - p) * gamma * x(1) - dr * x(4); % dRdtbeta * x(3) * (x(2) + x(1)) / N - omega * x(5) - dr * x(5); % dEdt];[~, y] = ode45(dxdt, 1: num_days, [I0, C0, S0, R0, E0]);I_extracted = y(:, 1);
end

效果展示

 

结果解读

  1. 易感人群(S) :研究结果显示,易感人群数量呈现出一种持续减少的趋势,具体是从接近 10 万人的规模逐渐下降,最终降低到约 8.4 万人左右。这一变化的原因在于易感人群不断通过暴露(E)这一环节,转化为感染者(I)或者慢性患者(C),从而使得总易感人群的规模不断缩减。从公共卫生的角度来看,这一结果明显地反映了疾病正在社区中持续传播,原本健康的个体逐渐面临着被暴露于疾病风险的严峻形势,这很可能是因为该疾病的传染性较强,或者人群之间的接触率相对较高,导致易感人群难以避免地接触到病原体,进而增加了感染的可能性。

  2. 暴露人群(E) :暴露人群在观察期间表现出缓慢上升的态势,但总体数量一直处于较低的水平,始终没有出现大规模的累积。这从侧面反映出该疾病的暴露阶段相对较短,个体在暴露之后会迅速转化为感染者(I)。再结合对丙肝传播规律的认识,这也与丙肝潜伏期较短的特性相符合,说明模型在一定程度上能够准确地模拟出该疾病在特定阶段内的传播特点,以及不同状态人群之间的转换关系。

  3. 感染人群(I) :感染人群呈现出十分显著的增长趋势,经过大约 60 个月(也就是 5 年的时间),感染人群的数量达到了一个高峰,随后其增长的速度逐渐变缓。这一现象可能提示我们在疾病传播的初期,由于易感人群基数较大、传播途径尚未得到有效控制等因素,导致感染人数快速上升。而在达到高峰之后,可能由于部分患者康复、易感人群的自然减少或者防控措施逐渐发挥作用等原因,使得感染人群的增长势头得到了一定程度的遏制。不过,从长期的视角来看,仍然需要关注感染人群的动态变化,以防出现二次增长或者其他复杂的传播情况。

  4. 慢性患者(C) :慢性患者人数呈现出缓慢增加的趋势,一直持续到 120 个月(即 10 年)时才达到一个相对稳定的数值。从医学角度来看,这表明该疾病中存在一部分急性感染者会逐渐转化为慢性患者,这与丙肝的典型特点相吻合——其具有较高的急性转慢性几率。这一结果也提醒我们在面对此类疾病时,不仅要关注急性感染期的治疗和控制,还要重视对慢性患者的长期管理和治疗,以减少慢性感染所带来的更严重的健康危害和社会负担。

  5. 恢复人群(R) :恢复人群在整个观察期间表现出显著的增长趋势,到了 120 个月的时候,已经成为所有人群分类中规模最大的一个群体。这主要得益于通过自然免疫机制以及采取的各种治疗措施,使得感染疾病的人群逐步康复,并且能够在一定程度上形成免疫,从而有效地阻断了疾病的进一步传播,减少了传播链的延续。这也反映出在疾病防控过程中,通过合理的医疗干预和公共卫生措施,可以有效地促进患者恢复健康,进而改善整体的疫情状况,这对于制定长期的疾病防控战略具有重要的参考意义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频开源项目列表

音视频开源项目列表 一、多媒体处理框架 通用音视频处理 FFmpeg - https://github.com/FFmpeg/FFmpeg 最强大的音视频处理工具库支持几乎所有格式的编解码提供命令行工具和开发库 GStreamer - https://gitlab.freedesktop.org/gstreamer/gstreamer 跨平台多媒体框架基于管道…

通往“共识空域”的系统伦理演化

随着低空经济逐步从分布式运营向跨区域联动发展,AI无人系统不再只在本地决策,而开始涉及跨城市、跨机构的任务调度与行为协调。这一趋势带来了新的伦理挑战:多系统之间如何达成行动共识?算法背后的价值判断标准能否统一&#xff1…

Elasticsearch 常用的 API 接口

文档类 API Index API :创建并建立索引,向指定索引添加文档。例如:PUT /twitter/tweet/1 ,添加一个文档。 Get API :获取文档,通过索引、类型和 ID 获取文档。如GET /twitter/tweet/1。 DELETE API &…

【Vue】性能优化与调试技巧

个人主页:Guiat 归属专栏:Vue 文章目录 1. Vue 性能优化与调试技巧1.1 使用 v-if 替代 v-show 控制条件渲染示例代码: 1.2 组件懒加载(异步组件)示例代码:效果分析图(Mermaid 图表示&#xff09…

广义线性模型三剑客:线性回归、逻辑回归与Softmax分类的统一视角

文章目录 广义线性模型三剑客:线性回归、逻辑回归与Softmax分类的统一视角引言:机器学习中的"家族相似性"广义线性模型(GLMs)基础三位家族成员的统一视角1. 线性回归(Linear Regression)2. 逻辑回归(Logistic Regression)3. Softmax分类(Softm…

【Linux系统篇】:Linux线程控制基础---线程的创建,等待与终止

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:Linux篇–CSDN博客 文章目录 一.线程创建二.线程等待三.线程终止四.扩展内容1.重谈pthread_…

More Effective C++学习笔记

条款1 指针与引用的区别 条款2 尽量使用C风格的类型转换 条款3 不要对数组使用多态 条款4 避免无用的缺省构造函数 条款5 谨慎定义类型转换函数 条款6 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别 条款7 不要重载“&&”,“||”, 或“,” 条款8 理…

先知AIGC超级工场,撬动运营效率新杠杆

北京先智先行科技有限公司,作为行业内的重要参与者,拥有“先知大模型”、“先行AI商学院”以及“先知AIGC超级工场”这三款旗舰产品。这些产品在不同领域发挥着关键作用,尤其是先知AIGC超级工场,正悄然改变着内容创作与产品推广的…

十一岁少年叶珉雪用艺术点亮公益之路 个人原创公益演唱会传递大爱与担当

4月29日晚,"韶华映雪益路同行"叶珉雪个人原创公益演唱会在广东碧桂园学校歌剧院圆满落幕。 这场由该校美育成果浇灌出的艺术盛宴,生动诠释了广东碧桂园学校育人理念。11岁的叶珉雪以超越年龄的艺术掌控力,呈现了一场融合歌唱、舞蹈…

【深度学习基础】:VGG实战篇(图像风格迁移)

文章目录 前言style transfer原理原理解析损失函数 style transfer代码效果图 fast style transfer 代码效果图 前言 本篇来带大家看看VGG的实战篇,这次来带大家看看计算机视觉中一个有趣的小任务,图像风格迁移。 可运行代码位于: Style_tr…

python爬虫基础:requests库详解与案例

1.Requests模块的使用 requests模块的介绍与安装 作用:发送网络请求,返回响应数据。 中文文档:https://requests.readthedocs.io/projects/cn/zh_CN/latest/ 对于爬虫任务,使用 requests模块基本能够解决绝大部分的数据抓取的…

Spring 容器相关的核心注解​

以下是 Spring 容器中用于 ​​Bean 管理、依赖注入、配置控制​​ 的关键注解,按功能分类说明: ​​1. Bean 声明与注册​​ 注解作用示例​​Component​​通用注解,标记一个类为 Spring Bean(自动扫描注册) Compo…

C与指针5——字符串合集

常用函数 1、拷贝、长度、比较 size_t strlen();\\返回无符号整形 char* strcpy();char* strncpy();\\拷贝 int strcmp();int strncmp();\\比较 char* strcat();char* strncat();\\连接2、查找 char* strchr(const char * st,int ch);\\找字符第一次出现的位置 char* strrch…

论软件需求管理

目录 摘要(300~330字) 正文(2000~2500字,2200字为宜) 背景介绍(500字做左右) 论点论据(1500字做左右) 收尾(200字左右) 注:本篇论…

[特殊字符] 如何在比赛前调整到最佳状态:科学与策略结合的优化指

🧠 概述 在竞技体育中,赛前状态的调整对比赛结果起着决定性作用。所谓“最佳状态”,不仅指生理上的巅峰表现,更包括心理、认知、营养和恢复等多方面的协同优化。本文结合运动科学、心理学和营养学的研究成果,探讨赛前…

一种实波束前视扫描雷达目标二维定位方法——论文阅读

一种实波束前视扫描雷达目标二维定位方法 1. 专利的研究目标与实际问题意义2. 专利提出的新方法、模型与公式2.1 运动平台几何建模与回波信号构建2.1.1 距离历史建模2.1.2 回波信号模型2.2 距离向运动补偿技术2.2.1 匹配滤波与距离压缩2.3 加权最小二乘目标函数2.3.1 方位向信号…

基于 Spring Boot 瑞吉外卖系统开发(八)

基于 Spring Boot 瑞吉外卖系统开发(八) 自动填充公共字段 MyBatis-Plus公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,降低了冗余代码的数量。本…

【前端】从零开始的搭建结构(技术栈:Node.js + Express + MongoDB + React)book-management

项目路径总结 后端结构 server/ ├── controllers/ # 业务逻辑 │ ├── authController.js │ ├── bookController.js │ ├── genreController.js │ └── userController.js ├── middleware/ # 中间件 │ ├── authMiddleware…

【RAG】向量?知识库的底层原理:向量数据库の技术鉴赏 | HNSW(导航小世界)、LSH、K-means

一、向量化表示的核心概念 1.1 特征空间与向量表示 多维特征表示:通过多个特征维度(如体型、毛发长度、鼻子长短等)描述对象,每个对象对应高维空间中的一个坐标点,来表示狗这个对象,这样可以区分出不同种…

如何用CSS实现HTML元素的旋转效果

原文:如何用CSS实现HTML元素的旋转效果 | w3cschool笔记 (本文为科普文章,请勿标记为付费) 在网页制作中,为 HTML 元素设置旋转效果可使其更灵动,提升用户体验。本文将深入浅出地介绍如何利用 CSS 实现 H…