2020年认证杯SPSSPRO杯数学建模
C题 抗击疫情,我们能做什么
原题再现:
2020 年 3 月 12 日,世界卫生组织(WHO)宣布,席卷全球的冠状病毒引发的病毒性肺炎(COVID-19)是一种大流行病。世卫组织上一次宣布大流行是在 2009 年的 H1N1 流感爆发期间,该病感染了世界近四分之一的人口。但是,当时该决定因制造了不必要的恐慌而受到批评。SARS 尽管影响了 26 个国家,但仍未被认为是大流行病,MERS 也没有被认为是大流行病。世卫组织表示,大流行是“新疾病的全球传播”。对于达到大流行水平与否,当下没有定量的严格标准,也没有触发该定义的病例或死亡数量阈值。也就是说“大流行”特征所指的不是疾病的严重性,而是疾病传播的广泛程度。目前,在全球已有超过 200 个国家/地区报告了病毒感染病例。但由于各国的人口和经济情况差别较大,病毒检测能力和国家防疫政策都不尽相同,所以报告的病例是否就真实反映了病毒传播的情况? 如何能够对于疫情情况给出更加有效的量化指标,这是世卫组织非常关心的问题。
“无症状感染者”全称是“新冠病毒无症状感染者”,指无临床症状、但呼吸道等标本新冠病毒病原学检测呈阳性者。无症状感染者可分为两种情形:一是感染者核酸检测呈阳性,经过 14 天潜伏期的观察,均无任何可自我感知或可临床识别的症状与体征,始终为无症状感染状态;二是感染者核酸检测呈阳性,采样时无任何可自我感知或可临床识别的症状与体征,但随后出现某种临床表现,即处于潜伏期的“无症状感染”状态。无症状感染者存在传染性。但传染期长短、强弱有待确定。很多人担心“无症状感染者”会成为新的传染源,那么,到底会不会呢? 部分专家认为鉴于无症状感染者的呼吸道标本能检出病原核酸,但由于无咳嗽、打喷嚏等临床症状,病原排出体外引起传播的机会较确诊病例相对少一些。另外,《英格兰医学杂志》上近日有报告说,一名感染者从未出现症状,但所释放的病毒量与出现症状的人相当。因此,也有一部分科学家猜测:一些感染者“在症状轻微或无症状时具有高度传染性”。但要强调的是,类似状况的患者规模仍不清楚。
早在 2 月 17 日,中国疾控中心流行病学组在《中华流行病学杂志》上发表的大规模流调论文就提到,截至 2 月 11 日,中国疾控中心共收到国内报告病例 72314 例,含有 889 例无症状感染者,比例约占 1.2%。日本一个研究小组的报告称(研究论文 3 月 12 日刊登在 Eurosurveillance 杂志),对钻石公主号游轮上的 634 名新冠肺炎病例进行统计模型分析,估计无症状感染者所占比例为 17.9%。张文宏团队撰文指出,以目前部分研究为例,感染新冠病毒的人群中,无症状感染者的比例大约为 18%—31%。不过有些患者仅出现很轻微的症状,在隔离观察期间也不一定会被发现,也常常被认为是无症状。无症状感染者的识别具有一定的困难,如何快速地、准确地、最小成本地识别和判断也是世界各国非常关注的问题。
第一阶段问题: 请你的团队通过深入的数据分析,建立合理的数学模型来解决以下问题:
1. 建立数学模型,综合考虑人口数、感染数量、病死人数、疫情持续时间、经济状况、医疗条件、人口密度、防疫政策等因素,给出一个合理的界定“流行”(Epidemic) 和“大流行”(Pandemic) 病的定量条件。
2. 考虑到无症状感染者具有一定的传染性,且不容易发现,但全民进行病毒检测又成本太高,且时间过长,不利于复工复产,我们试图寻找一种更为有效的方法来最大限度地降低无症状感染者的传播风险,比如对一个地区进行抽样病毒检测来评估该地区的无症状感染者的分布情况,再制定不同的隔离和检测措施。请结合问题一的模型,针对一两个国家(或地区),给出切实可行的病毒检测抽样方案,并给出无症状感染者分布预测模型和针对相应预测结果的应对方案。
3. 给世界卫生组织写一封信,阐述你的团队对于疫情情况的判断,并给出一些防控建议和降低风险的思路。
附件一是一些网络上公开的疫情数据,更新的数据可以从https://github.com/datasets/covid-19下载。
整体求解过程概述(摘要)
新型冠状病毒(COVID-9)的爆发给世界经济和人民生活都带来了重创。面对流行病的爆发,如何评估和预测疫情,是有效控制疫情的最佳办法。为了解决这个问题,本文通过构建流行度评价体系,利用因子分析法对指标进行赋权,并以中国为例统计流行度的变化情况,通过均值-标准差控制图法计算出流行度阈值来界定“流行”(Epidemic)和“大流行“(Pandemic)病。然后在传统 SEIR 模型基础上,进行了四项修正,,对无症状感染者的分布进行预测。根据模型的结果,我们给世界卫生组织ᨀ供了一些防控建议,具体如下。
针对问题一,我们使用因子分析法和均值-标准差控制图法构建了疾病流行程度评估模型。首先流行因素和指标选取原则选取指标,构建了疾病流行度指标体系,分别 3个一级指标和 8 个二级指标,统计好相关数据后,利用极差归一法对数据进行标准化处理,消除其数量级或量纲上的不同。然后利用因子分析法赋予各指标的权重,我们得到了流行度的计算公式。定义好疾病流行开始时间后,我们计算出了中国在疫情期间的每天流行度,利用均值-标准差控制图法计算出流行度阈值,最终得出流行病的界定阈值为流行度在 52.86~82.14,大流行病的界定阈值为大于 82.14。
针对问题二,我们对 SEIR 模型进行修正构建了无症状感染者的分布预测模型。首先我们构建了基础的 SEIR 模型,为了使模型可以更加准确地模拟 COVID-19 疫情发展趋势,我们结合世界各地 COVID-19 疫情实况对 SEIR 模型进行了四项修正,并且通过对中国 COVID-19 疫情发展趋势的模拟仿真和对湖北省无症状感染者分布预测效果的评估验证了修正的 SEIR 模型准确性。最后我们使用模型对湖北省、黑龙江省和广东省的无症状感染者分布预测,得到了这三个当前无症状感染者分布较密集省份未来无症状感染者分布走势和无症状感染者消失的大致日期。
针对问题三,我们基于前两问的结果,ᨀ出了相应的疫情应对方案。ᨀ前检测出感染者可以有效地预防疫情的传播,因此我们首先需要有效地发现感染人员,对人群进行抽样检测。我们根据流行程度的不同,我们对不同的地区采取不同的抽样比例和抽样人群,形成不同的抽样策略。其次,我们根据国家卫生健康委员会和世界卫生组织有关病毒检测的指导文件,设计了我们的病毒检测方案。最后,如果发现无症状患者,要制定相应的隔离措施。我们根据无症状患者预测分布的结果划分了 3 种不同的等级,根据等级的不同制定了对应的隔离方案。
最后,我们总结了模型的内容和结果,给世界卫生组织ᨀ供的防疫的建议和具体的风险降低方案。
问题分析:
问题 1 的分析
对于如何定量界定“流行”与“大流行”,需要利构建一个疾病流行度指标体系。具体的做法思想是如何找到流行度评价的指标,并对指标进行相应的赋权。指标需要用数据表示,考虑到指标之间的量级与量纲不同,因此,要用极差归一法对各项指标进行标准化处理。标准化数据后,得到流行度的计算公式,最后根据该公式结合均值-标准差算法定量得出流行度的阈值,根据阈值构建疾病流行度指标体系从而定量界定“流行”与“大流行”。
问题 2 的分析
对于预测无症状感染人群的分布情况,需要构建一个模型进行疫情发展趋势的模拟仿真和预测无症状感染分布预测。首先,考虑到 COVID-19 是有着相对较长潜伏期的传染病,再结合各地实际疫情,在经典的 SEIR 模型基础上进行修正,从而得到修正 SEIR模型。其次,评估和验证该模型在中国疫情发展趋势的模拟仿真和湖北省无症状感染人群的分布预测的准确性。最后,使用该模型结合现有数据对湖北省、黑龙江省和广东省无症状感染群人分布进行预测。
问题 3 的分析
在前两个问题所得到的模型基础上,根据疫情严重程度和无症状感染人群密度等级对地区进行归类,再根据不同的疫情严重程度和无症状感染人群密度等级分别ᨀ出相应针对性的抽样检测隔离方案。具体做法是先根据疫情严重程度采用不同的抽样方案,例如抽样来源不同;然后再根据各地区不同的无症状感染人群密度等级分别采用不同的隔离方案,例如隔离地点和检测内容不同。最后,根据以上结果,结合实际情况,给出具体的防控管理政策,从而降低无症状感染人群传播病毒的风险和病毒在各地区传播的风险。
模型假设:
1. 假设题目所给的数据真实可靠;
2. 假设病毒只通过人传人的途径进行传播;
3. 假设现阶段没有能够治疗的特效药和疫苗;
4. 假设外界因素对各种概率的值无影响;
5. 假设各地区出生人数、死亡人数和国际间的人口流动对模型无影响;
论文缩略图:
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:(代码和文档not free)
%SEIR模型
clear;clc;
%参数设置
N=11082000;%武汉人口数
tf=1;%道路通行阻碍系数
pe=1;%人口密度阻碍系数
fl=0.1;%由政府政策引起的人口流动性的变化
Bf=0.5;%因防控阻碍传染率系数
hy=1;%医疗水平影响治愈率系数
hk=1;%医疗水平影响死亡率系数
mh=1;%医疗能力水平系数
I=2;%传染者
R=0;%康复者
D=0;%死亡患者数量
E=0;%潜伏者
S=N-I;%易感染者
r=50;%接触病患的人数
a=0.0125;%潜伏者患病概率
B=0.8;%感染概率
y=0.014384;%日康复概率
k=0.002542;%日致死率
r=r*tf*pe;
r1=r;%潜伏者接触的人数
T=20:1000;
nt=0.1;%日有效核酸检测系数
co=2000;%日核酸检测成本
for idx =1:length(T)-1
if idx>14
B=B*Bf;
r=r*fl;
r1=r1*fl;
mh=1.5;
end
%进行检测
% B=B*Bf;
% r=r*fl;
% r1=r1*fl;
% mh=1.5;
% E(idx)=E(idx)-nt*co;
% r1=r1*0.1;
% disp('实行核酸检测')
if idx>13&&idx<40
E(idx)=E(idx)-nt*co;
r1=r1*0.2;
disp('实行核酸检测')
else
r1 =r;
end
S(idx+1)=S(idx)-r*B*I(idx)*S(idx)/N;%易感者
E(idx+1)=E(idx)+r1*B*S(idx)*I(idx)/N-a*E(idx);%潜伏者
I(idx+1)=I(idx)+a*E(idx)-(y*mh+k/mh)*I(idx);%患病者
R(idx+1)=R(idx)+y*mh*I(idx);%康复者
D(idx+1)=D(idx)+k*I(idx)/mh;%死亡病例
end
B={'01-19','02-08','02-28','03-19','04-08','04-28','05-18','06-07','06-27','07-17','08-06'};
plot(T,E,T,I,T,R,T,D);
grid on;
set(gca,'XTickLabel',B)
xlabel('日期');
ylabel('人数');
legend('潜伏者','传染者','康复者','死亡者');
%title('疫情情况');