90-预测分析-R语言实现-时间序列1

90-预测分析-R语言实现-时间序列1,第1张

时间序列(time series)是随机变量Y 1 、Y 2 、……Y t 的一个序列,它是由等距的时间点序列索引的。

一个时间序列的均值函数就是该时间序列在某个时间索引t上的期望值。一般情况下,某个时间序列在某个时间索引t 1 的均值并不等于该时间序列在另一个不同的时间索引t 2 的均值。

自协方差函数及自相关函数是衡量构成时间序列的随机变量在不同时间点上相互线性依赖性的两个重要函数。自相关函数通常缩略为ACF函数。ACF函数是对称的,但是无单位,其绝对值被数值1约束,即当两个时间序列索引之间的自相关度是1或-1,就代表两者之间存在完全线性依赖或相关,而当相关度是0时,就代表完全线性无关。

平稳性:实质描述的是一个时间序列的概率表现不会随着时间的流逝而改变。常用的平稳性的性质有严格平稳和弱平稳两个版本。tseries包的adf.test()函数可以检验时间序列的平稳性,返回的p值小于0.05则表示是平稳的。

白噪声是一个平稳过程,因为它的均值和方差都是常数。

随机漫步的均值是常数(不带漂移的随机漫步),但它的方差是随着时间的变化而不同的,因此它是不平稳的。

自回归模型(Autoregressive models, AR)来源于要让一个简单模型根据过去有限窗口时间里的最近值来解释某个时间序列当前值的想法。

自回归条件异方差模型:ARIMA模型的关键前提条件是,虽然序列本身是非平稳的,但是我们可以运用某个变换来获得一个平稳的序列。像这样为非平稳时间序列构建模型的方法之一是作出一个假设,假设该模型非平稳的原因是该模型的方差会以一种可预见的方式随时间变化,这样就可以把方差随时间的变化建模为一个自回归过程,这种模型被称为自回归条件异方差模型(ARCH)。加入了移动平均方差成分的ARCH模型称为广义自回归条件异方差模型(GARCH)。

任务:预测强烈地震

数据集:2000-2008年期间在希腊发生的强度大于里氏4.0级地震的时间序列。

不存在缺失值。

将经度和纬度之外的变量转换为数值型。

从图上可以看出,数据在30次左右波动,并且不存在总体向上的趋势。

通过尝试多个不同的组合来找到最优的阶数参数p,d,q,确定最优的准则是使用参数建模,能使模型的AIC值最小。

定义一个函数,它会针对某个阶数参数拟合出一个ARIMA模型,并返回模型的AIC值。如果某组参数导致模型无法收敛,就会产生错误,并且无法返回AIC,这时需要人为设置其AIC为无限大(InF)。

调用函数,选取最合适的模型。

然后找出最优的阶数参数:

得到最合适的模型为ARIMA(1, 1, 1)。再次使用最优参数训练模型。

使用forecast包预测未来值。

带颜色的条带是预测的置信区间,蓝色线表示均值,结果表示在后续的10个月里,地震的数量会有小幅增加。

检查自相关函数:

ACF绘图:虚线显示了一个95%的置信区间,特定延迟对应的ACF函数值如果处于该区间内,就不会被认为具有统计显著性(大于0)。这个ACF轮廓表明,针对本数据集,简单的AR(1)过程可能是一种合适的拟合方式。

PACF为偏自相关函数,是将时间延迟K的PACF定义为在消除了小于K的延迟中存在的任何相关性影响的情况下所产生的相关性。

应用背景:

通过分析序列进行合理预测,做到提前掌握未来的发展趋势,为业务决策提供依据,这也是决策科学化的前提。

时间序列分析:

时间序列就是按时间顺序排列的一组数据序列。

时间序列分析就是发现这组数据的变动规律并用于预测的统计技术。

分析工具:

SPSS

实践案例:通过历史数据预测未来数据,所涉及的都是最简单的实践,抛砖引玉,重在方法,不论多复杂的数据,方法是一样的。

