Ⅰ (三)时间序列分析的基本方法
1.模型的选择和建模基本步骤
(1)建模基本步骤
1)用观测、调查、取样,取得时间序列动态数据。
2)作相关图,研究变化的趋势和周期,并能发现跳点和拐点。拐点则是指时间序列从上升趋势突然变为下降趋势的点,如果存在拐点,则在建模时必须用不同的模型去分段拟合该时间序列。
3)辨识合适的随机模型,进行曲线拟合。
(2)模型的选择
当利用过去观测值的加权平均来预测未来的观测值时,赋予离得越近的观测值以更多的权,而“老”观测值的权数按指数速度递减,称为指数平滑(exponential smoothing),它能用于纯粹时间序列的情况。
对于短的或简单的时间序列,可用趋势模型和季节模型加上误差来进行拟合。对于平稳时间序列,可用自回归(AR)模型、移动平均(MA)模型或其组合的自回归移动平均(ARMA)模型等来拟合。
一个纯粹的AR模型意味着变量的一个观测值由其以前的p个观测值的线性组合加上随机误差项而成,就像自己对自己回归一样,所以称为自回归模型。
MA模型意味着变量的一个观测值由目前的和先前的n个随机误差的线性的组合。
当观测值多于50个时一般采用ARMA模型。
对于非平稳时间序列,则要先将序列进行差分(Difference,即每一观测值减去其前一观测值或周期值)运算,化为平稳时间序列后再用适当模型去拟合。这种经差分法整合后的ARMA模型称为整合自回归移动平均模型(Autoregressive Integrated Moving Average),简称ARIMA模型(张文彤,2002;薛薇,2005;G.E.P.Box et al.,1994)。
ARIMA模型要求时间序列满足平稳性和可逆性的条件,即序列均值不随着时间增加或减少,序列的方差不随时间变化。但由于我们所关注的地层元素含量变化为有趋势和周期成分的时间序列,都不是平稳的,这就需要对其进行差分来消除这些使序列不平稳的成分。所以我们选择更强有力的ARIMA模型。
2.平稳性和周期性研究
有些数学模型要检验周期性变化是否为平稳性过程,即其统计特性不随时间而变化,我们可根据序列图、自相关函数图、偏自相关函数图和谱密度图等对序列的平稳性和周期性进行识别。当序列图上表现有明显分段特征时可采用分段计算法,若分段求得的每段频谱图基本一致或相似,则认为过程是平稳的,否则是非平稳的。
自相关函数ACF(Autocorrelations function)是描述序列当前观测值与序列前面的观测值之间简单和常规的相关系数;而偏自相关函数PACF(Partial autocorrelations function)是在控制序列其他的影响后,测度序列当前值与某一先前值之间的相关程度。
平稳过程的自相关系数和偏自相关系数只是时间间隔的函数,与时间起点无关,都会以某种方式衰减趋近于0。
当ACF维持许多期的正相关,且ACF的值通常是很缓慢地递减到0,则序列为非平稳型。
序列的自相关-偏自相关函数具有对称性,即反映了周期性变化特征。
3.谱分析
确定性周期函数X(t)(设周期为T)在一定条件下通过傅里叶(Fourier)级数展开可表示成一些不同频率的正弦和余弦函数之和(陈磊等,2001),这里假设为有限项,即:
洞庭湖区第四纪环境地球化学
其中,频率fk=k/T,k=1,2,…,N。
上式表明:如果抛开相位的差别,这类函数的周期变化完全取决于各余弦函数分量的频率和振幅。换句话说,我们可以用下面的函数来表示X(t)的波动特征:
洞庭湖区第四纪环境地球化学
函数p(f)和函数X(t)表达了同样的周期波动,两者实际上是等价的,只不过是从频域和时域两个不同角度来描述而已。称p(f)为X(t)的功率谱密度函数,简称谱密度。它不仅反映了X(t)中各固有分量的周期情况,还同时显示出这些周期分量在整体X(t)中各自的重要性。具体说,在X(t)中各周期分量的对应频率处,谱密度函数图应出现较明显的凸起,分量的振幅越大,峰值越高,对X(t)的整体影响也越大。
事实上,无论问题本身是否具有周期性或不确定性(如连续型随机过程或时间序列)都可以采用类似的方法在频域上加以描述,只是表示的形式和意义比上面要复杂得多。时间序列的谱分析方法就是要通过估计时间序列的谱密度函数,找出序列中的各主要周期分量,通过对各分量的分析达到对时间序列主要周期波动特征的把握。
根据谱分析理论,对一个平稳时间序列{Xt},如果其自协方差函数R(k)满足
如何从实际问题所给定的时间序列 {Xt,t=1,2,…,n} 中估计出其谱密度或标准谱密度函数是谱分析要解决的主要问题。本书采用图基-汉宁(Tukey-Hanning)窗谱估计法。
Ⅱ 什么是时间序列
时间序列法是一种定量预测方法,亦称简单外延方法。在统计学中作为一种常用的预测手段被广泛应用。时间序列通常有以下三种方法:
1.方法一是把一个时间序列的数值变动,分解为几个组成部分,通常分为:
(1)倾向变动,亦称长期趋势变动T;
(2)循环变动,亦称周期变动C;
(3)季节变动,即每年有规则地反复进行变动S;
(4)不规则变动,亦称随机变动I等。然后再把这四个组成部分综合在一起,得出预测结果。
2.方法二是把预测对象、预测目标和对预测的影响因素都看成为具有时序的,为时间的函数,而时间序列法就是研究预测对象自身变化过程及发展趋势。
3.方法三是根据预测对象与影响因素之间的因果关系及其影响程度来推算未来。与目标的相关因素很多,只能选择那些因果关系较强的为预测影响的因素。
时间序列分析在第二次世界大战前应用于经济预测。二次大战中和战后,在军事科学、空间科学、气象预报和工业自动化等部门的应用更加广泛。
Ⅲ 时间序列分析方法
时间序列是指一组在连续时间上测得的数据,其在数学上的定义是一组向量x(t), t=0,1,2,3,...,其中t表示数据所在的时间点,x(t)是一组按时间顺序(测得)排列的随机变量。包含单个变量的时间序列称为单变量时间序列,而包含多个变量的时间序列则称为多变量。
时间序列在很多方面多有涉及到,如天气预报,每天每个小时的气温,股票走势等等,在商业方面有诸多应用,如:
下面我们将通过一个航班数据来说明如何使用已有的工具来进行时间序列数据预测。常用来处理时间序列的包有三个:
对于基于AR、MA的方法一般需要数据预处理,因此本文分为三部分:
通过简单的初步处理以及可视化可以帮助我们有效快速的了解数据的分布(以及时间序列的趋势)。
观察数据的频率直方图以及密度分布图以洞察数据结构,从下图可以看出:
使用 statsmodels 对该时间序列进行分解,以了解该时间序列数据的各个部分,每个部分都代表着一种模式类别。借用 statsmodels 序列分解我们可以看到数据的主要趋势成分、季节成分和残差成分,这与我们上面的推测相符合。
如果一个时间序列的均值和方差随着时间变化保持稳定,则可以说这个时间序列是稳定的。
大多数时间序列模型都是在平稳序列的前提下进行建模的。造成这种情况的主要原因是序列可以有许多种(复杂的)非平稳的方式,而平稳性只有一种,更加的易于分析,易于建模。
在直觉上,如果一段时间序列在某一段时间序列内具有特定的行为,那么将来很可能具有相同的行为。譬如已连续观察一个星期都是六点出太阳,那么可以推测明天也是六点出太阳,误差非常小。
而且,与非平稳序列相比,平稳序列相关的理论更加成熟且易于实现。
一般可以通过以下几种方式来检验序列的平稳性:
如果时间序列是平稳性的,那么在ACF/PACF中观测点数据与之前数据点的相关性会急剧下降。
下图中的圆锥形阴影是置信区间,区间外的数据点说明其与观测数据本身具有强烈的相关性,这种相关性并非来自于统计波动。
PACF在计算X(t)和X(t-h)的相关性的时候,挖空在(t-h,t)上所有数据点对X(t)的影响,反应的是X(t)和X(t-h)之间真实的相关性(直接相关性)。
从下图可以看出,数据点的相关性并没有急剧下降,因此该序列是非平稳的。
如果序列是平稳的,那么其滑动均值/方差会随着时间的变化保持稳定。
但是从下图我们可以看到,随着时间的推移,均值呈现明显的上升趋势,而方差也呈现出波动式上升的趋势,因此该序列是非平稳的。
一般来讲p值小于0.05我们便认为其是显着性的,可以拒绝零假设。但是这里的p值为0.99明显是非显着性的,因此接受零假设,该序列是非平稳的。
从上面的平稳性检验我们可以知道该时间序列为非平稳序列。此外,通过上面1.3部分的序列分解我们也可以看到,该序列可分解为3部分:
我们可以使用数据转换来对那些较大的数据施加更大的惩罚,如取对数、开平方根、立方根、差分等,以达到序列平稳的目的。
滑动平均后数据失去了其原来的特点(波动式上升),这样损失的信息过多,肯定是无法作为后续模型的输入的。
差分是常用的将非平稳序列转换平稳序列的方法。ARIMA中的 'I' 便是指的差分,因此ARIMA是可以对非平稳序列进行处理的,其相当于先将非平稳序列通过差分转换为平稳序列再来使用ARMA进行建模。
一般差分是用某时刻数值减去上一时刻数值来得到新序列。但这里有一点区别,我们是使用当前时刻数值来减去其对应时刻的滑动均值。
我们来看看刚刚差分的结果怎么样。
让我们稍微总结下我们刚刚的步骤:
通过上面的3步我们成功的将一个非平稳序列转换成了一个平稳序列。上面使用的是最简单的滑动均值,下面我们试试指数滑动平均怎么样。
上面是最常用的指数滑动平均的定义,但是pandas实现的指数滑动平均好像与这个有一点区别,详细区别还得去查pandas文档。
指数滑动均值的效果看起来也很差。我们使用差分+指数滑动平均再来试试吧。
在上面我们通过 取log+(指数)滑动平均+差分 已经成功将非平稳序列转换为了平稳序列。
下面我们看看,转换后的平稳序列的各个成分是什么样的。不过这里我们使用的是最简单的差分,当前时刻的值等于原始序列当前时刻的值减去原始序列中上一时刻的值,即: x'(t) = x(t) - x(t-1)。
看起来挺不错,是个平稳序列的样子。不过,还是检验一下吧。
可以看到,趋势(Trend)部分已基本被去除,但是季节性(seasonal)部分还是很明显,而ARIMA是无法对含有seasonal的序列进行建模分析的。
在一开始我们提到了3个包均可以对时间序列进行建模。
为了简便,这里 pmdarima 和 statsmodels.tsa 直接使用最好的建模方法即SARIMA,该方法在ARIMA的基础上添加了额外功能,可以拟合seasonal部分以及额外添加的数据。
在使用ARIMA(Autoregressive Integrated Moving Average)模型前,我们先简单了解下这个模型。这个模型其实可以包括三部分,分别对应着三个参数(p, d, q):
因此ARIMA模型就是将AR和MA模型结合起来然后加上差分,克服了不能处理非平稳序列的问题。但是,需要注意的是,其仍然无法对seasonal进行拟合。
下面开始使用ARIMA来拟合数据。
(1) 先分训练集和验证集。需要注意的是这里使用的原始数据来进行建模而非转换后的数据。
(2)ARIMA一阶差分建模并预测
(3)对差分结果进行还原
先手动选择几组参数,然后参数搜索找到最佳值。需要注意的是,为了避免过拟合,这里的阶数一般不太建议取太大。
可视化看看结果怎么样吧。
(6)最后,我们还能对拟合好的模型进行诊断看看结果怎么样。
我们主要关心的是确保模型的残差(resial)部分互不相关,并且呈零均值正态分布。若季节性ARIMA(SARIMA)不满足这些属性,则表明它可以进一步改善。模型诊断根据下面的几个方面来判断残差是否符合正态分布:
同样的,为了方便,我们这里使用 pmdarima 中一个可以自动搜索最佳参数的方法 auto_arima 来进行建模。
一般来说,在实际生活和生产环节中,除了季节项,趋势项,剩余项之外,通常还有节假日的效应。所以,在prophet算法里面,作者同时考虑了以上四项,即:
上式中,
更多详细Prophet算法内容可以参考 Facebook 时间序列预测算法 Prophet 的研究 。
Prophet算法就是通过拟合这几项,然后把它们累加起来得到时间序列的预测值。
Prophet提供了直观且易于调整的参数:
Prophet对输入数据有要求:
关于 Prophet 的使用例子可以参考 Prophet example notebooks
下面使用 Prophet 来进行处理数据。
参考:
Facebook 时间序列预测算法 Prophet 的研究
Prophet example notebooks
auto_arima documentation for selecting best model
数据分析技术:时间序列分析的AR/MA/ARMA/ARIMA模型体系
https://github.com/advaitsave/Introction-to-Time-Series-forecasting-Python
时间序列分析
My First Time Series Comp (Added Prophet)
Prophet官方文档: https://facebookincubator.github.io
Ⅳ 时间序列的种类
一、绝对数时间序列
1、时期序列:由时期总量指标排列而成的时间序列 。
时期序列的主要特点有:
1)、序列中的指标数值具有可加性。
2)、序列中每个指标数值的大小与其所反映的时期长短有直接联系。
3)、序列中每个指标数值通常是通过连续不断登记汇总取得的。
2、时点序列:由时点总量指标排列而成的时间序列
时点序列的主要特点有:
1)、序列中的指标数值不具可加性。
2)、序列中每个指标数值的大小与其间隔时间的长短没有直接联系。
3)、序列中每个指标数值通常是通过定期的一次登记取得的。
二、相对数时间序列
把一系列同种相对数指标按时间先后顺序排列而成的时间序列叫做相对数时间序列。
三、平均数时间序列
平均数时间序列是指由一系列同类平均指标按时间先后顺序排列的时间序列。
(4)基于时间序列的定量测量方法扩展阅读
时间序列数据变动存在着规律性与不规律性
时间序列中的每个观察值大小,是影响变化的各种不同因素在同一时刻发生作用的综合结果。从这些影响因素发生作用的大小和方向变化的时间特性来看,这些因素造成的时间序列数据的变动分为四种类型。
1、趋势性:某个变量随着时间进展或自变量变化,呈现一种比较缓慢而长期的持续上升、下降、停留的同性质变动趋向,但变动幅度可能不相等。
2、周期性:某因素由于外部影响随着自然季节的交替出现高峰与低谷的规律。
3、随机性:个别为随机变动,整体呈统计规律。
4、综合性:实际变化情况是几种变动的叠加或组合。预测时设法过滤除去不规则变动,突出反映趋势性和周期性变动。
Ⅳ 什么是时间序列分析法
时间序列是按时间顺序的一组数字序列。时间序列分析就是利用这组数列,应用数理统计方法加以处理,以预测未来事物的发展。时间序列分析是定量预测方法之一,它的基本原理:一是承认事物发展的延续性。应用过去数据,就能推测事物的发展趋势。二是考虑到事物发展的随机性。任何事物发展都可能受偶然因素影响,为此要利用统计分析中加权平均法对历史数据进行处理。该方法方法简单易行,便于掌握,但准确性差,一般只适用于短期预测。
Ⅵ 时间序列分析
时间序列分析是一个很大的分类,包括很多模型,分别适用于不同的情况。所以得到的结果一不一样和建的模型一不一样有关系。至于模型长什么样要看数据长什么样。把数据按时间画出来,看有没有明显趋势,波动或者季节性,然后一个一个模型试。
Ⅶ 时间序列预测方法有哪些分类,分别适合使用的情况是
时间序列预测方法根据对资料分析方法的不同,可分为:简单序时平均数法、加权序时平均数法、移动平均法、加权移动平均法、趋势预测法、指数平滑法、季节性趋势预测法、市场寿命周期预测法等。
1、简单序时平均数法只能适用于事物变化不大的趋势预测。如果事物呈现某种上升或下降的趋势,就不宜采用此法。
2、加权序时平均数法就是把各个时期的历史数据按近期和远期影响程度进行加权,求出平均值,作为下期预测值。
3、简单移动平均法适用于近期期预测。当产品需求既不快速增长也不快速下降,且不存在季节性因素时,移动平均法能有效地消除预测中的随机波动。
4、加权移动平均法即将简单移动平均数进行加权计算。在确定权数时,近期观察值的权数应该大些,远期观察值的权数应该小些。
5、指数平滑法即根用于中短期经济发展趋势预测,所有预测方法中,指数平滑是用得最多的一种。
6、季节趋势预测法根据经济事物每年重复出现的周期性季节变动指数,预测其季节性变动趋势。
7、市场寿命周期预测法,适用于对耐用消费品的预测。这种方法简单、直观、易于掌握。
(7)基于时间序列的定量测量方法扩展阅读:
时间序列预测法的特征
1、时间序列分析法是根据过去的变化趋势预测未来的发展,前提是假定事物的过去延续到未来。运用过去的历史数据,通过统计分析,进一步推测未来的发展趋势。不会发生突然的跳跃变化,是以相对小的步伐前进;过去和当前的现象,可能表明现在和将来活动的发展变化趋向。
2.时间序列数据变动存在着规律性与不规律性
时间序列中的每个观察值大小,是影响变化的各种不同因素在同一时刻发生作用的综合结果。从这些影响因素发生作用的大小和方向变化的时间特性来看,这些因素造成的时间序列数据的变动分为四种类型:趋势性、周期性、随机性、综合性。
Ⅷ 时间序列怎么计算
时间序列计算方法:时间序列法是一种定量预测方法,亦称简单外延方法,在统计学中作为一种常用的预测手段被广泛应用。时间序列的统计特征,一般都能够想到最大值(max),最小值(min),均值(mean),中位数(median),方差(variance),标准差(standard variance)等指标