时间序列预测的基本前提,简述常用的几种时间序列预测方法
LSTM:长时记忆和短时记忆,主要功能是用三个门控制以前的状态和当前的输入。这一系列操作使LSTM具有保存信息或遗忘信息的功能。因此可用于时间序列数据的预测。
理解时间序列和稳定性1。先了解时间序列。时间序列是在同一时间间隔收集的时间点的集合。对这些集合进行分析,以了解长期发展趋势,从而预测未来或进行其他形式的性能分析。这里的理解好像是一个时间对应一个值,可以用线性时间来做。但事实并非如此。因为:
虽然一个时间点对应一个数据,但是由于y=wx b的公式,理论上数据是不输出的,因为这个分布非常复杂,包括以下三个特点:1。趋势:一定时间内的单调性,一般来说斜率是固定的。2.季节性:定长的变化,就像春夏秋冬的温度变化。波动的时间频率是固定的。3.周期性:类似于季节性,但其波动的时间频率并不固定。从时间序列中获得的数据是不独立的。基于线性回归模型的假设要求观测结果是独立的,这显然是不正确的。2.如果要处理时间序列,首先要判断时间序列是否可预测。比如有的数据是完全随机的,根本找不到预测逻辑,有的是不稳定的,即一些重要的统计变量(反映数据的分布特征)是不断变化的,基于给定的数据集无法预测整体的数据分布,即时间序列不具有代表性,无法预测未来。
理解生动,
平稳性就是要求经由样本时间序列所得到的拟合曲线在未来的一段期间内仍能顺着现有的形态“惯性”地延续下去
;如果数据不稳定,则意味着样本拟合曲线的形状不具有“惯性”延续的特征,即基于未来要获得的样本时间序列拟合的曲线将与当前的样本拟合曲线有较大差异。描述链接
综上所述,其实时间序列分析并不是为了获得一个准确的函数。未来可以根据直接代入时间得到对应的值
而是为了找出数据的总体分布
来预测未来的数据。因此,测试数据的稳定性非常重要,稳定性的判定标准非常严格。但是,如果时间序列在一段时间内产生恒定的统计特征,我们可以根据实际目的假设该序列是稳定的。如下所示:
的常数平均值
恒定方差
非时变自协方差测试方法
1. 季节性测试方法:
上图是自相关图像,下面会介绍自相关系数。该图看起来像一个正弦函数。这是一个关于季节性的暗示。你可以通过找到上图中的周期来找到它的值,就是24h。
2. 平稳性测试方法
平稳性是时间序列的一个重要特征。如果一个时间序列的统计特性不随时间变化,那么它就是平稳的。换句话说,它有一个恒定的均值和方差,协方差与时间无关。
方法:查看时序图。就是直接看数据的趋势,比如增加,肯定是不稳定的,因为平均值一直在增加。自相关系数和偏相关系数
ADF检测:检查是否有单位根,如果有,则为非平稳序列。
不平稳怎么办?
这里有一些重要的定义需要解释:参考链接。
统计变量
自相关系数
其实自相关系数可以这样理解:一列数据按照滞后数分成两列数据,两列数据的操作类似于自相关系数。坦率地说,自相关是它们之间的相似性和它们的时间延迟的函数。
看一个例子:
这组数据是求滞后2的自相关系数,所以就成了{x1,x2,…,x8}和{x3,x4,…,x10}的“相关系数”。引用相关系数是因为这个相关系数的公式和前面的有点不一样。下面来看看公式的对比:
#来自stats models.graphics.tsaplots的自相关图导入plot _ acfplot _ acf(数据)。显示()
偏自相关系数
偏自相关是对排除干扰后的时间序列观测值与前一时间步时间序列观测值之间关系的总结。滞后k处的部分自相关是在消除由于短滞后条件引起的任何相关的影响之后产生的相关。观测值和先前时间步长上的观测值的自相关包括直接相关和间接相关。这些间接相关是线性函数观察的那些(该观察在两个时间步长之间)。部分自相关函数试图消除这些间接相关性。从statsmodels.graphics.tsaplots导入plot_pacfplot_pacf(D_data)。show()` `
ADF检测
ADF检查原则:
ADF检验是确定序列中是否存在单位根:如果序列稳定,则不存在单位根;否则会有单位根。
因此,ADF检验的H0假设是单位根的存在。如果显著性检验的统计量小于三个置信水平(10%,5%,1%),则原始假设将以应有的确定性(90%,95%,99%)被拒绝。#平稳性检验,ADF检验,又称单位根检验。从statsmodels.tsa.stat工具导入ad fuller作为ADF print (ADF测试结果U 原序列为:,ADF(data[u sales])
差分
实际上是一组数据,后面的数据和前面的数据的区别。二阶是在一阶的基础上有所作为。而量的大小是负一(很明显)。可以直观地显示以下结果。在我的意义上,区别其实是消除了趋势导入numpy为NP arr=np.asarray (np.arange (0,10))print(arr)diff 1=NP . diff(arr)diff 2=NP . diff(diff 1)print(diff 1)print(diff 2)输出结果:[0 1 2 3 4 5 6 7 8 9][1 1 1 1 1 1 1 1 1 1 1 1 1][0 000 000]流程完成,退出代码0时间序列建模看这里!参考内容
某个时间序列经过预处理后,判断为平稳非白噪声序列,就可以建模了!
转载自:参考链接
这里有三种方法。
移动平均指数平滑ARIMA
移动平均:
该模型简单地说明下一次观察是所有过去观察的平均值。所以周期性是可以很好的消除的,因为周期性确实是一个局部的变化,但是从全局来看,周期性也是一个很平均的状态。指数平滑:
指数平滑法采用的是类似于移动平均线的逻辑,只是这一次,每个观察值被赋予了不同的“递减权重”。换句话说,当我们离现在越来越远时,观察的重要性就变得越来越小。数学上,指数平滑表示为:
这里,是一个平滑因子,取值范围从0到1。它决定了之前观察中体重下降的速度。
可以看出,越小,前一次观测数据的权重越大,当前数据的权重越小,从而使图像更加平滑。
双指数平滑
当时间序列中存在趋势时,采用双指数平滑法。
在这种情况下,我们使用这种技术,它只递归使用指数平滑两次。数学公式:
三次指数平滑
此方法扩展了双指数平滑,并增加了季节性平滑因子。当然可以。010-5900数学上,三次指数平滑表示为:其中是季节平滑因子,L是季节长度。
如果你注意到时间序列中的季节性,这是很有用的。
首先,我们得到自回归模型AR。该函数仅通过时间序列变量的历史观测值反映相关因素对预测目标的影响和作用,不受模型变量相互独立的假设约束,基本上是时间序列的回归。这里我们假设当前值依赖于它的前一个值,但是有一定的延迟。它使用参数p来指示最大延迟。为了找到它,我们查看局部自相关图并确定大多数不显著的滞后。
在下面的例子中,p等于4。
然后,我们加上移动平均线模型MA(q)。该参数Q表示自相关图中具有不显著的其他滞后的最大滞后,并且序列的当前时刻的序列值是过去Q阶白噪声的线性组合。(就我的理解,可能这里的噪声其实是上面说的其他滞后中的最大滞后,因为会对数据产生干扰,但并不显著。
这种模式的目的是:1 .找出过去几期的白噪音对当前值的影响。2.找出过去Q期冲击效应对当前值的影响。
接下来,q等于4。
然后,我们添加积分顺序I(d)。参数d代表使数列稳定所需的差分数。
最后,我们添加最后一个组件:季节性S(P,D,Q,S),其中S只是季节的长度。此外,该组件需要参数P和Q,它们与P和Q相同,但用于季节性组件。最后,D是季节积分序列,表示从序列中去除季节性所需的差异数。
综合所有这些,我们得到了SARIMA(p,D,q)(P,D,Q,s)模型。
原文链接:https://blog.csdn.net/u011984148/article/details/99439863
参考链接:
时间序列-MA模型
时间序列的详细说明
如何理解自相关和偏自相关图(最全面的解释)
关于时间序列你需要知道什么
Python时间序列ADF测试详解