一种基于拉格朗日插值与时间序列的预测方法与流程

文档序号:12748289阅读:1028来源:国知局
一种基于拉格朗日插值与时间序列的预测方法与流程

本发明属于数据挖掘技术领域,具体涉及一种基于拉格朗日插值与时间序列的预测方法。



背景技术:

伴随着计算机科学技术和数据的迅猛发展,大数据时代已然到来。出现信息量爆增的现象,从中找到有用信息的难度也日益加大,导致各行业对数据挖掘技术的意愿越来越强烈。数据预测是数据挖掘领域的一个极其重要的课题,通过对大量数据进行清洗,修复残缺的数据、纠正错误的数据和去除多余的数据,挖掘出之前不知道的关系,并用这些关系预测出未知的结果。在采集数据时,有时会因为仪器的故障或操作的问题等原因,导致观测到的数据没能如实填写下来。当有缺失值时,就破坏了数据的顺序性,破坏了系统的连续性,对结果的分析造成重大影响。处理缺失值的方法可分为三类:删除记录、数据插补和不处理。具体情况还要具体分析,如果通过简单地删除缺失的记录进行分析,并且也能取得预期效果,那么删除含有缺失值的记录这种方法是毫无疑问是最有效的。但是,这种方法在许多情况下有很大的缺点。它是以减少历史数据为代价,导致数据中一些可能的关系未能挖掘出。尤其是在数据集本来就包含很少记录的情况下,删除少量记录可能会严重影响到分析结果的客观性和正确性。样本中的个别值远离序列一般水平的极端大值和极端小值。在数据预处理时,异常值是否剔除,需视具体情况而定,因为有些异常值可能蕴含着有用的信息。在很多情况下,要先分析异常值出现的可能原因,再判断异常值是否应该舍弃,如果是正确的数据,可以直接在具有异常值的数据集上进行挖掘建模。将含有异常值的记录直接删除这种方法简单易行,但缺点也很明显。在观测值很少的情况下,删除会造成样本量不足,可能会改变变量的原有分布,从而造成分析结果的不准确。把异常值看作缺失值的优点是可以扩充历史数据,使对序列的分析结果更准确。

时间序列预测作为数据挖掘中的预测方法之一,在科研、商业数据分析中占据了很重要的地位。传统的时间序列预测方法对于一些缺失值和异常值仅仅是做了简单的处理或者是不处理,这样可能导致后面预测的准确性降低。本发明是在研究上述技术基础上,提出采用拉格朗日插值法与时间序列分析相结合的新型方法,先是在时间序列分析的基础上使用拉格朗日插值法更加方便快捷处理数据清洗过程中的缺失值、异常值,再应用时间序列分析建立ARIMA模型,对未来值进行较为准确地预测,取得了良好的效果。



技术实现要素:

本发明目的是提出一种基于拉格朗日插值法与时间序列分析的数据预测方法,简称时拉结合法,解决了因直接将时间序列分析预测方法应用到不完整的原始数据上而导致预测结果偏离、准确性降低等问题,提高了数据预测准确性。

本发明的技术方案是在数据预处理、数据预测和数据挖掘技术基础上,利用拉格朗日插值法对缺失值与异常值进行预处理,将缺失值和异常值填补完整,保留了历史数据,为后续的数据挖掘提供了数据基础,在预处理数据的基础上,应用时间序列分析法预测未来值,即一种基于拉格朗日插值法与时间序列的数据预测方法,具体步骤如下:

步骤1:对于原始数据进行分析,对于数据缺失值利用逐行扫描方式查看是否有缺失值,而对于异常值检测采取与设定正常取值范围逐一比对,范围之外的值标记为异常值,对于检测出的缺失值与异常值进行标记。

步骤2:对步骤1中检测出有问题的数据利用拉格朗日插值法进行预处理,得到清理、整理后的数据。

步骤3:对于步骤2中清理后的数据进行纯随机性检验(白噪声检验),若为纯随机序列则结束,若不为纯随机序列则进入步骤4。

步骤4:对于步骤3中清理后的数据进行序列平稳性检验,若不是平稳序列则进入步骤5进行差分直至平稳为止,若是则进入步骤6。

步骤5:对于步骤4中序列为非平稳序列,进行非平稳时间序列分析。

步骤6:对步骤4中的数据进行平稳时间序列分析。

步骤7:对于符合步骤3和步骤4的数据序列进行ARIMA模型的拟合。

