龙空技术网

一文带您了解时间序列分析和预测(TimeSeries Analysis/Forecasts)

新语数据故事汇 217

前言:

现时你们对“大数据预测分析主要依据哪些预测原理”大致比较关怀,咱们都想要学习一些“大数据预测分析主要依据哪些预测原理”的相关内容。那么小编也在网络上搜集了一些有关“大数据预测分析主要依据哪些预测原理””的相关资讯,希望大家能喜欢,姐妹们一起来学习一下吧!

我们所有人这辈子都在预测未来,无论是买彩票还是股票,或者考试猜题押题,我们所做的每一件有目的的事情都是在预测未来,因为目的就是在未来,但是也知道预测未来是一件很难的事情,谁能够准确的预知未来的话,那么这个人也就无敌了。

从古至今人们也都在寻找预测未来的方向,一个是神学方向的,一个是科学方向的。神学方向也就是我们平时说的占卜、看手相面相星座等行为的算命。预测未来听起来就是一个很唯心的东西,科学也可以预测未来吗,答案是肯定的,而且理论上是精准预测,这个能够精准预测未来的东西它叫做拉普拉斯的恶魔或者叫拉普拉斯的妖,是一个妖怪。

这个不是神学,是通过《因果论》推导出来的,《因果论》是科学的根基,只要科学是成立的,那么过去和未来也都是确定的。理论上就存在这么一个东西,可以计算过去未来,这个能够计算过去和未来的东西,就叫做拉普拉斯的恶魔。这个恶魔也就是神学上全知全能的神。

拉普拉斯妖它可以预测未来,其原理是它如果可以知道宇宙中所有原子准确的位置、速度、运动方向、所受的力等等,总之就是它知道一切物理参数,然后它又看破宇宙一切物理性质,那么它就可以利用物理公式计算出未来所有原子的轨迹,演化出未来,这就是牛顿的机械宇宙,在机械宇宙中不存在随机的事情,一切都是设计好,安排好的。

什么是时间序列

时间是标注事件发生瞬间及持续历程的基本物理量,时间是运动着的物质的存在形式,它表示物质运动过程的持续性(时间是物质运动的存在方式)。

时间序列是指将同一统计指标的数值按其发生的时间先后顺序排列成的数列。

时间序列的类型主要包括:

(purely random error-no recognizable pattern)当时间序列呈现纯随机时,数据没有明显的可预测模式,表现为随机波动。(curvilinear trend(quadratic,exponential))二次或指数曲线趋势表示数据在不断变化,并可能呈现出弯曲或指数式的趋势,而不仅仅是线性增长。(increasing linear trend)线性增长趋势表明时间序列的数据随着时间的推移呈现出持续线性增加或减少的趋势。(seasonal pattern )季节模式表现为时间序列在特定时间周期内出现重复的模式,通常受季节性因素的影响,如季节销售波动。(seasonal pattern plus linear growth)季节模式与线性增长的组合表示数据不仅具有季节性模式,还伴随着持续的线性增长或减少,这可能反映了季节性因素和趋势的共同影响。什么是时间序列分析/预测

时间序列分析(Time-Series Analysis)是指将历史的远动行为/观察者(比如:销售)分解为四部分来分析--趋势、周期、规律和不稳定因素。我们以下图为例可以分析出如下特征:

趋势:比较平稳,整体波动不大周期:“周”周期特征明显规律:周末及节假日影响大,例如19/06/01,儿童节与周末的趋势叠加,春节:阴历特征不稳定因素(结构性中断):引擎、突发因素、促销、社会活动(体育赛事、演唱会…)、市政活动

时间序列预测是使用统计和机器学习算法来提供准确的时间序列预测。待预测变量称为观察值(目标变量),时间序列预测是指基于历史数据来预测未来的观察值。时间序列预测在零售、金融、物流和医疗保健等多个领域广泛应用。

不是所有时间序列数据都是可以预测的,比如:股票波动走势是典型的时间序列,但是它随机的,是无法预测的。时间序列可定量预测的前提:

分析影响时间序列观测值的影响因素,有无规律性等有可以利用的历史数据预测不会试图影响预测的结果(拉普拉斯悖论)历史的模型可以在未来延续下去

声称可以预测股票的走势的,不是骗子就是疯子。

时间序列预测的标准范式:

时间序列预测的评估

时间序列预测中存在一种挑战,即难以进行传统的交叉验证,因为在时间序列数据中使用交叉验证可能会导致数据泄漏问题。解决这个问题的方法是采用回测(back test)的方式进行测试。回测是一种模拟历史情况,以验证时间序列模型的性能和可行性的方法。在回测中,模型被应用于过去的数据,然后通过观察模型在历史上的表现来评估其在未来的预测能力。这种方法有助于更好地了解模型的实际性能,同时避免了数据泄漏的问题,因为模型只能使用过去的信息来进行预测,而不会获取未来数据。

时间序列预测的挑战

预测是探索未来的科学,而预测结果的准确性至关重要。然而,实现高精度预测面临一些挑战:

传统的预测方法难以有效整合大量的历史数据,容易在数据噪音中错过重要信号。这意味着在过去的数据中埋藏着宝贵的信息,需要被充分挖掘。传统的预测通常不包括相关但独立的数据,这些数据可以提供重要的背景信息,如销售数据、假期信息、地理位置和营销促销等。缺乏完整的历史数据和更广泛的上下文背景,很多预测都难以准确地捕捉未来的趋势和变化。另一个挑战是时间序列数据中的结构性中断,这些是指特定时间点的观测值突然发生的变化。这种结构性中断会导致模型参数不稳定,从而降低了模型的可靠性和有效性。因此,在预测过程中必须考虑如何处理这种不稳定性。时间序列预测算法