如已知前几年每月的销售量,预测未来的销售量。

一、时间序列分析简介

时间序列分析有 三个基本特点 :

假设事物发展趋势会延伸到未来

预测所依据的数据具有不规则性

不考虑事物发展之间的因果关系

并不是所有的时间序列都一定包含四种因素,如以年为单位的诗句就可能不包含季节变动因素。

四种因素通常有 两种组合方式:

四种因素相互独立,即时间序列是四种因素直接叠加而成的,可用加法模型表示:  Y=T+S+C+I

四种因素相互影响。即时间序列是四种因素相互综合的结果,可用乘法模型表示: Y=T*S*C*I

其中,原始时间序列值和长期趋势可用绝对数表示;季节变动、循环变动、不规则变动可用相对数(变动百分比)表示。

二、季节分解法

当我们对一个时间序列进行预测时,应该考虑将上述四种因素从时间序列中分解出来。

为什么要分解这四种因素?

分解之后,能够克服其他因素的影响,仅仅考量一种因素对时间序列的影响。

分解之后,也可以分析他们之间的相互作用,以及他们对时间序列的综合影响。

当去掉这些因素后,就可以更好的进行时间序列之间的比较,从而更加客观的反映事物变化发展规律。

分解之后,序列可以用来建立回归模型,从而提高预测精度。

所有的时间序列都要分解这四种因素吗?

通常情况下,我们考虑进行季节因素的分解,也就是将季节变动因素从原时间序列中去除,并生成由剩余三种因素构成的序列来满足后续分析需求。

为什么只进行季节因素的分解?

时间序列中的长期趋势反映了事物发展规律,是重点研究的对象;

循环变动由于周期长,可以看做是长期趋势的反映;

不规则变动由于不容易测量,通常也不单独分析。

季节变动有时会让预测模型误判其为不规则变动,从而降低模型的预测精度

综上所述:当一个时间序列具有季节变动特征时,在预测值钱会先将季节因素进行分解。

步骤:

定义日期标示变量:即先将序列的时间定义好,才能分析其时间特征。

了解序列发展趋势:即序列图,确定乘性还是加性

进行季节因素分解

建模

分析结果解读

预测

1、定义日期标示变量

时间序列的特点就是数据根据时间点的顺序进行排列,因此分析之前,SPSS需要知道序列的时间定义,然后才能进行分析时间特征。

根据源数据的格式进行选择,并输入第一个个案的具体数值。

此时会在源文件中生成三个新的变量。

2、了解序列发展趋势

完成日期标示变量的定义之后,需要先对时间序列的变化趋势有所了解,便于选择合适的模型。即通过序列图,确定模型是乘性还是加性。

变量为”销售数据“,时间轴标签为”DATE–“,也就是我们自定义的时间。

数据销量序列图

如何根据序列图来判断模型的乘性或加性?

如果随着时间的推移,序列的季节波动变得越来越大,则建议使用乘法模型。

如果序列的季节波动能够基本维持恒定,则建议使用加法模型。

本例很明显:随着时间变化,销售数据的季节波动越来越大,那么使用乘法模型会更精确。

3、进行季节因素分解

变量为”销售数据“,且根据序列图我们知道时间序列模型为乘性。

提示您会新生成四个变量

ERR(误差序列): 从时间序列中移除季节因素、长期趋势、和循环变动之后留下的序列,也就是原始序列中的不规则变动构成的序列。

SAS(季节因素校正后序列): 是移除原始序列中的季节因素后的校正序列。

SAF(季节因子): 是从序列中分解出的季节因素。其中的变量值根据季节周期的变动进行重复,如本例中季节周期为12个月,所以这些季节因子没12个月重复一次。

STC(长期趋势和循环变动趋势): 这是原始序列中长期趋势和循环变动构成的序列。

如图,周期为12个月,季节因子12个月循环一次。

完成季节因素分解后的序列和原始序列之间有什么差异?

通过回执序列图的方法把原始序列和除去季节因子的三个序列(误差序列、季节因素校正后序列、长期无视和循环变动序列)进行比较。

