【说在前面】本人博客新手一枚,象牙塔的老白,职业场的小白。如下内容仅为我的看法,欢迎批评指正,不喜勿喷![认真看图][认真看图]html
【补充说明】时间序列分析主要有两个方向,一个经过是对历史数据的分析进行异常检测和分类,二是进行预测! python
【补充说明】回归分析假设每一个数据点都是独立的,而时间序列分析则是利用数据之间的相关性进行预测!面试
【多说一句】本文主要对时间序列分析中预测类问题下的建模方案进行探讨,其余内容以后再分享!算法
一个时间序列可能存在的特征包括如下几种:网络
时间序列中预测类问题的目标是利用统计建模来识别时间序列中潜在的趋势、季节变化和序列相关性。框架
而衡量一个模型是否适合原始时间序列的标准正是考察原始值和拟合值之间的残差序列是否近似的为白噪声。机器学习
所以,首先要进行时间序列的自相关性分析,肯定训练数据是符合时间序列要求:函数
时间序列建模的过程能够总结以下:工具
若是想要对时间序列进行统计学模型分析,须要保证时间序列具备平稳性。post
在数学上,时间序列的严平稳有着更精确的定义:它要求时间序列中任意给定长度的两段子序列都知足相同的联合分布。这是一个很强的条件,在实际中几乎不可能被知足。所以还有弱平稳的定义,它要求时间序列知足均值平稳性和二阶平稳性(方差平稳性)。
检验平稳性的方法有不少种:
(1)图示法
根据时序图粗略判断是否平稳:平稳时序图的特征为围绕均值波动,而非平稳时序图表现为在不一样时间段具备不一样的均值。
便可以从两个特征进行判断:趋势(即均值随时间变化)、季节性(即方差随时间变化、自协方差随时间变化)。
如图所示,图a为平稳时序图,图b为非平稳时序图。
(2)单位根检测法
例如DF检验、ADF检验、KPSS、P-P等,具体不展开介绍。
数学上,知足以下关系的时间序列 被称为一个
阶的自回归模型,记为
模型:
阶的意思是使用当前时刻
以前的
个观测值做为自变量对
建模。模型的含义是,
能够表达为
时刻以前的
个收益率观测值的线性组合以及一个
时刻的随机偏差
。
的取值能够是任何一个正整数,所以最简单的自回归模型就是
模型(
)。
须要说明的是,自回归模型不必定都知足平稳性。
数学上,知足以下关系的时间序列 被称为一个
阶的滑动平均模型,记为
模型:
与自回归模型不一样,滑动平均模型必定知足平稳性。
ARMA模型是针对平稳时间序列创建的模型。将一个 阶的自回归模型和一个
阶的滑动平均模型组合在一块儿,将 AR 和 MA 模型的优点互补起来。因为 AR 和 MA 模型都是线性模型,所以它俩的线性组合,即 ARMA 模型,也是线性模型。
数学上,知足以下关系的时间序列 被称为一个阶数为
的自回归滑动平均模型,记为
模型:
相比较单一的 AR 或者 MA 模型,ARMA 模型拥有更多的参数,出现过拟合的危险就更高。所以,在肯定 AR、MA 以及 ARMA 模型的阶数时,常使用信息量准则,包括赤池信息量准则(简称 AIC)以及贝叶斯信息量准则(简称 BIC)。这两个信息量准则的目的都是寻找能够最好地解释数据但包含最少自由参数的模型,均使用模型的似然函数、参数个数以及观测点个数来构建一个标量函数,以此做为评价模型好坏的标准,区别在于标量函数的表达式有所不一样。
ARIMA (p,d,q)模型是针对非平稳时间序列建模,在ARMA模型的基础上多了差分项(即前文提到的平稳化处理)。其中AR是“自回归”,p为自回归项数,MA为“滑动平均”,q为滑动平均项数,d为使之成为平稳序列所作的差分次数。其中,对于p,d,q的选择是经过ACF(自相关函数,描述了时间序列数据与其以后版本的相关性)与PACF(偏自相关函数,描述了各个序列的相关性)来肯定的。
在 ARIMA 模型的基础上进行了季节性调节。不一样的是SARIMA的差分项有两个,分别是季节性差分与非季节性差分。
若是一个模型和原时间序列的残差知足白噪声,那么该模型就是合适的。所以,只须要检验残差序列是否在任何间隔 k 上呈现出统计意义上显著的自相关性。在这方面,Ljung–Box 检验是一个很好的方法,它同时检验残差序列各间隔的自相关系数是否显著的不为 0。
最后,分享大佬总结的一些内容:时间序列分析经常使用统计模型
时间序列预测类问题被抽象为回归问题,从而可使用机器学习的相关模型,不须要受到基本假设的限制,适用范围更广。
具体方法包括但不限于线性回归、支持向量机、随机森林、xgboost等。
关于机器学习/数据挖掘的全流程介绍,欢迎浏览个人另外一篇博客:数据挖掘比赛/项目全流程介绍,这里再也不赘述。
值得一提的是,机器学习在特征工程阶段,能够提取时间截面特征/统计特征/滑窗特征等,也能够借助特征提取工具(例如tsfresh等)。
具体方法包括但不限于卷积神经网络CNN、循环神经网络LSTM等,目前还有用生成对抗网络GAN等比较新的技术来实现时间序列预测。
关于循环神经网络,欢迎浏览个人另外一篇博客:深度学习中的序列模型演变及学习笔记,这里再也不赘述。
关于深度学习模型,欢迎浏览个人另外一篇博客:深度学习中的一些组件及使用技巧,这里再也不赘述。
值得一提的是,深度学习在准备数据时,须要将时序数据经过时间滑窗进行时间步的拼接,从而做为训练集的输入与标签。
综上所述,三种类型的模型各有所长和不足。通常来讲,统计类模型适合于数据量较小同时工业化需求不高的状况,机器学习类模型更普遍适合于工业化情境,而深度学习模型在大数据量的预测上更具有优点。
若是你对智能推荐感兴趣,欢迎浏览个人另外一篇随笔:智能推荐算法演变及学习笔记
若是你对广告推荐感兴趣,欢迎浏览个人另外一篇随笔:CTR预估模型演变及学习笔记
若是您对人工智能算法感兴趣,欢迎浏览个人另外一篇博客:人工智能新手入门学习路线和学习资源合集(含AI综述/python/机器学习/深度学习/tensorflow)、人工智能领域经常使用的开源框架和库(含机器学习/深度学习/强化学习/知识图谱/图神经网络)
若是你是计算机专业的应届毕业生,欢迎浏览个人另一篇博客:若是你是一个计算机领域的应届生,你如何准备求职面试?
若是你是计算机专业的本科生,欢迎浏览个人另一篇博客:若是你是一个计算机领域的本科生,你能够选择学习什么?
若是你是计算机专业的研究生,欢迎浏览个人另一篇博客:若是你是一个计算机领域的研究生,你能够选择学习什么?
若是你对金融科技感兴趣,欢迎浏览个人另外一篇博客:若是你想了解金融科技,不妨先了解金融科技有哪些可能?
以后博主将持续分享各大算法的学习思路和学习笔记:hello world: 个人博客写做思路