为了应对不同的时间序列挑战,出现了多种算法和方法。这些方法可以大致分为三类:传统算法、机器学习算法和深度学习算法。让我们深入了解每一种算法的工作原理和应用领域。

传统的统计算法:

ARIMA(AutoRegressive Integrated Moving Average):ARIMA是一种经典的时间序列预测方法,它结合了自回归(AR)和移动平均(MA)的概念,还包括差分(I)操作以处理非平稳性数据。ARIMA适用于相对简单的时间序列模型,适用于许多商业和经济应用。ETS(Error-Trend-Seasonality):ETS是另一种传统时间序列模型,它将时间序列分解为误差项、趋势和季节性成分。这个方法适用于包含明显趋势和季节性模式的数据。NPTS(Nonparametric Time Series):NPTS是一类非参数的时间序列模型,它不依赖于特定的函数形式或参数,而是尝试从数据中挖掘出模式。这种方法可以应用于更复杂和不规则的时间序列数据。

机器学习算法:

Prophet:Prophet是由Facebook开发的开源时间序列预测工具,它使用可扩展的季节性模型和趋势分解方法,适用于处理具有季节性和趋势的数据。Prophet的设计目标是简化时间序列预测的任务,使其适用于不需要深度专业知识的用户。Featurization+ML:这是一种通用方法,其中时间序列数据首先通过特征工程转换为机器学习问题。然后,各种机器学习算法,如决策树、随机森林或支持向量机等,可以用来建模和预测时间序列数据。

深度学习算法:

CNN-QR(Convolutional Neural Networks for Quantile Regression):CNN-QR是一种基于卷积神经网络的算法,用于时间序列分位数回归。它能够有效地处理不同分位数的预测需求,使其在风险管理和不确定性建模等领域具有广泛应用。DeepAR+:DeepAR+是Amazon SageMaker中的一个深度学习时间序列模型,它基于循环神经网络(RNN)结构,具有强大的建模能力,能够捕捉长期和短期依赖关系。DeepAR+在具有复杂时间序列结构的问题中表现出色,如销售预测和天气预测。

借鉴AWS Forecast一张图参考不同算法的能力范围:

传统时间序列算法

AR:AutoRegression,自回归,AR可以解释为当前数据与前p期数据之间的关系。

MA:MovingAverage,移动平均模型,当前时刻的序列值是过去q阶白噪声的线性组合。

ARMA:Auto Regression and Moving Average,自回归移动平均模型,是自回归(AR)和移动平均模型(MA)两部分组成。

ARIMA:Auto Regression IntegreateMoving Average,差分自回归移动平均模型

机器学习的方式进行时间序列预测

时间序列从概率的角度上是随机过程在时间方向上的一次采样(因为时间不能重来,这个采样只能随着时间往后,而无法在空间上重复)。时间序列的建模就是期望通过历史时间上的数据来学习模型,然后对未来进行预测。

机器学习是如何学习的?从概率的角度上看,有监督的学习的训练样本就是P(y|x)在空间方向上的采样。这个采样可以不断重复,但没有先后时间的概念。机器学习的建模就是期望通过这样的采样数据来学习模型,然后对后面样本进行预测。

对于Arima,Arimax这样的传统时间序列模型,它们和机器学习的建模有很大的相似性。

机器学习中的建模一般需要假设样本独立同部分,依托大数定律 拟合出参数.时间序列中的建模一般需要假设样本平稳遍历性,依托遍历定理拟合出参数。

机器学习的方式进行时间序列预测本质上将时间维度转换为空间维度上进行建模和预测,参考下图:

•Prophet

Prophet是一种由Facebook开发的开源时间序列预测工具,专门用于处理具有季节性和趋势性的时间序列数据。它设计的初衷是让时间序列预测变得更加容易,尤其是适用于那些不具备深度统计或机器学习专业知识的用户。Prophet的主要特点包括以下几点:

灵活性: Prophet允许用户在模型中添加自定义的节假日效应,以更好地捕捉特定日期对时间序列的影响。季节性模型: 该工具内置了强大的季节性模型,能够自动检测和建模数据中的季节性和趋势,使得预测更加准确。可解释性: Prophet提供了丰富的可视化工具,使用户能够直观地理解模型如何对时间序列数据进行拟合。容错性: 它能够处理缺失数据和异常值,使得在实际应用中更具鲁棒性。

详细参考地址:

深度机器学习方式进行时间序列预测"DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks" 是一篇由亚马逊(Amazon)的研究人员撰写的重要论文,它介绍了一种用于时间序列预测的深度学习模型,名为DeepAR。参考地址:CNN-QR,即卷积神经网络 - 分位数回归(Convolutional Neural Network - Quantile Regression),是一种专有的机器学习算法,用于使用因果卷积神经网络(CNNs)预测标量(一维)时间序列。这个监督学习算法从大量时间序列中训练一个全局模型,并使用分位数解码器进行概率性预测。参考地址:

时间序列分析和预测是人们长期以来探索的科学领域,涵盖了神学和科学两大方向。科学方法通过因果推导,如拉普拉斯的恶魔,可以理论上精确地预测未来,但需要知晓宇宙中一切物理参数。时间序列分析是通过分解趋势、周期、规律和不稳定因素,从历史数据中挖掘模式,用于各个领域的预测。不同类型的时间序列和挑战需要不同的算法,包括传统统计算法(如ARIMA)、机器学习(如Prophet)、深度学习(如DeepAR)。在预测中,准确性至关重要,但挑战包括数据噪音、缺乏背景信息和结构性中断。时间序列预测旨在帮助我们更好地理解未来,尽管预测未来依然是一项具有挑战性的任务。

标签: #大数据预测分析主要依据哪些预测原理