时间序列基础知识

ryluo 2020-06-23 19:17:56

入门资料:

https://github.com/aarshayj/analytics_vidhya/tree/master/Articles/Time_Series_Analysis

https://yq.aliyun.com/articles/490862?utm_content=m_42544

【预测 - 00】概述:时间序列、特征设计+回归模型(持续更新…)

https://blog.csdn.net/Houchaoqun_XMU/article/details/81462885

时间序列预测方法总结

https://zhuanlan.zhihu.com/p/67832773

时间序列基本介绍

时间序列是指这样一组数值序列,这组数值序列是依据一定的时间间隔对同一对象的持续观测而记录下来的一串有序数据。比如乘客数量随时间的变化。

时间序列中通常蕴含丰富的信息,在很多场景下,这些信息能够帮助人们理解现象并且还可以预测未来;比如在很早以前,巴比伦天文学家对卫星运行轨迹进行持续观测得到序列数据并通过分析数据来预测天文事件;在医学领域,医学专家通过对病人血压的持续测量观测来衡量药物治疗的效果;在股市中,分析股票的历史以来每日收盘价格来预测未来时间的股价;在信息安全领域,通过对网络流量数据的分析,来做网络异常的检测;

对于一个时间序列,通常可以从四个方面来考虑数据的特性:趋势性季节性周期性随机性

如果一个时间序列从总体上来看是逐渐增加的、或者减少的、或者保持稳定的,那么该时间序列具有趋势性;如下图,当时间序列的数据受到一些季节性因素(一年中的不同季度、一周中的工作日和周末、一年中特定的节日、气候等等)的影响,那么时间序列数据就会带有季节性。比如冰棍的销售量通常会在夏天突然增长;在节假日周日,游客数量会增加。具有季节性的时序序列数据通常是以一个固定且可知的频率变化。仔细观察图二的话,你将不仅会发现此时间序列具有明显的趋势性而且还具有季节性。

image-20200623232208280

周期性是时间序列中长期的变化趋势,周期性的变化频率是不可知的,但数据从中长期来看会出现相同的模式,通常是2年及以上时间。比如下图 时间序列 每6~10年会呈现出一定的周期性

image-20200623232403720

时间序列中的随机性是由不可预知的影响引起的,这些影响不规则且在特定模式中不会重复。时间序列的随机性是不可预知的部分

image-20200623232428020

通常对于现实生活中的一个时间序列来说,趋势性、周期性、季节性是使得时间序列蕴含可预测信息的原因,而时间序列表现的随机性往往是致使预测出现误差的”罪魁祸首“。所以,并不是所有的时间序列都值得进行预测的,只有那些具有明显的可预测特性的时间序列才能用来进行预测,并且能够得到一个可信的预测结果;对于一个随机性占大部分比例的时间序列,对其进行预测,通常不会得到一个可信的预测结果。

预测分析的基本步骤

初步分析

季节性

通常在得到一组时间序列之后,可以通过做出时间序列图(x轴为采样时间点,y轴为观测数据),能够很容易识别时间序列的一些特性,比如趋势性。如果通过时间序列图无法让你看出时间序列中包含的季节性,那么也许你可以做出季节性图,比如这样,通过将每年的数据分别绘制,就能让时间序列的季节性更加清晰的显露出来。

image-20200623233026201

变量之间的相关性Correlation

假设我们希望研究两个变量之间的关联关系,那么这个时候 散点图可能是个很好的工具。

image-20200623233153171

image-20200623233247334

通过做出两个变量的散点图(以其中一个变量作为x轴、另一个变量作为y轴),来观测图中点的分布情况:如果点散落的越随机,则说明两个变量之间的相关性越弱;如果点散落的越有规律则说明两个变量之间的相关性越强;

另外还可以通过计算两个变量之间的相关性系数r来衡量变量之间的相关性强弱;

其中$x_t,y_t$表示在时间点t 变量X和变量Y的观测值,$\bar x ,\bar y$分别代表变量X、变量Y的平均值;相关性系数r的取值范围[-1,1];r的绝对值越接近1,表示两个变量之间的线性相关性越强;如果相关性系数r为0,则表示两个变量之间不存在线性相关性(但可能存在其他的相关性)

自相关性Autocorrelation

时间序列的自相关性研究的是时间序列与自己的相关性强弱。

比如当k = 1 时,r1 研究的是 yt 与 yt-1 之间的相关性强弱(通俗点讲就是研究 今天的我与昨天的我之间的相关性)。为了得出一个时间序列与自己最相关的一个自己的过去序列,通常需要计算多个k值下的情况,比如计算前9个自相关性系数:

image-20200623233923994

通过分析各个相关性系数的值的大小,来分析时间序列自相关性的特性;当然也可以通过作图来帮助自己分析,这样的图叫相关图:在这里自相关性系数也被成为ACF值