要做四个序列图,会有四个变量:

原始序列 :使用变量”销售数据“;

误差序列 :使用变量”ERR“;

季节因素校场后序列 :使用变量”SAS“

长期趋势和循环变动序列 :使用变量”STC“

蓝色线:原始序列

紫色线:长期趋势和循环变动序列

浅棕色:季节因素校正后序列

绿色线:误差序列(不规则变动)

因为误差序列数值非常小,所以长期趋势和循环变动序列(长期趋势+循环变动)与季节因素校正后序列(长期趋势+循环变动+不规则变动,即误差)能够基本重合。

在单独做”季节因子SAF“的序列图:

因为是做”季节因子“的序列图,所以只有一个变量”季节因子SAF“

我们看出:季节因素的周期是12个月,先下降,然后上升到第一个顶点,再有略微的下降后,出现明显的上升趋势,到第七个月时达到峰值,然后一路下跌,直到最后一个月份有所回升,之后进入第二个循环周期。

通过对原始序列的季节分解,我们更好的掌握了原始序列所包含的时间特征,从而选用适当的模型进行预测。

三、专家建模法

时间序列的预测步骤有四步:

绘制时间序列图观察趋势

分析序列平稳性并进行平稳化

时间序列建模分析

模型评估与预测

平稳性主要是指时间序列的所有统计性质都不会随着时间的推移而发生变化。

对于一个平稳的时间序列,具备以下特征:

均数和方差不随时间变化

自相关系数只与时间间隔有关,与所处的时间无关

自相关系数是研究序列中不同时期的相关系数,也就是对时间序列计算其当前和不同滞后期的一系列相关系数。

平稳化的方法——差分。

差分就是指序列中相邻的两期数据之差。

一次差分=Yt-Yt-1

二次差分=(Yt-Yt-1)-(Yt-1-Yt-2)

具体的平稳化 *** 作过程会有专家建模法自动处理,我们只需要哼根据模型结果独处序列经过了几阶差分即可。

时间序列分析 *** 作:

要分析所有变量,所以选择”销售数据“。

【专家建模器】–【条件】,勾选”专家建模器考虑季节性模型“。

勾选”预测值“,目的是生成预测值,并保存模型。

时间序列分析结果解读

该表显示了经过分析得到的最优时间序列模型及其参数,最优时间U型猎魔性为ARIMA(0,1,1)(0,1,1)

求和自回归移动平均模型ARIMA(p,d,q)(P,D,Q)

p:出去季节性变化之后的序列所滞后的p期,通常为0或1,大于1的情况很少;

d:除去季节性变化之后的序列进行了d阶差分,通常取值为0,1或2;

q:除去季节性变化之后的序列进行了q次移动平均,通常取值0或1,很少会超过2;

P,D,Q分别表示包含季节性变化的序列所做的事情。

因此本例可解读为: 对除去季节性变化的序列和包含季节性变化的序列分别进行了一阶差分和一次移动平均,综合两个模型而建立出来的时间序列模型。

该表主要通过R方或平稳R方来评估模型拟合度,以及在多个模型时,通过比较统计量找到最优模型。

由于原始变量具有季节性变动因素,所以平稳的R方更具有参考意义,等于32.1%,拟合效果一般。

该表提供了更多的统计量可以用来评估时间序列模型的拟合效果。

虽然平稳R方仅仅是32.1%,但是”杨-博克斯Q(18)“统计量的显著性P=0.706,大于0.05(此处P>0.05是期望得到的结果),所以接受原假设,认为这个序列的残差符合随机分布,同时没有离群值出现,也都反映出数据的拟合效果还可以接受。

时间序列应用预测:

未来一年是到2016年12月,手动输入即可。

这是未来一年的销售趋势。

如果想从全局来观察预测趋势,可以在把这一年的趋势和以前的数据连接起来

此时的变量应该是”原始的销售数量“和”2016年的预测销售数量“。

结果如下:

也可以在表中查看具体的数值:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6698662.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存