2015-2016第1学期数学建模课程设计题目:医疗保障基金额度的分配:学号:班级:时间:摘要随着人们生活水平的提高及社会制度的发展,医疗保险事业显得越来越重要,各企业也随之越来越注重员工的福利措施,医疗保障基金额度的分配也成为了人们的关注热点。
扩大医疗保障受益人口也是政府和企业面临的难题,因而根据历史统计数据,合理的构造出拟合曲线,分析拟合函数的拟合程度,从而为基金的调配以及各种分配方案做方向上的指导。
本文针对A,B两个公司关于医疗保障基金额度的合理分配问题,根据两公司从1980-2003年统计的医疗费用支出数据,科学地运用了MATLAB软件并基于最小二乘法则进行了多项式曲线拟合,成功建立了医疗保障基金额度的分配模型。
最后,对不同阶数的多项式拟合曲线的拟合程度进行了残差分析,并输出相关结果,得出拟合程度与多项式阶数的关联。
此问题建立在收集了大量数据的基础上,以及利用了MATLAB编程拟合曲线,使问题更加简单,清晰。
该模型经过适当的改造,可以推广到股票预测,市场销售额统计等相关领域。
关键字:matlab,最小二乘多项式拟合,阶数,残差分析一.问题重述某集团下设两个子公司:子公司A、子公司B。
各子公司财务分别独立核算。
每个子公司都实施了对雇员的医疗保障计划,由各子公司自行承担雇员的全部医疗费用。
过去的统计数据表明,每个子公司的雇员人数以及每一年龄段的雇员比例,在各年度都保持相对稳定。
各子公司各年度的医疗费用支出见下表(附录1)。
试利用多项式数据拟合,得到每个公司医疗费用变化函数,并绘出标出原始数据的拟合函数曲线。
需给出三种不同阶数的多项式数据拟合,并分析拟合曲线与原始数据的拟合程度。
二.模型假设1.假设A,B两公司在1980年底才发放医疗保障基金。
2.假设在1980—2003年期间,A,B公司的雇员健康状况基本稳定,即没有大规模的疾病出现。
3.假设在1980---2003年期间,每个子公司的雇员人数以及每一年龄段的雇员比例,在各年度都保持相对稳定。
三.问题分析解决医疗保障基金额度的分配问题,就是为了固定资源得到最优配置。
在此问题中,由于给定的均是离散的数据点,并且属于非线性相关的点,因此我们采用最小二乘法的思想对离散数据点进行多项式拟合,分别作出了不同阶数(一阶,二阶,三阶)的拟合曲线,并对各拟合曲线的拟合程度进行了定性和定量的分析,本文主要采用的是图示法和残差分析法。
由题设知,A,B两个子公司在1980-2003年的医疗保障费用支出已给定,利用matlab中的绘图函数plot函数先将给定的离散点绘出,观察图形的基本走势,最终确定出利用最小二乘法的基本思想,将多项式作为基函数对已知节点进行拟合,即多项式拟合。
为了达到更好的拟合程度,分别采用了不同阶数的曲线拟合,并对最终拟合结果进行误差分析。
采用最小二乘法则进行拟合曲线时,实际上是求一个系数向量,该系数向量是一个多项式的系数。
在matlab中,主要用polyfit函数求得拟合多项式的系数,再用polyval函数按所得多项式计算所给出的点上的函数近似值。
1.polyfit函数的调用格式:[P,S]= polyfit(X,Y,n )2. polyval函数的调用格式:Y=polyval(P,X)说明:X,Y为已知离散数据点,n为多项式阶数,返回P为幂次从高到低的多项式系数向量,是一个行向量。
S 是一个数据结构,返回采样点的误差向量。
本题中,将年分,公司A,B 的保障基金的数值分别构造成矩阵。
X=1980:2003;A=[ 8.28,8.76,9.29,10.73,10.88,11.34,11.97,12.02,12.16,12.83,13.90,14.71,16.11,16.40,17.07,16.96,16.88,17.20,19.87,20.19,20.00,19.81,19.40,20.48];B=[8.81,9.31,10.41,11.61,11.39,12.53,13.58,13.70,13.32,14.32,15.84,14.67,14.99,14.56,14.55,14.80,15.41,15.76,16.76,17.68,17.33,17.03,16.95 16.66];其中X 是年份矩阵,A 是公司A 的数值矩阵,B 是公司B 的数值矩阵。
四.模型建立通过对该问题的分析,基于最小二乘曲线拟合的大量调研资料结果表明,采用多项式数据拟合所得到的拟合优度较其他形式的基函数所得的拟合结果高,因此,本题中假定了所给定的离散数据点是服从一般多项式的形式:R a a x a x a P i n n n x ∈+++=-其中,...121。
于是,以年份X 作为自变量,医疗费用支出作为因变量Y ,根据散点图的走势,对A,B 两子公司分别作了以下阶数的数据拟合:(1) 直线趋势方程:b ax y +=(2) 二阶多项式趋势方程:3221a x a x a y ++=(3) 三阶多项式趋势方程:432231a x a x a x a y +++=(4) 五阶多项式趋势方程:6524334251a x a x a x a x a x a y +++++=利用matlab 软件进行了绘图,残差分析,相应的程序源代码见附录。
五.模型求解1. A子公司的相关数据拟合信息1.1 A公司的离散数据散点图:根据离散点图的走势,确定拟合阶数。
1.2 A子公司不同阶数拟合曲线与原始数据比较示意图以及相应的残差变化图如下:程序运行结果见附录2:2. B子公司的相关数据拟合信息2.1 B子公司的离散数据散点图:根据离散点图的走势,确定拟合阶数。
2.2 B 子公司不同阶数拟合曲线与原始数据比较示意图以及相应的残差变化图如下:程序运行结果见附录2 .六.模型分析与改进1. 模型分析与检验:本文主要采用的是基于matlab 的多项式拟合,实现了对于给定离散数据,在同一坐标下绘出不同阶数(一阶,二阶,三阶,五阶)的拟合曲线与原始数据的对比图以及残差变化图,并将多项式系数,残差以表格形式输出,整个建模过程直观,清晰。
下面具体从拟合值的准确性来检验模型的优良性。
方法一:对于模型的拟合程度,可直接将拟合函数和实际值绘制在同一坐标下,对数据进行直观的对比,从而判断所得拟合函数的优良。
方法二:可以利用°21()niik i k x x x ==-∑(1,2,4i =)(二数)来求取各阶的实际数值与拟合函数值之间的波动情况,简略的以此来鉴定该阶数在特定的那种情况下的拟合程度。
根据图示以及残差返回值可知,A,B两子公司在采用多项式拟合时,不同阶数的拟合曲线都是相对稳定的,比较而言,采用较高(n<=5)阶进行拟合时,误差会较小,拟合程度较为理想,但当阶数达到一定程度时,会出现龙格现象,即拟合的病态问题。
因此,为了避免这种病态的产生,在实际应用过程中,应尽可能采用低阶进行拟合,对于实现要求较高次数的多项式拟合,应采用分段,低次的多项式进行组合拟合。
2.模型评价:2.1 模型优点:(1) 本文对A,B公司在进行四个模型的建模时,基函数采用的是相对简单,形式较统一化的多项式,整个拟合过程相对简单,便于理解。
(2) 利用matlab绘图功能实现了对于给定离散数据,在同一坐标下绘出不同阶数(一阶,二阶,三阶,五阶)的拟合曲线与原始数据的对比图以及残差变化图,对后续的模型分析和检验提供了较为直观的图形依据。
(3) 利用matlab标准输出,将不同阶数(一阶,二阶,三阶,五阶)的多项式系数,残差以表格形式打印出来,对后续的模型分析和检验提供了较为准确的数据依据。
2.2 模型缺点:(1)在建立模型时,只是对文中所给定的离散数据进行了简单的拟合,功能相对单一,可扩展性差。
(2) 模型的准确性直接影响模型的正确性,在数据处理方面存一定的不足,影响模型的正确性。
(3)按题目要求本文只是简单的运用多项式拟合,得到每个公司医疗费用变化函数,适用性不强。
3 模型改进和推广:(1) 在拟合时可用较为复杂的一般的拟合函数代替简单的多项式拟合,得到每个公司医疗费用变化函数,使得结果更加精确,(2)过去的统计数据表明,每个子公司的雇员人数以及每一年龄段的雇员比例,在各年度都保持相对稳定,本文建立的模型可用来预测2003年之后各子公司各年度的医疗费用支出情况。
(3)本文建立的模型可用来预测各部分比例较固定的事物的发展趋势,比如预测某一地区短期某一类产品的几类子产品的销售量;(4)本文建立的模型可推广到市场预测,对市场调查后的数据进行运算、处理以及股票预测等应用领域。
七.建模心得数学建模,对于我们数学专业的学生来说并不陌生,但又不是太了解。
本学期开设了数学模型,使我们真正知道了什么叫做数学建模。
在学习之中,锻炼了我们的能力,获益非浅。
真正用到了数学的理论知识去解决我们在实际生活上的一些问题。
从最初的“建模”简介,我们了解到数学在实际生活中的应用之广、之深、之切。
小到日常的衣食住行,大到科技进步,人类生存。
庞大的数学知识体系良好地规我们的生活,与我们每个人都息息相关,并随着科技的进步,数学与我们的关系也越来越密切。
终于明白了,为什么数学是真正的科学工具,是人类发展进步的基础学科,它既能规现在,又能预测未来。
在这次实践中,我们选择的是关于医疗保障基金额度的分配模型,可以说是一个小模型,里面所用到的知识和方法也是比较容易的。
在分配到相应题目之后,全体组员就开始着手分头行动,经过三天的努力模型基本建成,通过三天的互相交流,我们感觉到团队精神是数学建模是否取得好成绩的最重要的因素,一队四个人要相互支持,相互鼓励。
在今后的学习生活中,我们应当将理论与实践相结合,努力提高自己的数学专业水平,尽早成为一名优秀的数学人。
参考文献:[1]启源金星叶俊,数学模型,:高等教育,2011年.[2]庆扬王能超易大义,数值分析,:清华大学,2008年.[3]卫国,MATLAB程序设计与应用,:高等教育,2009年.[4]Gerald Recktenwald ,数值方法和matlab实现与应用,:机械工业,2004年.附录:附录1:附录2(matlab程序源代码):X=1980:1:2003;Y=[8.81,9.31,10.41,11.61,11.39,12.53,13.58,13.70,13.32,14.32,15.84,14.67,14.99,14.56,14.55,14.80,15.41,15.76,16.76,17.68,17.33,17.03,16.95 16.66];xfit=linspace(1980,2003);p1=polyfit(X,Y,1);yfit1=polyval(p1,xfit);r1= Y-polyval(p1,X);p2=polyfit(X,Y,2);yfit2=polyval(p2,xfit);r2= Y-polyval(p2,X);p3=polyfit(X,Y,3);yfit3=polyval(p3,xfit);r3= Y-polyval(p3,X);p5=polyfit(X,Y,5);yfit5=polyval(p5,xfit);r5= Y-polyval(p5,X);fprintf('\nCurve coefficients\n ');fprintf(' constant x x^2 x^3 x^4 x^5\n ');fprintf('liner ');fprintf(' %14e',fliplr(p1));fprintf('\n'); %fliplr(p1)对p1实施左右翻转fprintf('quadratic');fprintf(' %14e',fliplr(p2));fprintf('\n');fprintf('cubic ');fprintf(' %14e',fliplr(p3));fprintf('\n');fprintf('higher ');fprintf(' %14e',fliplr(p5));fprintf('\n');subplot(2,1,1);plot(X,Y,'-p',xfit,yfit1,'g-',xfit,yfit2,'m:',xfit,yfit3,'b:',xfit,yfit5,'y-');legend('data','liner','quadratic','cubic','higher');xlabel('X');ylabel('Y');title('线性,二阶,三阶,五阶的拟合曲线与原始数据比较图');subplot(2,1,2);plot(X,r1,'-o',X,r2,'--s',X,r3,':d',X,r5,'-*');legend('liner','quadratic','cubic','higher');xlabel('X');ylabel('Y');title('线性,二阶,三阶,五阶的拟合曲线残差变化图');fprintf('\nresiduals\n ||r||_2 max error\n ');fprintf('liner %8.5f %8.5f\n',norm(r1),norm(r1,inf)); %norm(r1)求矩阵r1的二数。