image-20200623233957533

从相关图中也能得到关于时间序列趋势性、季节性的信息:

如果时间序列具有趋势性,那么k越小时,相关性系数的值会越大并且为正数;k越大时,相关性系数会越小并且为正数。

如果时间序列具有季节性,那么在出现季节性的k值时,相关性将会比其他的都大。下图中的红线所绘的形状则是因为时间序列具有季节性所致

image-20200623234135471

如果一个时间序列没有自相关性,也就是说rk的绝对值接近于0,称这样的时间序列为白噪声(White noise)。对于一个白噪声,我们期望它的自相关系数为0,但往往不等于0(由于存在随机性变量)。那么如何界定一个时间序列是否为白噪声呢?

通常认为 计算出来的自相关性数值 有95% 值的大小介于下值,则认为该时间序列为白噪声;否则则不是。其中T代表时间序列的大小(即观测值的数量)

处理缺失值和异常值

缺失值可能会带来很多麻烦,所有有必要在对时间序列建模之前,分析一下缺失值是否会给预测带来偏差。例如,假设我们正在研究商店的销售额数据,当商店关闭时,在公共假期时就会出现缺失值,也就是当天的销售额为0。假期后的第二天会突然增加销售额。如果我们在预测模型中没有考虑到这一点,则会给模型带来预测偏差。解决这种情况的一种方法是使用动态回归模型(dynamic regression model),该模型具有虚拟变量(dummy variables),指示某一天是公共假日还是非公共假日。注意处理这样的缺失值没有自动化的方法,因为它们依赖于特定的预测上下文。对于缺失值的处理需要根据预测的具体场景有很多处理方法(比如截取最后一个缺失值后面的时间序列进行分析、让模型对缺失值产生估计来当做本来缺失的观测值)

异常值是与时间序列中的大多数观测值非常不同的观测值。它们可能是错误的,如果数据中存在极端异常值,那么可能会导致预测方法不能很好地工作。

在这种情况下,我们需要有一些手段来处理异常值,比如用缺失值或与估计值来替换它们,视具体场景而定。但是如果简单地替换异常值而不考虑它们发生的原因是一种危险的做法。因为这些异常值可以提供关于产生异常数据的过程的一些有用信息,而这些信息在预测时应该被考虑到。

时间序列与回归分析的本质区别

两者的核心区别在于对数据的假设,回归分析假设每个数据点都是独立的,而时间序列是利用数据之间的相关性进行预测。

回归分析中: 数据顺序可以任意交换。在建模的时候可以随机选取数据作为训练集和验证集。也正是因为可以随机选取,所以每个预测值的误差都是相对恒定的:不存在误差的积累,导致预测准确度越来越低

时序分析中:对于时间序列分析而言,必须假设并且利用数据的相关性。主要原因是我们没有其他任何外部的数据,只能利用现有的数据走向来预测未来。因此我们需要假设每个数据点之间有相关性,并且通过建模找到对应的相关性,利用它去预测未来的数据走向。这也是为什么经典的时间序列分析(ARIMA)会用ACF(自相关系数)和PACF(偏自相关系数)来观察数据之间的相关性。

时间序列对相关性的假设直接违背了回归分析的独立性假设。在多段时间序列预测中,一方面,对于未来预测的自变量可能无法真实的观察到,另一方面,随着预测越来越远,误差会逐渐积累:你对于长远未来的预测应该会比近期预测更不确定。因此,时间序列分析需要采用一种完全不同的视角,用不同的模型去进行分析研究。

AR模型与线性回归模型的关系

时间序列分析中一个基础模型就是AR(Auto-Regression)模型,它利用过去的数据点来预测未来。例如,AR(1)模型利用当前时刻的数据点预测未来值,其数学关系为:

通过公式可以发现自回归模型与线性回归模型非常的类似。唯一的差别就是等式右边的自变量(x)变成了过去的因变量(y),也正是这点差异,导致两者的解完全不同。在AR模型中,由于模型自变量成为了过去的因变量,使得自变量与过去的误差之间有相关性。而这种相关性使得利用线性模型得到的AR模型的解会是有偏估计(biased)。

事实上,我们会用线性回归模型去近似求解AR模型。因为虽然结果会是有偏的,但是却是一致估计。也就是说,当数据量足够大的时候,求解的值会收敛于真实值。

时序数据为什么不能随机划分训练集和验证集:

避免出现“利用未来数据”来预测“过去走向”的问题,也就是数据穿越了,这样即使验证集表现的非常好,但是线上仍然可能存在很大的问题。

小结

参考资料:

https://www.zhihu.com/question/337447961/answer/784606565

https://zhuanlan.zhihu.com/p/51541755