数学建模之灰色预测模型WEIHUA system office room 【WEIHUA 16H-WEIHUA WEIHUA8Q8-一、灰色预测模型简介(P372)特点:模型使用的不是原始数据列,而是生成的数据列。
优点:不需要很多数据,一般只用4个数据就能解决历史数据少,序列的完整性和可靠性低的问题。
缺点:只适用于中短期的预测和指数增长的预测。
1、GM(1,1)预测模型GM(1,1)表示模型为一阶微分方程,且只含有一个变量的灰色模型。
模型的应用 ①销售额预测②交通事故次数的预测③某地区火灾发生次数的预测④灾变与异常值预测,如对旱灾,洪灾,地震等自然灾害的时间与程度进行预报。
(百度文库)⑤基于GM(1,1)模型的广州市人口预测与分析(下载的文档) ⑥网络舆情危机预警(下载的文档) 步骤①级比检验与判断由原始数据列(0)(0)(0)(0)((1),(2),,())x x x x n =计算得序列的级比为(0)(0)(1)(),2,3,,.()x k k k n x k λ-==若序列的级比()k λ∈ 2212(,)n n e e-++Θ=,则可用(0)x 作令人满意的GM(1,1)建模。
光滑比为(0)1(0)1()()()k i x k p k xi -==∑若序列满足[](1)1,2,3,,1;()()0,,3,4,,;0.5.p k k n p k p k k n ϕϕ+<=-∈=<则序列为准光滑序列。
否则,选取常数c 对序列(0)x 做如下平移变换(0)(0)()(),1,2,,,y k x k c k n =+=序列(0)y 的级比0(0)(1)(),2,3,,.()y y k k k n y k λ-=∈Θ=②对原始数据(0)x 作一次累加得 (1)(1)(1)(1)(0)(0)(0)(0)(0)((1),(2),,())(11+(2),,(1)()).x x x x n x x x x x n ==++(),()建立模型:(1)(1),dx ax b dt+= (1)③构造数据矩阵B 及数据向量Y(1)(1)(1)(2)1(3)1,()z z B z n ⎡⎤- ⎢⎥- ⎢⎥=⎢⎥ ⎢⎥⎢⎥- 1⎣⎦(0)(0)(0)(2)3()x x Y x n ⎡⎤⎢⎥⎢⎥=⎢⎥ ⎢⎥⎢⎥⎣⎦() 其中:(1)(1)(1()0.5()0.5(1),2,3,,.z k x k x k k n =+-=)④由1ˆˆ()ˆT T auB B B Y b -⎡⎤==⎢⎥⎣⎦求得估计值ˆa= ˆb = ⑤由微分方程(1)得生成序列预测值为ˆ(1)(0)ˆˆˆ(1)(1)k 0,1,,1,,ˆˆak b b xk x e n a a -⎛⎫+=-+=- ⎪ ⎪⎝⎭,则模型还原值为(0)(1)(1)ˆˆˆ(1)(1),1,2,,1,.x k x k x k n +=+-=-⑥精度检验和预测残差(0)(0)ˆ()()(),1,2,,,k x k xk k n ε=-=相对误差(0)|()|()k x k ε∆=相对误差精度等级表级比偏差10.5()1(),10.5a k k a ρλ-⎛⎫=-⎪+⎝⎭若()k ρ<则可认为达到一般要求;若()k ρ<,则可认为达到较高要求。
利用matlab 求出模型的各种检验指标值的结果如表经过验证,给出相应预测预报。
2、新陈代谢模型灰色新陈代谢模型是一个不断考虑新信息的预测模型,它考虑了随着时间推移相继进入系统的扰动因素带来的影响,在不断补充新信息的同时,及时去掉旧信息,使整个系统一直处于更新和发展的过程中,更符合现实世界的变化。
与GM(1,1)模型相比,既能充分发挥传统GM(1,1)模型仅利用少量数据, 就能获得较高预测精度的优点,又能反映出数据的变化趋势, 从而使预测结果的精度获得更进一步的提高。
局限性在于该模型适合预测具有较强指数规律的序列, 只能描述单调变化的过程。
模型的应用①深圳货运量预测;(下载文档)②天津市城市人均住宅建筑面积及非农业户籍人口总数预测(下载文档); ③网络舆情危机预警(下载文档)。
步骤①建立新陈代谢数据序列 原始数据列(0)(0)(0)(0)((1),(2),,())x x x x n =,用最新信息(0)(1)x n +替换最初数据(0)(1)x ,即得到新陈代谢数据序列(0)(0)(0)(0)((2),,(),(1))y x x n x n =+。
②后续步骤同GM(1,1)模型。
③用②计算出的最新结果再次替换最初信息(0)(2)x 得到新序列重复步骤②,以此类推,将计算结果制表并分析。
3、波形预测波形预测, 是对一段时间内行为特征数据波形的预测。
当原始数据频频摆动且摆动幅度较大时,可以考虑根据原始数据的波形预测未来的行为数据发展变化, 以便进行决策。
从本质上来看,波形预测是对一个变化不规则的行为数据列的整体发展进的预测。
模型的应用①区域降水量预测(下载文档)②运量需求不平衡航线下客流量预测(下载文档) ③网络舆情危机预警(下载文档) 步骤①求出序列折线由原始数据列((1),(2),,())x x x x n =得出序列X 的k 段折线图形为[]()()(1)()k x x k x k x k x k '=+-+-序列X 的折线为[]{}()()(1)()|1,2,,1kxx k x k x k x k k n '=+-+-=-②选取等高线令{}{}max min 11(),()max min k nk nx k x k σσ≤≤≤≤==则有0min 1max min min 1max min min min max min max 1,(),,(),,1(),(0,1,2,,)s s is ss i s sγσγσσσγσσσγσσσγσ==-+=-+-=++==如果k x 的i 段折线上有γ等高点,则坐标为()(,)(1)()x i i x i x i γγ-++-。
③等高点的计算解方程k x =γ得到折线k x 与γ的交点(0)()x i =(,())(1,2,)i i x x x i ''=,即γ等高点。
④(0)()x i 构成等高时刻序列,求出各等高时刻序列的GM(1,1)预测。
⑤得出波形预测画出波形图,并分析。
4、Verhulst 模型Verhulst 模型主要用来描述具有饱和状态的过程,即S 型过程。
常用于人口预测、生物生长、繁殖预测和产品经济寿命预测等。
(例如B 题艾滋病疗法的评价及治疗预测) 步骤①模型的建立对原始数据(0)(0)(0)(0)((1),(2),,())x x x x n =作一次累加得(1)(1)(1)(1)(0)(0)(0)(0)(0)((1),(2),,())(11+(2),,(1)()).x x x x n x x x x x n ==++(),()令(1)(1)(1)()0.5()0.5(1),2,3,,,z k x k x k k n =+-=得(1)x 的均值生成序列为(1)(1)(1)(1)((2),(3),,()).z z z z n =则得到灰色Verhulst 模型为(0)(1)(1)2()x az b z +=灰色Verhulst 模型的白化方程为(1)(1)(1)2()dx ax b x dt+= (2) ②参数求解构造数据矩阵B 及数据向量Y(1)(1)2(1)(1)2(1)(1)2(2)(2)(3)(3)),()())z z z z B z n z n ⎡⎤- ( )⎢⎥- (⎢⎥=⎢⎥ ⎢⎥⎢⎥- (⎣⎦(0)(0)(0)(2)3()x x Y x n ⎡⎤⎢⎥⎢⎥=⎢⎥ ⎢⎥⎢⎥⎣⎦() 由1ˆˆ()ˆT T auB B B Y b -⎡⎤==⎢⎥⎣⎦求得估计值ˆa= ˆb = ③解微分方程(2)得灰色Verhulst 模型的时间序列响应为(0)(1)ˆ(0)(0)ˆ(1)(1),ˆˆˆ(1)(1)ak axx k bx abx e +=⎡⎤+-⎣⎦通过累减还原得(0)(1)(1)ˆˆˆ(1)(1)().xk x k x k +=+-④精度检验和预测 同GM(1,1)模型。
例题:某地区年平均降雨量数据如表1。
规定ξ= 320,并认为(0)()x i ξ≤为旱灾。
预测下一次发生的时间。
表1 某地区年平均降雨量数据解:模型的建立:①列出原始数据列(0)(0)(0)(0)((1),(2),,())x x x x n =,确定在(0)320x s ≤的条件下的下限灾变数列0x ξ与其相对应的时刻数列(0)t 。
计算光滑比(0)1(0)1()()()k i t k p k ti -==∑判断序列(0)t 是否满足满足[](1)1,2,3,,5;()()0,,3,4,5;0.5.p k k p k p k k ϕϕ+<=∈=<②对数列(0)t 做1次累加,得(1)t 。
③建立GM(1,1)模型。
(1)(1),dt at b dt+= (1) ④构造数据矩阵B 及数据向量Y(1)(1)(1)(2)1(3)1,()z z B z n ⎡⎤- ⎢⎥- ⎢⎥=⎢⎥ ⎢⎥⎢⎥- 1⎣⎦(0)(0)(0)(2)3()x x Y x n ⎡⎤⎢⎥⎢⎥=⎢⎥ ⎢⎥⎢⎥⎣⎦() 其中:(1)(1)(1()0.5()0.5(1),2,3,,5.z k t k t k k =+-=)⑤由1ˆˆ()ˆT T auB B B Y b -⎡⎤==⎢⎥⎣⎦求得估计值ˆa,ˆb 。
⑥由微分方程(1)得生成序列预测值为ˆ(1)(0)ˆˆˆ(1)(1)k 0,1,,1,,ˆˆak b b xk x e n a a -⎛⎫+=-+=- ⎪ ⎪⎝⎭,则模型还原值为(0)(1)(1)ˆˆˆ(1)(1),1,2,,1,.xk x k x k n +=+-=-预测到第6个和第7个数据。
模型的求解(1)根据题得:原始数据列(0)x =,412,320,,,,553,310, 561,300,632,540,,,576,,因为当(0)320x s ≤时的(0)()x i 为异常值,可得下限灾变数列为0x ξ=(320,310,300,,与其相对应的时刻数列为: (0)t = (3,8,10,14,17) 利用matlab 计算得出序列光滑。
(2)对数列(0)t 做1次累加,得(1)t =(3,11,21,35,52)(3)由步骤③,④,⑤并利用matlab 解得ˆa = ˆb = (4)由步骤⑥,预测得到第6个和第7个数据为(0)(0)(6)22.034,(7)28.3946t t ==由于与17相差这表明下一次旱灾将发生在五年以后。