时间序列分析课程报告_第1页
时间序列分析课程报告_第2页
时间序列分析课程报告_第3页
时间序列分析课程报告_第4页
时间序列分析课程报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子科技大学时间序列分析基于时间序列分析的乘客人数预测摘要:本文基于国际航空公司部分年限每月的乘客数据,给出了普通非平稳时间序列的解决方式,通过对数据的预解决和分析,我们能够大致拟定一种时间序列的平稳性,在确保了平稳性的基础之上后续的分析和建模才干顺利展开。通过构建ARIMA模型能够对大部分的时间序列产生较好的拟合成果,除此之外,本文还将数据集进行了一定的划分,使得训练和验证能够独立进行,能够检查模型的泛化能力,使得整个预测能够达成比较好的效果。核心词:时间序列,ARIMA,分析和建模一.研究背景时间序列最早来源于古埃及人把尼罗河涨落的状况逐天统计下来,构成了所谓最早的时间序列有关的概念。早期的时间序列分析普通都是通过直观的数据比较或绘图观察,寻找序列中蕴含的发展规律,尼罗河周期性泛滥的规律发现就是依靠这种原始的分析办法。一种重要的转折点则是随机变量的引入,由于与时间序列有关的问题经常呈现出非常强的随机性,人们发现依靠单纯的描述性时序分析已不能精确地寻找出随机变量发展变化的规律。为了更精确地预计随机序列发展变化的规律,从20世纪代开始,一种大的趋势就是运用数理统计学的有关原理分析时间序列,研究的重心从表面现象的总结转移到分析序列值内在的有关关系上,由此开辟了应用统计学科[1]:时间序列分析。有关时间序列分析办法,最早来源于1927年数学家Yule提出的自回归模型(AR模型),用来预测市场变化的规律。1931年,另一位数学家在AR模型的启发下,建立了移动平均模型(MA模型),初步奠定了时间序列分析办法的基础。随即又逐步提出其它模型,逐步形成完整的时间序列分析办法。现在时间序列分析办法迈上了一种新的台阶,在工程领域方面的应用非常广泛,随着计算机技术和信号解决技术的快速发展,时间序列分析理论和办法更趋完善。具体而言,按照时间的次序把随机事件变化发展的过程统计下来就构成了一种时间序列。对时间序列进行观察、研究,找寻它变化发展的规律,预测它将来的走势就是时间序列分析。简言之,时间序列分析的基本思想是根据系统有限长度的历史统计(即已知的观察数据),建立能够比较精确地反映时间序列中所包含的动态依存关系的数学模型,并借以对系统的将来行为进行预测。典型的时间举例以下图所示:图1.1951~1980美国劳工统计局统计的罢工人数图2.1770~1869年间太阳黑子数统计 从模型构建的基础上讲,时间序列中的每个观察值大小,是由多个不同因素在同一时刻发生作用的综合成果。从这些影响因素发生作用的大小和方向变化的时间特性来看,这些因素造成的时间序列数据的变动分为下面几个:趋势性:某个变量随着时间进展,呈现一种比较缓慢而长久的持续上升或者下降或者停留的不同属性的变动趋向,这种变动使得时间序列随机变量的方差在逐步变化,进而凸显出一定的统计规律;周期性:时间序列由于外部或者内部变量的影响随着时间的延伸,交替地出现高峰与低谷的规律;随机性:由于随机白噪声的影响使得时间序列呈现出统计意义上的随机性;由于时间序列本身的特点,常见的基本分析模型有下面几个:1)P阶自回归模型(AR(p)):X即现在时刻的序列值由过去序列值的线性组合以及现在随机噪声构成;2)Q阶滑动平均模型(MA(q)):X即现在时刻的序列值由过去的随机噪声和现在随机噪声构成;3)ARMA模型(p,q):X即包含上述两种影响的时间序列问题,现在时刻值受过去的序列值以及过去的噪声和现在的噪声影响;4)ARIMA模型(p,d,q):由Box与Jenkins于上世纪七十年代提出,ARIMA的含义是单积自回归移动平均过程,其含义为:假设一种随机过程其通过d次差分后能够变换为一种平稳的自回归滑动平均过程,则该随机过程称为单积(整)自回归移动平均过程,其核心在于通过次数不多的差分使得非平稳的时间序列模型转化为平稳的时间序列模型(即普通ARMA模型)。5)其它模型:更为普通的非线性模型,如门限自回归、马尔科夫链;动态系统模型,如Kalman滤波,多层递阶预测;多元回归模型;变量场预测模型;固然在实际应用中时间序列的分析办法远不止上述所列的,这里只是对基本的模型进行概述。时间序列在各个领域都有所应用,其中典型的应用领域就涉及经济学的有关预测,信号解决领域,大数据挖掘以及气象信息预测等。举例而言,就经济学领域,诸如在证券领域中得到的观察数据列普通都含有较强的时间变化趋势,股票价格的数据都是以时间序列的形式出现的。因此,采用时间序列分析法对股市数据进行分析预测是可行的,并且诸多文献都阐明了它的有效性;除此之外间序列分析办法在数据挖掘中的应用也获得了一定的进展。研究者们运用数据挖掘对象,根据时间序列分析办法,提出了基于含糊集合的数据挖掘时间序列模式算法以及结合当下主流机器学习办法,例如支持向量机,随机森林等等;尚有的则根据某些时间序列所含有的分形特性,分析了运用分形理论中的R/S分析,发现含有分形特性的时间序列模式的办法;这些办法通过对大型数据库的海量数据分析提出了进行时间序列模式挖掘的算法,为顾客的决策支持和趋势预测提供了根据。在气候预测领域,基于均生函数的时间序列预测延伸出了诸多在气候分析及预测上有较好效果的模型,实验成果表明这类模型不仅能较好地拟合历史实并且对将来1~5年的演变趋势也含有一定的预报能力[2]。图3.时间序列分析在天气预测中的举例二.基于R的乘客人数预测本文但愿通过借助于R平台,结合时间序列分析的基本办法,呈现对于普通的非平稳模型的建模分析过程,借此加深对时间序列分析本身的理解以及有关理论知识的算法原则化,有助于后续对于时间序列分析的应用。首先,本文的数据来源R本身的数据集“AirPassengers”,其中包含了1949-1960年每月国际航空的乘客数量的数据,该数据集的特点为含有季节性和趋势性,是一种非平稳的时间序列,因此大致的思路是通过差分使得数据变得平稳,然后借助ARIMA模型来实现对规律的预测和分析。下图展示了该数据集:图4.国际航空乘客数据集概览首先,我对本文中涉及的数据进行时间序列的绘制,观察变量的总体趋势,并且拟合一条直线,通过这条拟合直线能够大致看出序列的趋势性;图5.乘客人数从1949~1960的整体变化状况从图上我们能够看出,随着时间轴的延伸,乘客人数是在逐步递增的,这是大趋势,从拟合直线的走势能够看出来,这表明随着经济的逐步发展,越来越多的人们选择乘飞机去往世界各地,因此也符合现状的预期;除此之外,我们能够看到,在每一年的周期内部,乘客人数的变化也呈现出一定的规律性,大致是在每年的7,8月左右达成人数值的顶峰,这个我们在背面会做更精确的验证。总体而言,该数据满足含有季节性和趋势性的特点,是一种典型的非平稳数据。紧接着,我通过一种均值函数,求出这些年12个月份的乘客人数在每月份点上的均值,并绘制以下的箱线图:图7.乘客月平均人数箱线图从上图能够看出,一年十二个月份中,每年的7,8月份是航空出行的旺季,因此我们也能够借此推测,每年的暑假阶段出行游览的人数较多,这也符合现实生活中的实际状况。因此,我们能够从简朴的绘图以及对比,发现某些简朴的推论,这些基于数据的合理推论也能给我们的现实生活产生一定的指导意义。接下来我对这个时间序列进行有关的检查,首先我绘制出这个序列的自有关函数和偏有关函数的趋势图,以下图所示:图8.未解决原始数据的自有关函数和偏有关函数 由自有关函数和偏有关函数,能够看出该时间序列不是平稳的,由于其自有关函数和偏有关函数并未呈典型的指数衰减,不能断定其是截尾的还是拖尾的。因此就上述分析而言,需要对原始数据进行差分,使得整体的序列呈现平稳性。为了使得数据更加符合正态性,在进行差分之前,我对原始的数据取对数之后在进行一阶差分;图9.一阶差分之后的自有关函数和偏有关函数 在通过一阶差分之后,能够看出序列的衰减因而能够大致拟定拟定模型的阶数;但是由于R内置了自动拟定模型阶数的函数,因此我们这里直接调取函数。这里我根据序列的数据集大小采用了两种不同的解决方式,一种是选用包含原始全部数据的数据集,即通过原来全部的数据来预测下一种周期(即下一年)的乘客人数;另一种则是选用前十一年的数据作为样本集训练时间序列模型,剩余后一年的数据作为对比,相称于一种测试集来验证模型的预测效果。前者的解决是为了模型能够有充足的输入来拟合模型实现更精确的预测,而后一种则是借助训练集和测试集的划分来验证模型的预测性能,能够给出一定的泛化性能指标,这样即能够兼顾预测成果的完备性,也能够反映模型本身的性能优劣。全序列:原始样本包含了全部的十二年的数据,序列长度为144;根据R自带的ARIMA模型参数自动匹配函数,最后有两组模型参数被选出来,即分别对应时间序列分析模型的两组(p,d,q),预测的置信区度为99.5%:第一种模型:(0,1,1)其预测成果以下图所示:模型参数检查以下及预测效果以下,蓝色部分为模型的预测下一种周期的乘客人数,:图11.ARIMA(0,1,1)模型的下一种周期预测输出 2)第二个模型(2,1,1)其模型参数检查成果和预测曲线以下所示:图12.ARIMA(2,1,1)模型的下一种周期预测输出从预测曲线的直观看来,两个模型的预测差别较大,但是通过认真的对比和挖掘,前者的信息量为AIC=1021,后者为AIC=1018.36,有所差别;除此之外,精确的预测值以下图显示:图13.两种模型的预测值对比我们能够看到,当阶数为(2,1,1)时,直观上来说更加符合7,8月份作为旺季的时候的规律,因此,即使由R拟定的最后模型有两个,但是明显地我们能够更倾向于选择ARIMA(2,1,1);整个模型的拟合度更高,并且从残差检查来说,ARIMA(2,1,1)的残差更加趋向于白噪声,阐明其对趋势性和季节性的拟合更加好,这点能够从下面的QQ-Plot能够看出,在QQ-Plot中,残差拟合越靠近抱负的实对角线,阐明模型拟合度越高,具体而言两种模型在数据中段的拟合程度都较好,只是在数据两端,ARIMA(2,1,1)比ARIMA(0,1,1)更加贴合,对例以下两图所示;图14.ARIMA(2,1,1)的残差检查QQ-Plot图15.ARIMA(0,1,1)的残差检查QQ-Plot前的序列(除去最后一种周期的数据):这里是则是为了检查模型本身的性能,就如之前提到的,借助前的数据作为训练集,后一年的数据作为测试集的划分来验证模型的预测性能,能够给出一定的泛化性能指标,这样即能够兼顾预测成果的完备性,也能够反映模型本身的性能优劣。值得一提的是,由于数据样本由原来的12个周期减少为11个,因此这里的ARIMA需要重新拟定阶数,显然地,当数据量变化的时候对于参数值的适应必然会有所变化。由于减少了一种周期,因此,我先对这部分序列进行成分分解,观察其周期性和趋势性与否明显,成果以下图所示:图16.前11个周期的序列分解图示我们能够看到季节性和趋势性仍然很强,阐明序列整体的数学性质没有由于最后一年数据的剔除而发生明显变化。因此根据上述分析,在构建模型之前,同样需要进行一阶差分解决;其自有关函数和偏有关函数以下所示:图16.前11个周期的序列自有关函数和偏有关函数根据自动定阶函数,拟定此时的ARIMA模型为(1,1,0),其残差检查以下图所示:图17.前11个周期的残差检查QQ-Plot由此能够看出模型的残差比较符合预期;对模型进行检查,成果以下:接下来根据前11个周期建立的ARIMA模型来预测下一种周期的乘客人数,并且和实际的我们获取的数据真值进行比较,模型参数检查及成果以下图所示:图18.前11个周期的ARIMA模型参数及其预测对比图 其中红色部分代表原始的真实数据,而蓝色部分代表由前11个周期预测的下一种周期的值,能够看到预测部分和其真实的分布重叠度较好,阐明ARIMA模型的拟合度较高,能够对原始数据集进行较好的拟合,从而印证了我们使用全部的数据集预测出的下一种周期乘客人数的可信度是较高的。三.总结本实验借助于R平台及其公开的数据集,对时间序列分析的建模过程进行了具体的探讨。对于一种给定的时间序列,我们在建立ARMA或者ARIMA模型时,需要做诸多的预解决,这当中就涉及:1)序列的平稳性鉴定;2)若是非平稳数据,则需要预计差分次数;3)自有关函数和偏有关函数的分析以及初步的定阶;4)模型残差的检查;做完这些环节之后,我们就能够来建立对应的时间序列分析模型,这里对于不同的计算平台可能有不同的方式。我们能够根据自有关函数和偏有关函数给出一种比较粗略的阶次,固然也能够借助平台,例如R就提供了自动定阶的函数,能够通过自动定阶实现模型阶次的拟定。通过后续的预测效果评定和分析,我们得到一种比较完备的模型,进而将其应用到实际的生产生活当中。参考文献[1]王燕1应用时间序列分析[M]1北京:中国人民大学出版社,:31[2]张德宽,杨贤为,邹旭凯.均生函数)最优子集回归在高温极值预测中的应用[J].气,,29(4):44247.代码library("tseries")library("forecast")data(AirPassengers)start(AirPassengers)end(AirPassengers)frequency(AirPassengers)summary(AirPassengers)boxplot(AirPassengers~cycle(AirPassengers),main="乘客人数的月均值对比")opar<-par(mfrow=c(1,2))acf(AirPassengers,main="自有关函数",lag.max=20)pacf(AirPassengers,main="偏有关函数",lag.max=20)par(opar)dev.new()y_cmp<-decompose(y)plot(y_cmp)airdf1<-diff(AirPassengers,12)Airdf1<-diff(AirPassengers)dev.new()opar<-par(mfrow=c(1,2))acf(airdf1,main="自有关函数",lag.max=20)pacf(airdf1,main="偏有关函数",lag.max=20)par(opar)dev.new()opar<-par(mfrow=c(1,2))acf(Airdf1,main="自有关函数",lag.max=20)pacf(Airdf1,main="偏有关函数",lag.max=20)par(opar)dev.new()opar<-par(mfrow=c(1,2))acf(b,main="自有关函数",lag.max=20)pacf(b,main="偏有关函数",lag.max=20)par(opar)dev.new()opar<-par(mfrow=c(1,2))acf(y_df1,main="自有关函数",lag.max=20)pacf(y_df1,main="偏有关函数",lag.max=20)par(opar)dev.new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论