本发明涉及数据预测技术领域,特别是一种初始序列基于
背景技术:
水运运量规模和增长速度是水运发展的重要指标,它关系到如何科学规划港口、航道、船队、人力资源、船舶和临港工业的布局等。灰色预测由于预测简单,精度高等优点已经广泛的运用到水路运输预测中。
然而经典的gm(1,1)模型存在很多缺陷,根据调查研究,初始序列的光滑度对预测精度的影响较大。本发明对现有的方法进行了改进,将余弦函数与幂函数融入变换函数,提出了初始序列基于
技术实现要素:
为解决现有技术的不足,本发明的目的在于提供一种初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,能够有效适应各种数据变化类型,有效的提高模型的预测精度。
为了实现上述目标,本发明采用如下的技术方案:
初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,包括如下步骤:
步骤一,根据预测目标选取预测模型所采用的原始数据序列,此原始数据序
列为一组非负递增数数据序列,记为x(0),
设原始数据序列为:
x(0)={x(0)(1),···,x(0)(n)},
式中,x(0)(i)>0i=1,···,n;
步骤二,对初始序列x(0)进行预处理,将所有数据的范围控制在区间
式中,x(0)(k)为初始序列中第k个值,m,m分别为两个控制参数,为了保证初始序列经过变换后满足区间
步骤三,对f(0)序列进行
式中,r(0)(k)为经过
步骤四,对原始数据序列r(0)做一次累加处理,生成一次累加序列r(1),计算公式如下式所示:
式中,r(1)(k)为原始数据r(0)(k)的一次累加序列,累加序列记为:
r(1)={r(1)(1),···,r(1)(n)};
步骤五,一次累加序列r(1)满足白色微分方程
z(1)(k)通过下式进行计算:
矩阵b、y与参数a、u通过下式进行计算:
(a,u)t=(btb)-1bty;
步骤六,基于求解出的参数a、u,建立时间响应序列
通过白色微分方程的求解,带入参数a、u可以得到时间响应函数为:
上式离散化得:
式中,r(1)(1)=r(0)(1),
步骤七,通过还原公式计算预测值的还原值,记为
步骤八,根据步骤七求解出原始数据序列的预测值后,进行误差检验以判断gm(1,1)模型的预测精度;
步骤九,选出穷举法下最小的相对误差值;首先,通过穷举法并利用计算机编程令
前述的初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,步骤九中,穷举划分精度越小,所得的预测结果越精确。
前述的初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,步骤九中,穷举法对
前述的初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,步骤九中,选取最小的相对误差的具体过程为:
前述的初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,包括如下步骤:
步骤一,根据预测目标选取预测模型所采用的原始数据序列,此原始数据序列为一组非负递增数数据序列,记为x(0),
设原始数据序列为:
x(0)={x(0)(1),···,x(0)(n)},
式中,x(0)(i)>0i=1,···,n;
步骤二,对初始序列x(0)进行预处理,将所有数据的范围控制在区间
式中,x(0)(k)为初始序列中第k个值,m,m分别为两个控制参数,为了保证初始序列经过变换后满足区间
步骤三,对f(0)序列进行
式中,r(0)(k)为经过
步骤四,对原始数据序列r(0)做一次累加处理,生成一次累加序列r(1),计算公式如下式所示:
式中,r(1)(k)为原始数据r(0)(k)的一次累加序列,累加序列记为:
r(1)={r(1)(1),···,r(1)(n)};
步骤五,一次累加序列r(1)满足白色微分方程
计算公式计算z(1)(k)与矩阵b,y,利用最小二乘法求出参数a、u,
z(1)(k)通过下式进行计算:
矩阵b、y与参数a、u通过下式进行计算:
(a,u)t=(btb)-1bty;
步骤六,基于求解出的参数a、u,建立时间响应序列
通过求解白色微分方程
上式离散化得:
式中,r(1)(1)=r(0)(1),
步骤七,通过还原公式计算预测值的还原值,记为
步骤八,根据步骤七求解出原始数据序列的预测值后,进行误差检验以判断gm(1,1)模型的预测精度;
步骤九,选出穷举法下最小的相对误差值;首先,通过穷举法并利用计算机编程令
步骤十,对预测结果进行残差修正,首先计算出残差e(k),(k=2,···n);
进一步的对残差序列进行预处理,①若e(k),(k=2,···n)都大于零,此时不需要进行处理,直接进行进一步的计算;②若e(k),(k=2,···n)都小于零,此时需要对所有的e(k),(k=2,···n)都取绝对值;③若e(k),(k=2,···n)既有正数又有负数,此时需要加上大于等于|min(e(k))|的数σ,另所有的值都大于等于零;
通过预处理并构成新的序列e={e(2),e(3),···,e(n)},并使用经典的灰色预测,具体计算参造经典的灰色模型;
得到预测值后进行还原,还原方法对应上述三种预处理方法①不需要进行还原;②对预测值都加个负号;③所有预测值减去σ,还原后得到预测序列:
本发明的有益之处在于:本发明提供一种初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,通过对f(0)序列进行
附图说明
图1是本发明gm(1,1)预测模型的运行流程图;
图2是本发明变换函数的图像;
图3是本发明对原始数据序列做一次累加处理的流程图;
图4是本发明
图5是现有技术和本发明的拟合值与实际值的折线比较图。
图6是本发明与现有技术两种方法的拟合值与实际值的折线图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,包括如下步骤:
步骤一,根据预测目标选取预测模型所采用的原始数据序列,此原始数据序
列为一组非负递增数数据序列,记为x(0),
设原始数据序列为:
x(0)={x(0)(1),···,x(0)(n)},
式中,x(0)(i)>0i=1,···,n;
步骤二,对初始序列x(0)进行预处理,将所有数据的范围控制在区间
式中,x(0)(k)为初始序列中第k个值,m,m分别为两个控制参数,为了保证初始序列经过变换后满足区间
步骤三,对f(0)序列进行
式中,r(0)(k)为经过
步骤四,对原始数据序列r(0)做一次累加处理,生成一次累加序列r(1),具体流程参照图3,计算公式如下式所示:
式中,r(1)(k)为原始数据r(0)(k)的一次累加序列,累加序列记为:
r(1)={r(1)(1),···,r(1)(n)};
步骤五,一次累加序列r(1)满足白色微分方程
矩阵b、y与参数a、u通过下式进行计算:
(a,u)t=(btb)-1bty;
步骤六,基于求解出的参数a、u,建立时间响应序列
通过求解白色微分方程
上式离散化得:
式中,r(1)(1)=r(0)(1),
步骤七,通过还原公式计算预测值的还原值,记为
步骤八,根据步骤七求解出原始数据序列的预测值后,进行误差检验以判断gm(1,1)模型的预测精度;
步骤九,选出穷举法下最小的相对误差值;首先,通过穷举法并利用计算机编程令
需要说明的是:穷举划分精度越小,所得的预测结果越精确。作为一种优选,精度η取值通常为0.1、0.01、0.001、0.0001等。
为了进一步提高计算精度,步骤十,对预测结果进行残差修正,首先计算出残差e(k),(k=2,···n)。
进一步的对残差序列进行预处理,①若e(k),(k=2,···n)都大于零,此时不需要进行处理,直接进行进一步的计算;②若e(k),(k=2,···n)都小于零,此时需要对所有的e(k),(k=2,···n)都取绝对值;③若e(k),(k=2,···n)既有正数又有负数,此时需要加上大于等于|min(e(k))|的数σ,另所有的值都大于等于零。
通过预处理并构成新的序列e={e(2),e(3),···,e(n)},并使用经典的灰色预测,具体计算参造经典的灰色模型(参见文献1:邓聚龙.灰色系统基本方法[m].武汉:华中理工大学出版社,1987.);
得到预测值后进行还原,还原方法对应上述三种预处理方法①不需要进行还原;②对预测值都加个负号;③所有预测值减去数σ,还原后得到预测序列:
相对误差的计算,通过下式计算相对误差
穷举法对
选取最小的相对误差的具体过程为:
进一步的η选取的过程为:精度η取值通常为0.1、0.01、0.001、0.0001等,为了确定最佳精度范围,通常可以使用试算法,使用不同的精度进行计算,计算任意一个精度产生的相对误差值,理论上来讲穷举精度选择越密,预测结果也会越精确,但为了减少计算机编程时的计算负荷,本发明将设置一个阈值ω(本发明取0.004%),当取两个相邻η值得到的最小相对误差值之差小于这个阈值时,此时取前一个η值作为穷举精度,具体流程参照图5。
光滑度提高的理论证明:
为了证明本发明可以提高初始序列的光滑度,本发明从光滑度的定义方面进行证明。
定义1.1设x(0)={x(0)(k),k=1,2,···,n}为非负数据序列,
定理1.1x(0)={x(0)(k),k=1,2,···,n}为光滑离散序列的充要条件是
定理1.2设有两种数据变换分别为f(x)和g(x),若对任意的非负序列x(k)均有:
则称变换f(x)提高序列的光滑度的效果优于变换g(x)。
证明1:经过
初始序列x(0)为非负单调递增函数,通过预处理使其满足区间
已知
即函数
又因为余弦函数在区间
因为不等式两边都是大于零的数,将上面两个式子不等式两边进行相乘,不等式符号不变,得到下式:
进行调整后得下式:
根据定理1.1可知经过
证明2:经过
引理2.1若x(0)(k)为递增数列,且x(0)(k)>e,则
引理2.2若x(0)(k)为递增数列,且x(0)(k)>1,t≥1,则
引理2.3若x(0)(k)为递增数列,且x(0)(k)>1,t≥1,则
根据引理可知基于对幂变换的
令,
对上式进行求导,得下式:
根据上式可知h'(x)≤0,即证明h(x)为减函数,即有:
不等式两边进行整理后得到下式:
对1,···,k-1分别进行上式计算,不等号方向不变化,所有式子求和后得到如下:
将上式整理后得到下式:
根据定理1.2可知,
为了证明本发明能够降低误差,将以长三角2001-2009年水运量序列(单位:万t)作为研究对象,使用本发明与两个现有技术的方法得出的相对误差的来比较分析优劣;
现有技术1:经典的灰色模型(参见文献1:邓聚龙.灰色系统基本方法[m].武汉:华中理工大学出版社,1987.);
现有技术2:初始序列基于cosx变换的gm(1,1)模型(参见文献2:郑锋,魏勇.提高灰建模数据列光滑度的一种新方法[j].理论新探,2007,18(35):37-38);
本发明提出方法的计算步骤:
(1)长三角2001-2009年水运量的原始数据序列为:
x(0)={62024,70149,79539,90831,105602,117726,129399,132396,132899}
(2)对初始序列x(0)进行预处理,将所有数据的范围控制在区间
(3)对f(0)序列进行
(4)对原始数据序列r(0)做一次累加处理,生成一次累加序列r(1),计算公式与所得序列如下所示:
(5)对一次累加序列r(1)采用背景值计算公式计算z(1)(k)与矩阵b,y,利用最小二乘法求出参数a、u;
z(1)(k)通过下式进行计算:
矩阵b、y与参数a、u通过下式进行计算:
(a,u)t=(btb)-1bty
(6)基于求解出的参数a、u,建立时间响应序列
通过白色微分方程的求解,带入参数a、u可以得到时间响应函数为:
上式离散化得:
式中,r(1)(1)=r(0)(1),
(7)通过还原公式计算预测值的还原值,记为
(8)通过穷举法对
(9)对预测结果进行残差修正,首先计算出残差e(k),(k=2,···n)。
计算结果
得到的序列
文献1中邓聚龙教授提出的经典的gm(1,1)模型计算:
响应函数的确定:
预测值的还原:
文献2初始序列基于cosx变换的gm(1,1)模型
(1)长三角2001-2009年水运量的原始数据序列为:
x(0)={62024,70149,79539,90831,105602,117726,129399,132396,132899}
(2)对初始序列x(0)进行预处理,将所有数据的范围控制在区间
(3)对f(0)序列进行cosx函数变换,得到新的数据序列,记为r(0);
r(0)(k)=cos(f(0)(k))
r(0)={0.5263,0.4704,0.407456709450136,0.3341,0.2420,0.1695,0.1024,0.0855,0.0827}
(4)对原始数据序列r(0)做一次累加处理,生成一次累加序列r(1)
r(1)={0.5263,0.9967,1.4042,1.7383,1.9803,2.1498,2.2522,2.3377,2.4204}
对一次累加序列r(1)采用背景值计算公式计算z(1)(k)与矩阵b,y,利用最小二乘法求出参数a、u;
z(1)(k)通过下式进行计算:
(6)基于求解出的参数a、u,建立时间响应序列
r(1)(k+1)=-2.1706e-0.2615k+2.6969
(7)通过还原公式计算预测值的还原值为
通过上述三种计算方法对徐州市2001-2012年省道客车交通量进行拟合计算,计算结果如表1所示。
表1三种计算方法的拟合结果
根据上表所示,本发明提出的改进的gm(1,1)模型平均相对误差为2.14%,经典灰色模型的平均相对误差为4.97%,初始序列基于cosx函数变换的gm(1,1)模型的平均相对误差为3.04%,因此本发明提出的改进的gm(1,1)方法误差较低,精度提升较为明显,拟合结果参照图6所示。根据实验证明,该方法不仅适用于徐州市省道客车交通量的预测,还可以运用到交通其他方面的预测上,具有良好的预测结果。
本发明提供一种初始序列基于余弦函数与幂函数组合变换的灰色预测模型方法,通过对f(0)序列进行
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。