2020年深圳杯A题数学建模解答文档及程序
时间:2023-11-20 20:07:01
2020年深圳杯数学建模挑战赛A-国家先行示范区建设中的医疗养老保障问题
问题重述
2020年深圳杯数学建模A医疗养老保障问题
??建设民生幸福标杆和可持续发展先锋是深圳城市发展密切相关的重要组成部分。民生幸福需要建立高质量、均衡的公共服务体系,建立全覆盖、可持续的社会保障体系,实现幼儿教育、优秀教育、劳动、良好医疗、老年护理、宜居生活、弱帮助。没有高质量的社会保障体系,就没有健康,民生幸福。深圳是一个发展迅速的新兴城市。其人口结构、民生需求和社会环境与其他城市不同。同时,也存在一些城市资源配置、社会保障、民生健康等问题。因此,如何更合理地配置深圳的城市资源,如何建立可持续发展的社会、医疗和养老保障体系,满足快速发展和变化的城市需求,有利于实现建设国家试点示范区的发展目标。
任务:
??(1)参照国际先进标准,根据国情和现状,对深圳未来5年、10年、15年医疗养老保障目标进行量化描述。
??(2)根据深圳的现状(人口数量和结构、经济收入和消费水平、医疗资源和水平、社会保障体系和能力等),分析研究如何合理配置医疗养老资源(医院、医院、养老院、医生、服务保障人员等)。在未来5年、10年和15年,以实现(1)提出的目标。
??(3)研究设计符合(1)目标的医疗养老保险方案。
问题分析
??1.深圳居民的健康水平因时间段而异。我们需要收集深圳的健康水平数据。根据深圳的实际情况和附件一中的材料,我们详细调查了深圳的人口数量GDP、人均工资、医院数量、医生数量、养老机构数量以及各辖区居民的健康水平。通过调查数据定量分析影响深圳居民健康的因素和深圳居民健康水平的发展趋势,根据国家健康中国2030根据国家健康中国2030规划大纲分析支持深圳建设中国特色社会主义示范区措施改变深圳居民健康水平发展趋势,积极为国家政府改善民生提出建议。
??2.根据我们收集的大数据健康学科前沿成果数据,从人口数量,GDP、详细分析了深圳经济和居民健康水平的发展趋势和原因,包括人均工资、医院数量、医生数量和养老机构数量。综合考虑饮食习惯、生活方式、工作压力、医疗保障和环境质量因素,采用层次分析方法,影响居民人口,建立能够支持健康水平动态测控需求的居民健康水平预测模型GDP、人均工资的三个因素是自变量,以影响城市居民健康医院、医生和养老机构的数量。分析政策环境和居民自身情况,给出减少失配健康医疗和养老保障问题的最佳方案。达到预测的目的。
??3.为提高深圳居民健康水平,提高深圳养老保障质量,根据问题2建立的健康水平评价模型设计具有动态监测功能的干预计划,结合健康深圳行动计划,制定实施计划,分析实施计划的适用性和干预计划的可行性。
建立和求解模型
??查阅资料可知,医院和养老院的补贴方案如下: ?
深圳:机构每次收到一人补贴 100 元居民每次入院补贴一次 1000 元。 ?
广州:机构每次收到一人补贴 110 元居民每次入院补贴一次 3000 元。
同时,根据数据,深圳的入院率为 利用深圳市75% 2020 年 7 月 代入上述模型的统计数据分别计算了广州贴、深圳补贴和广州补贴下的难度系数F :
不补贴时:0.2816,广州市:0.1885,深圳市:0.2030
??根据分析,目标函数(难度系数)越小越好。因此,在广州和深圳的补贴计划下,供需匹配程度有所提高,难度系数较低。然而,由于补贴计划太简单,有更好的补贴计划。综上所述,深圳和广州的补贴计划可以在一定程度上有效地缓解医疗和养老金困难。
从上述难度系数规划模型可以看出,机构和居民的保险可以调整供需匹配程度。但由于目前的补贴计划是根据补贴次数,不能最好地调整供需关系,为了有效缓解医疗养老困难问题,可以使用上述模型搜索最佳补贴计划,根据影响因素进行动态调整,进一步优化供需关系。
??在设计保险方案时,应从社会和机构的角度考虑。保险结束后,不仅要降低难度系数,还要尽可能少地控制保险金额(在可接受范围内)。保险计划的具体要求如下:
第一步:在信心范围内搜索现有保险方案的最佳解决方案
??根据对深圳和广州现有保险计划的分析,保险将导致机构更愿意接受患者和老年人,居民更愿意住院。这两个城市的保险计划可以降低难度系数,在一定程度上缓解医疗和养老困难,但不同的保险计划也不同于养老困难。因此,以最低难度系数为目标函数,采用等步长搜索法,理论上可以获得最优补贴。算法流程如下:
??第二步:在补贴可接受范围内确定最佳动态保险函数
保险分为居民保险和机构补贴两类,其影响因素如下: 居民获得保险补贴后,愿意等待入院时间比以前长。机构获得补贴后,将愿意花费更多的费用安排居民入院。因此,通过保险补贴,可以调整供求关系,缓解医疗和养老困难。 基本补贴金额和动态补贴金额可以表示总体保险补贴金额:
??通过绘制补贴金额与供求之间的关系图,可以分析补贴金额最小的补贴方案,从而获得可接受的补贴范围。 通过等步长搜索,给予机构114元补贴,给予居民 154 元补贴时,难度系数最小,此时供需比约等于 1。但在这种情况下,补贴总额过高,不是 根据实际情况,可以选择置信区间(0.8、1)绘制补贴金额与供需匹配 区域图如下所示,在置信区间标记供需比。
程序代码1
%趋势移动平均法 clc,clear; a=xlsread('E:\Desktop\数据1.xlsx'); data=a'; %2003至2019年的数据 y1=data(1,:); y2=data(2,:); y3=data(3,:);
yuce_population=[]; %预测后期16年即到2035年的人口
yuce_GDP=[]; %预测后期16年即到2035年的GDP
yuce_salary=[]; %预测后期16年即到2035年的平均薪水
for i=1:8
m1=length(y1);
n=6;
%%人口预测
for i=1:m1-n+1
yhat1(i)=sum(y1(i:i+n-1))/n;
end
yhat1;
m2=length(yhat1);
for i=1:m2-n+1
yhat2(i)=sum(yhat1(i:i+n-1))/n;
end
yhat2;
a21=2*yhat1(end)-yhat2(end);
b21=2*(yhat1(end)-yhat2(end))/(n-1);
ynext1=a21+b21;
ynext2=a21+2*b21;
yuce_population=[yuce_population, ynext1,ynext2];
y1=[y1,ynext1,ynext2];
%%GDP预测
for i=1:m1-n+1
yhat1t(i)=sum(y2(i:i+n-1))/n;
end
yhat1t;
m2=length(yhat1t);
for i=1:m2-n+1
yhat2t(i)=sum(yhat1t(i:i+n-1))/n;
end
yhat2t;
a21t=2*yhat1t(end)-yhat2t(end);
b21t=2*(yhat1t(end)-yhat2t(end))/(n-1);
ynext1t=a21t+b21t;
ynext2t=a21t+2*b21t;
yuce_GDP=[yuce_GDP, ynext1t,ynext2t];
y2=[y2,ynext1t,ynext2t];
%%薪水预测
for i=1:m1-n+1
yhat1s(i)=sum(y3(i:i+n-1))/n;
end
yhat1s;
m2=length(yhat1s);
for i=1:m2-n+1
yhat2s(i)=sum(yhat1s(i:i+n-1))/n;
end
yhat2s;
a21s=2*yhat1s(end)-yhat2s(end);
b21s=2*(yhat1s(end)-yhat2s(end))/(n-1);
ynext1s=a21s+b21s;
ynext2s=a21s+2*b21s;
yuce_salary=[yuce_salary, ynext1s,ynext2s];
y3=[y3,ynext1s,ynext2s];
end
程序代码2
clc %原始数据 %人数(单位:万人) bt=xlsread('E:\Desktop\数据1.xlsx'); bt=bt'; bt2=xlsread('E:\Desktop\数据2.xlsx'); bt2=bt2'; %原始数据 %训练指标1 sqrs=bt(1,:); %训练指标2 sqjdcs=bt(2,:); %训练指标3 sqglmj=bt(3,:); %待预测数据 glkyl=bt(4,:); glhyl=bt(5,:); gltyl=bt(6,:); p=[sqrs;sqjdcs;sqglmj]; %输入数据
矩阵 t=[glkyl;glhyl]; %目标数据矩阵 %利用premnmx函数对数据进行归一化 [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); % 对于输入矩阵p和输出矩阵t进行归一化处理 dx=[-1,1;-1,1;-1,1]; %归一化处理后最小值为-1,最大值为1 %BP网络训练 net=newff(dx,[3,1000,2],{ 'tansig','tansig','purelin'},'traingdx'); %建立模型,并用梯度下降法训练. net.trainParam.show=1000; net.trainParam.Lr=0.05; %学习速度为0.05 net.trainParam.epochs=50000; %最大训练轮回为50000次 net.trainParam.goal=0.65*10^(-3); %均方误差 net=train(net,pn,tn); %开始训练,其中pn,tn分别为输入输出样本 %利用原始数据对BP网络仿真 an=sim(net,pn); %用训练好的模型进行仿真 a=postmnmx(an,mint,maxt); % 把仿真得到的数据还原为原始的数量级; %本例因样本容量有限使用训练数据进行测试,通常必须用新鲜数据进行测试 x=2019:2035; newk=a(1,:); newh=a(2,:); figure (2); subplot(2,1,1);plot(x,newk,'r-o',x,glkyl,'b--+') %绘值医院数量训练对比图; legend('网络输出医院数量','实际医院数量'); xlabel('年份');ylabel('医院数量/万人数'); subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b--+') %绘制医生数量训练对比图; legend('网络输出医生数量','实际医生数量'); xlabel('年份');ylabel('医生数量/个'); % subplot(2,1,2);plot(x,newh,'r-o',x,gltyl,'b--+') %绘制养老机构数量训练对比图; % legend('网络输出养老机构数量','实际养老机构数量'); % xlabel('年份');ylabel('养老机构数量/万吨'); %利用训练好的网络进行预测 % 当用训练好的网络对新数据pnew进行预测时,也应作相应的处理: population=bt2(1,1:16); GDP=bt2(2,1:16); salary=bt2(3,1:16); pnew=[population;GDP;salary]; pnewn=tramnmx(pnew,minp,maxp); %利用原始输入数据的归一化参数对新数据进行归一化; anewn=sim(net,pnewn); %利用归一化后的数据进行仿真; anew=postmnmx(anewn,mint,maxt) %把仿真得到的数据还原为原始的数量级;