时间序列及其R代码实现

一. 时间序列的定义
时间序列及其R代码实现_第1张图片
时间序列是将统一统计值按照时间发生的先后顺序进行排列,时间序列分析的主要目的是根据已有数据对未来进行预测。
一个稳定的时间序列中常常包含两个部分:有规律的时间序列和噪声。所以,在以下的方法中,主要的目的就是过滤噪声值,让时间序列更加有分析意义。

二. 时间序列的预处理
拿到一个观察值序列之后,首先要对其稳定性和纯随机性进行检验,这两个重要的检验称为序列的预处理。根据检验的结果可以将序列分为不同的类型,对不同类型的序列会采用不同的分析方法。
1.平稳性检验
所谓平稳,是指统计值在一个常数上下波动并且波动范围是有界限的。如果有明显的趋势或者周期性,那么就是不稳定的。
一般判断有三种方法:
a.时序图检验
所谓时序图,就是一个平面二维坐标图,通常横轴表示时间,纵轴表示序列取值,时序图可以直观地帮助我们掌握时间序列的一些基本分布特征。
b.自相关图检验
自相关图是一个平面二维坐标悬垂线图,一个坐标轴表示延迟时期数,另一个坐标表示自相关系数,通常以悬垂线表示自相关系数的大小。
c.单位根检验
检验序列中是否存在单位根,如果存在,就是非平稳时间序列。

通过平稳性检验,序列可以分为平稳序列和非平稳性两大类。对于非平稳序列,由于它不具有二阶矩平稳的性质,所以对它的统计分析要周折一些,通常要进行进一步的检验、变换或处理之后,才能确定适当的拟合模型。
如果序列平稳,情况就简单多了,我们有一套非常成熟的平稳序列建模方法。但并不是所有的平稳序列都值得建模。只有那些序列值之间具有密切的相关关系、历史数据对未来的发展有一定影响的序列,才值得去挖掘历史数据中的有效信息,用来预测序列未来的发展。所以接下来要进行白噪声检验。
2.白噪声检验
只有非白噪声的稳定性时间序列才有分析的意义以及预测未来数据的价值。
如果序列值彼此之间没有任何相关性,那就意味着该序列是一个没有记忆的序列,过去的行为对将来的发展没有丝毫影响,这种称为白噪声序列,又称为纯随机性序列。从统计分析的角度来说,纯随机序列是没有任何分析价值的序列。为了确定平稳序列是否值得继续分析下去,我们需要对平稳序列进行纯随机性检验。
3.平稳时间序列的参数特点
均值和方差为常数,并且具有与时间无关的自协方差。

三. 时间序列建模步骤
1.获得观察值序列
2.对其进行平稳性检验
若为非平稳时间序列要进行d阶差分运算后化为平稳时间序列,此处的d为ARIMA(p,d,q)模型中的d;若为平稳序列,则进行白噪声检验,用ARMA(p,q)模型。所以ARIMA(p,d,q)模型区别于ARMA(p,q)之处就在于前者的自回归部分的特征多项式含有d个单位根。
3.拟合模型
对得到的平稳时间序列分别求得其自相关系数AFC和偏自相关系数PAFC,通过对自相关图和偏自相关图的分析,得到最佳的阶层p和阶数q。由以上的d,q,p,得到ARIMA模型。
4.模型诊断。
进行诊断分析,以正式所得模型缺失与所观察到的数据特征相符。若不相符,则重新回到第3步。

四. 自回归移动平均模型
时间序列及其R代码实现_第2张图片

五. 求和自回归移动平均模型
非稳定模型可以通过差分的方式使之平稳化,而ARIMA即在参数中比ARIMA多了一个差分过程,如果ARMA的公式为ARMA(p,q),那么ARIMA(p,d,q)这里的d即为差分的意思,代表是几阶差分。

六. R语言中实现案例
时间序列及其R代码实现_第3张图片
时间序列及其R代码实现_第4张图片
时间序列及其R代码实现_第5张图片

你可能感兴趣的:(博客,笔记,r语言,概率论,机器学习)