步骤8:将应用时拉结合法处理后的数据存入数据库中,得出预测值。

附图说明

图1基于拉格朗日插值与时间序列的预测方法流程图

图2平稳时间序列ARMA模型建模步骤

图3差分平稳时间序列的建模步骤

具体实施方式

参考图1为基于拉格朗日插值与时间序列的预测方法流程图。本发明针对因直接将时间序列分析预测方法应用到不完整的原始数据上而导致预测结果偏离、准确性降低等问题,提出一种基于拉格朗日插值法与时间序列分析的数据预测方法,简称时拉结合法,提高了数据预测准确性。该模型主要分两部分:利用拉格朗日插值法进行数据预处理,对预处理后的数据利用时间序列分析方法进行预测。

具体步骤如下:

步骤1:对于原始数据进行分析,对于数据缺失值利用逐行扫描方式查看是否有缺失值,而对于异常值检测采取与设定正常取值范围逐一比对,范围之外的值标记为异常值,对于检测出的缺失值与异常值进行标记。

步骤2:对步骤1中检测出有问题的数据利用拉格朗日插值法进行预处理,得到清理、整理后的数据。

根据数学知识可知,对于平面上已知的n个点(无两点在一条直线上)可以找到一个n-1次多项式y=a0+a1x+a2x2+…+an-1xn-1,使此多项式曲线过n个点。

(1)求已知的过n个点的n-1次多项式:

y=a0+a1x+a2x2+…+an-1xn-1

将n个点的坐标(x1,y1),(x2,y2),…,(xn,yn)代入多项式,并解出拉格朗日插值多项式为:

<mrow> <mi>L</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>n</mi> </munderover> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mi>j</mi> <mo>&NotEqual;</mo> <mi>i</mi> </mrow> <mi>n</mi> </munderover> <mfrac> <mrow> <mi>x</mi> <mo>-</mo> <msub> <mi>x</mi> <mi>j</mi> </msub> </mrow> <mrow> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>j</mi> </msub> </mrow> </mfrac> </mrow>

(2)将缺失的函数值对应的点x代入插值多项式得到缺失值的近似值L(x)。

对于步骤1中有问题的数据处理成缺失值,应用拉格朗日插值法进行处理,处理核心代码如下:

步骤3:对于步骤2中清理后的数据进行纯随机性检验(白噪声检验),若为纯随机序列则结束,若不为纯随机序列则进入步骤4。

如果一个序列是纯随机序列,那么是指该序列是一个无用的序列,它的序列值之间应该没有任何的联系,即满足γ(k)=0,k≠0,当然这种情况不会真正出现,因为自相关系数不会为0,只会接近于0。

纯随机性检验(白噪声检验)所用方法一般是构造检验统计量,其中常用的检验统计量有Q统计量、LB统计量,由样本各延迟期数的自相关系数可以计算得到检验统计量,然后计算出对应的P值,如果P值显著大于显著性水平a,则表示该序列不能拒绝纯随机的原假设,可以停止对该序列的分析。

步骤4:对于步骤3中清理后的数据进行序列平稳性检验,若不是平稳序列则进入步骤5进行差分直至平稳为止,若是则进入步骤6。

对于随机变量X,可以计算其均值(数学期望)μ、方差σ2;对于两个随机变量X和Y,可以计算X,Y的协方差cov(X,Y)=E[(X-μX)(Y-μY)]和相关系数它们度量了两个不同事件之间的相互影响程度。

如果时间序列{Xt,t∈T}在某一常数附近波动且波动范围有限,即有常数均值和常数方差,并且延迟k期的序列变量的自协方差和自相关系数是相等的或者说延迟k期的序列变量之间的影响程度是一样的,则称{Xt,t∈T}为平稳序列。

对序列的平稳性的检验有两种检验方法,一种是根据时序图和自相关图现实的特征做出判断的方法,该方法十分简单快捷,但是缺点就是要自己来判断,主观性太强;另一种方法是构造检验统计量进行检验,目前单位根检验法主要的检验法。

(1)数据图检验

根据平稳时间序列的均值和方差都为常数的性质,得到平稳序列的数据图应该显示序列的值在一个常数值附近进行随机波动,而且波动的范围有界、无明显趋势性和周期性。

(2)自相关图检验

平稳序列通常都具有短期相关性,这个性质也就是说平稳序列中只有近期的数据对某数据的影响较大,相关性较大。对于如何区分序列的平稳性,是指随着延迟期数k的增加,序列的自相关系数延迟k期衰减趋于零的速度不同,平稳的较快。

