平顶山学院数学建模培训2012-07-07组合预测模型(平顶山学院王安2012-07-07)本节首先为充分利用各种单项预测方法所主要能准确提供的全局的个别部分信息和达到提高整个系统预测精度的目的,引入了时间因子的概念,并给出了连续性时间因子的性质然后从单项预测模型出发,并给出了基于遗传算法的求解单项预测模型权系数步骤,由此便得出组合预测的预测值,在本章昀后通过实例分析证明了组合预测在保持预测稳定性的同时,可以提高预测的精度。1模型准备在预测中,由于各种单项预测具有不稳定性,各种预测方法都存在时好时坏的特点,我们提出了组合预测的方法,通过结合历史预测数据与实际值,我们给定一个各种预测的昀优权重组合,使得这些历史预测数据在加权之后,总误差昀小,可以看出,这种加权预测的方法,结合了大量的历史数据,使得预测结果呈现稳定的趋势,但由于历史数据太多,各种数据缺乏主次重要性,使得预测结果并不十分精确.因此,我们依据实际情况,确定出一个合适的呈平滑上升趋势的时间因子序列,在历史数据的误差中加上相应的时间因子使得近期数据的重要性增大,从而达到在保证稳定性的前提下,提高了组合预测的预测准确性.这样经过时间因子加权后确定的昀优权重组合,更具有实际意义。为了加强时间的连续性影响,削弱时间的滞后性影响,在误差平方和昀小的基础上,加入了时间因子,使得根据误差平方和昀小原理求出的预测值与真实值保持一致变化,求出下一时段的组合权重。根据预测量随时间变动的特点,以下引入了时间因子的定义。定义1.1时间因子定义:时间因子是反映不同时间数据对预测值影响程度的一种权重tη。,1,,tppn=+性质1.1如果预测对象具有连续性,则时间因子tη是关于t的递增函数或数列结合实际情况,给出两个连续性时间因子序列,其具体构造过程如下:1.求各期适应度:()()212111miijjinmipiijjyyfyy===−=⎛⎞⎜⎟⎜⎟⎜⎟−⎜⎟⎝⎠∑∑∑1平顶山学院数学建模培训2012-07-07作适应度的0x序列:01(,,...,)ppnxfff+=做0x的累加序列得到连续性时间因子序列1x:()11,,,ppnxηηη+=其中:12pppffh++=,()11,2,,ttpiiphfftppn=+=+=++∑(,1,,ttnttphtppnhη===+∑)(4.1)2.通过个时段内的真实值和预测值的历史数据,预测第个时段的预测值,由远期到近期的权重依次为:1np−+1n+()()21ttpnnpη=+−+,1,,tppn+(4.2)=连续性时间因子的作用是提高近期数据的良好影响,削弱远期数据的滞后影响,对于组合预测模型来说,时间因子可以使近期预测效果好的单项预测模型的权系数自动适当放大,使得权系数的确定具有时变性,结合组合预测的方法进而提高预测的稳定性和精确度;在具有时间因子的组合预测模型中,时间因子的设置可以提高近期数据对预测的影响,使预测容纳更多的隐含信息,可以提高预测的稳定性和精确性,使预测的结果更具有实际意义。2符号说明iy:第个时段的实际值i1,2,,in=ijy:表示在第个时段第ij种单项预测方法的预测值,1,2,,,in=1,2,,jm=jw:表示第种预测方法的权重系数j1,2,,jm=ijiijayy=−:为在第i个时段第种单项预测方法的单项预测误差jˆiy:第个时段的组合预测方法的预测值i1,2,,,in=iε:第个时段的组合预测方法的预测值与真实值的误差;iiη:第i个时段的时间因子即第个时段的组合预测方法的预测值与真实值的误差平方的系数。i2平顶山学院数学建模培训2012-07-073模型建立第i个时段的组合预测方法的预测值:(4.3)1ˆmijjyw==∑ijyij第i个时段的组合预测方法的预测值的绝对误差:(4.4)1ˆmiiiijjyyywyε==−=−∑设分别为m种单项预测方法的加权系数,为了使组合预测保持无偏性,加权系数应满足12,,,m==∑0jw1≤≤(4.5)时间因子对历史数据的影响,能够加强近期的数据的影响,削弱远期历史数据的滞后影响,并保持数据变化的连续性,从而对事物进行综合精确的预测。这能使预测值更有效的反应事物变化的规律。具有时间因子的组合预测模型的数学模型(4.6)()22111minnnmiiijiijiijJwηεη===⎛⎞==−⎜⎟⎝∑∑∑yy⎠(4.7)1..11,2,,mjistwjm===∑111,2,,njijmη===∑(4.8)(4.9)011,2,jwj≤≤=,m,011,2,jjmη≤≤=(4.10)其中(4.6)表示具有时间因子的组合预测的总误差平方和昀小的目标函数;(4.7)表示具有时间因子组合预测方法的单项预测模型的权系数和为1;(4.8)表示具有时间因子组合预测方法的权系数和为1;(4.9)表示具有时间因子组合预测方法的单项预测模型权系数在0到1之间;(4.10)表示具有时间因子组合预测方法的时间因子在0到1之间。4模型的遗传算法求解遗传算法求解具有时间因子的组合权重系数的基本步骤如下:3平顶山学院数学建模培训2012-07-07Step1首先将组合权值各用8位二进制序列表示,得到长度为121,,...,n−()81n−的二进制染色体序列,通过来计算。初始化产生个体数为30的群体pop。nw121...n−−−−−1Step2由于Step1中产生的群体,有一部分超出了约束范围,为了使所有个体满足约束条件,我们对群体中的所有染色体进行解码得出相应的。如果超出了的约束范围(,),我们重新产生该染色体的基因,直到满足约束条件为止。121,,...,n−121,,...,n−123...1n=1231...1n−++++Step3由于求解目标函数的昀小值,因此目标函数值小的个体适应度较大,首先求出所有个体的累计倒数和:()()()111211ssumfffM=+++−然后求出个体的适应度()1()fiffissum=。同时我们用适应度昀大个体替换适应度昀小个体,并将昀优个体放到种群昀后,不进行交叉变异。Step4求出个体累计适应度。用轮盘赌法,随机产生概率,根据概率所在的区间选择个体进行遗传。fitnesscumsumffi(())=Step5对所有个体随机两两配对,然后按照交叉概率,进行单点交叉。cPStep6对所有个体的所有基因产生相应的概率,符合变异概率的进行变异操作。mPStep7不断进行迭代操作,进行500次后,取出昀优染色体序列,解码输出昀优值,算法结束。12,,...,n所示。4平顶山学院数学建模培训2012-07-07图4.1遗传算法求解时变组合权重的算法流程图5平顶山学院数学建模培训2012-07-075实例仿真为了验证和评价具有时间因子时变权重的组合预测模型的效果,本文分别选取回归预测、指数平滑预测及灰色预测和本节提出的有三种方法组合方法种组合模型方法对某煤矿1988-2004年原煤产量进行预测,原煤产量见表4.1。首先用1988年到2003年数据进行建模预测。表4.1某煤矿原煤产量历史数据序号123456年份198819891990199119921993产量1813.602020.102100.002111.002204.462392.29序号789101112年份199419951996199719981999产量2633.292720.742986.003021.372926.912778.16序号1314151617年份20002001200220032004产量2798.902819.613098.673482.863749.405.1回归预测模型回归预测模型,用1988年到2003年的煤矿产量数据作为自变量ix,用1989年到2004年的煤矿产量数据作为,要使得近似表达为,然后利用昀小二乘法原理估计参数和的值,得到回归预测模型iyyabx=+abxη=++εab(3-11)1.01192.949yx=+昀后根据回归方程来预测1989年到2004年的产量,用SPSS进行数据分析得,方差分析结果表明其显著性概率值假设检验的显著性概率Sig.小于0.05,所以回归方程有统计意义。具有较好预测效果的变量t的值应大于2或者小于-2,回归预测模型中主要参量检验的假设检验的显著性概率均小于0.05[57]。回归预测模型预测效果和相对误差曲线如下图4.2和图4.3所示。6平顶山学院数学建模培训2012-07-07图4.2预测值与真实值比较图图4.3相对误差曲线图5.2指数平滑预测模型指数平滑预测模型,设观测的样本序列为{,1,2,3,,}iXxin==…,则一次平滑指数平滑式子为:式子为为次指数平滑值;a为加权系数,且0,预测值为(1)(1)1(1)iiiSaxaS−=+−(1)iS1ˆia≤≤1ˆ(1)iixaxax+=+−即以第i期指数平滑值作为期的预测值。确定昀优的加权系数使得预测值与真实值的误差平方和的均值昀小。1i+目标函数:211ˆmin()ntttSxn==−∑2x(3-12)..01sta≤≤(3-13)指数平滑法算法步骤(程序见附录三)Step1输入原始样本序列为{,1,2,3,,}iXxin==…。Step2依据一次指数平滑式,求出指数平滑值。(1)(1)1(1)iiiSaxaS−=+−iSStep3依据预测公式1ˆˆ(1)iiixaxax+=+−,把第i期的指数平滑值作为期的预测值。iS1i+Step4采用昀小方差法确定预测值。初始值120S=2xx+,方差表达式为211ˆ(ntttSxn==−∑2)x,求出当昀小时的值。2SaStep5输出预测结果ˆ,1,2,3,,ixin=…。指数平滑预测模型预测效果和相对误差曲线如下图4.4和图4.5所示。7平顶山学院数学建模培训2012-07-07图4.4预测值与真实值比较图图4.5相对误差曲线5.3灰色GM(1,1)预测模型GM(1,1)预测模型,建立原煤产量的GM(1,1)预测模型的方法如下:令()()(){}(0)(0)(0)(0)1,2,,XXXXn=为历史原煤产量,为累加生成序列,即()(1)Xt()()(1)(0)1,1,2,,imXtXmt===∑nGM(1,1)模型的白化微分方程为(1)(1)dXaXudt+=其中,为待辨识参数,u为待辨识内生变量。设待辨识向量,按昀小二乘法求得式中aˆaau⎛⎞=⎜⎟⎝⎠1ˆ()TaBBTy−=B()()()()()()()()()(1)(1)(1)(1)(1)(1)112212321112XXXXBXnXn⎡⎤−+⎢⎥⎢⎥⎢⎥−+⎢⎥=⎢⎥⎢⎥⎢⎥−−+⎢⎥⎣⎦##11()()()(0)(0)(0)23XXyXn⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦#于是可得到灰色预测的离散时间响应函数为()()(1)(0)11atuXtXeaa−⎛⎞+=−+⎜⎟⎝⎠u)((1)1Xt+为所得的累加的预测值,将预测值还原即为()()()()(0)(1)(1)ˆˆˆ11,1,2,3XtXtXtt+=+−=n利用MATLAB编写程序(程序见附录四)实现了原煤产量的灰色预测的求解。模型求解精度表见表4.3,方差比C=0.471660,小误差概率p=1.000000程序预测精度合格。表4.3模型精度检验表预测效果好合格勉强合格不合格C0.951C≤0.80.95C≤0.70.8C≤0.7C≤P0.35P≤0.350.5P≤0.50.65P≤0.651P≤8平顶山学院数学建模培训2012-07-07GM(1,1)模型预测值与实际值比较和相对误差曲线如图4.7和图4.8所示。图4.7预测值与实际值比较图图4.8相对误差曲线图5.4组合预测模型以回归预测模型、指数平滑预测模型和GM(1,1)预测模型预测结果为基础,利用4.1节提出的组合预测模型求解。(程序见附录五)程序运行效果如图4.10和图4.11所示。图4.10组合预测模型误差平方和