(3)单位根检验

检验序列是否有单位根,平稳序列是没有单位根的。

步骤5:对于步骤4中序列为非平稳序列,进行非平稳时间序列分析。

可是在实际生活中,多数时间序列都是非平稳的序列。因此对非平稳时间序列的分析是十分至关重要的,所需的处理方法也越来越多。对非平稳时间序列的分析方法可以分为确定性因素分解的时序分析和随机时机时序两大类:

确定性因素分解的方法把所有序列的变化都归结为四个因素(长期趋势、季节变化、循环变化和随机变化)的综合影响,其中长期趋势和季节变化还算是有其规律,容易捕捉,但是随机变化是很难捕捉与分析。

基于确定性因素分解方法的不足,随机时序分析应用而生。根据序列的不同特点,随机时序分析可以建立的模型有ARIMA模型、残差自回归模型、季节模型、异方差模型等。下面重点介绍ARIMA模型对非平稳时间序列进行建模。

1)差分运算

p阶差分:相距1期的两个序列值之间的减法运算称为1阶差分运算。

2)ARIMA模型

对于生活中我们所遇到的非平稳时间序列,如果对它们差分后成为了平稳序列,则称这个序列为差分平稳序列,对此我们建立ARIMA模型进行处理。ARIMA模型其实就是差分运算与ARIMA模型的组合。

步骤6:对步骤4中的数据进行平稳时间序列分析。

对于平稳时间序列的处理通常采用ARMA模型(自回归移动平均模型)进行处理,具体地它又划分为AR模型、MA模型和ARMA三类,这三类都是多元线性模型。

(1)满足以下公式的模型称为P阶自回归模型,简记为AR(P):

xt=φ01xt-12xt-2+…+φpxt-pt

即在t时刻的随机变量Xt的取值xt是前P期xt-1,xt-2,…,xt-p的多元线性回归,认为xt主要受过去P期序列值的影响。误差项是当期的随机干扰εt,其为零均值白噪声序列。

(2)满足以下公式的模型称为q阶自回归模型,简记为MA(q):

xt=μ+εt1εt-12εt-2-…-θqεt-q

即在t时刻的随机变量Xt的取值xt是前q期的随机扰动εt-1,εt-2,…,εt-q的多元线性函数,误差项是当期的随机干扰εt,其为零均值白噪声序列,μ是序列{Xt}的均值。认为xt主要是受过去q期的误差项的影响。

(3)满足以下公式的模型称为自回归移动平均模型,简记为ARMA(p,q):

xt=φ01xt-12xt-2+…+φpxt-pt1εt-12εt-2-…-θqεt-q

即在t时刻的随机变量Xt的取值xt是前P期xt-1,xt-2,…,xt-p和前q期εt-1,εt-2,…,εt-q的多元线性函数,误差项是当期的随机干扰ε1,为零均值白噪声序列。认为Xt主要是受过去P期的序列值和过去q期的误差项的共同影响。

特别应注意,当q=0时,是AR回模型;当p=0时,是MA(q)模型。

当某个时间序列经过预处理后,已经被判定为平稳且非白噪声序列,就可以利用ARMA模型进行建模。首先计算出平稳非白噪声序列{Xt}的自相关系数和偏自相关系数,再由模型AR(p)、MA(q)和ARMA(p,q)的自相关系数和偏自相关系数的性质,选择最优的模型。图2为平稳时间序列建模的步骤。

(1)计算ACF和PACF

先计算非平稳白噪声序列的自相关系数(ACF)和偏自相关系数(PACF)。

(2)ARMA模型识别

对于模型的识别,也就是定阶,我们由AR(p)模型、MA(q)模型和ARMA(p,q)模型的自相关系数与偏自相关系数的性质,选择最优的模型。对于每个模型的识别原则大同小异。

(3)估计模型中未知参数的值并进行参数检验。

(4)模型检验

(5)模型优化

(6)模型应用:短期预测

步骤7:对于符合步骤3和步骤4的数据序列进行ARIMA模型的拟合,图3为差分平稳时间序列的建模步骤。

对于模型的定阶,本发明采用准则BIC法,即相对最有模型识别法:计算ARIMA(p,q)当p和q均小于等于5的所有组合的BIC信息量,取其中BIC信息量达到最小的模型阶数。

部分伪代码如下:

步骤8:将应用时拉结合法处理后的数据存入数据库中,得出预测值。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1