机器学习和深度学习方法可以在具有挑战性的时间序列预测问题上取得不俗的表现。然而,在许多预测问题中,经典的方法,如SARIMA指数平滑法(exponential smoothing ),容易优于更复杂的方法。因此,在探索更先进的方法之前,既要了解经典时间序列预测方法的工作原理,又要对其进行评估。本文介绍了时间序列预测的原始和经典方法。


【时间序列预测/分类】 全系列60篇由浅入深的博文汇总:传送门


1. 简单预测方法

在任何时间序列预测问题上,建立 基准(baseline) 都是必不可少的。性能基准可以了解所有其他模型在相同问题上的实际执行情况。

1.1 预测性能基准(Forecast Performance Baseline)

预测性能的基准提供了一个比较点。这是对同一个问题的所有其他建模技术的一个参考点。如果一个模型达到或低于基准的性能,那么应该调整或放弃该技术。用于生成预测以计算基准性能的技术必须易于实现,并且对特定于问题的细节必须很简单。目标是尽快获得时间序列预测问题的基准性能,以便能够更好地理解数据集并开发更高级的模型。做一个简单预测的好方法有三个特点:

  • 简单:一种不需要训练或智能的方法。
  • 快速:一种实现速度快、预测计算量小的方法。
  • 可重复:一种确定的方法,意味着它在给定相同输入的情况下产生预期的输出。

1.2 预测策略(Forecasting Strategy)

简单的预测策略是那些对预测问题的性质几乎不作假设或完全不作假设,并且能够快速实现和计算的策略。如果一个模型能比一个简单的预测策略表现得更好,那么可以说它很有技巧。简单的预测策略有两大主题:

  • 朴素的,或者直接使用观测值。
  • 平均,或者使用以前的观测统计计算。

1.3 朴素预测策略(Naive Forecasting Strategy)

朴素预测涉及直接使用之前的观测结果作为预测,而不做任何更改。它通常被称为持久性预测,因为先前的观察是持久性的。对于季节性数据,这种简单的方法可以稍作调整。在这种情况下,可以将上一个周期中同时进行的观察结果保留下来。这可以进一步推广到测试历史数据中的每个可能的偏移量,这些历史数据可用于保存预测值。例如,给定序列:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

我们可以将最后一个观察值(相对指数-1)保持为9,或者将第二个最后一个先前观察值(相对指数-2)保持为8,依此类推。

1.4 平均预测策略(Average Forecast Strategy)

在朴素预测之上的一步是对先验值求平均值的策略。所有先前的观测数据都被收集并取平均值,使用平均值或中位数,没有对数据进行其他处理。在某些情况下,我们可能希望将平均计算中使用的之前的时间步的值缩短到最后几个观察值。我们可以将此推广到测试平均计算中包含的每个可能的n个先验观测集的情况。例如,给定系列:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

我们可以平均最后一个观测值(9),最后两个观测值(8、9),依此类推。对于季节性数据,我们可能希望对周期中与预测时间相同的最后n次在先观测值求平均。例如,假设该系列具有3个步骤的周期:

[1, 2, 3, 1, 2, 3, 1, 2, 3]

我们可以使用3的窗口大小,取最后一个观测值(-3或1),最后两个观测值(-3或1和-(3×2)或1)的平均值,依此类推。


2. 自回归方法(Autoregressive Methods)

自回归综合移动平均(ARIMA) 是应用最广泛的单变量时间序列预测方法之一。尽管该方法可以处理具有趋势的数据,但它不支持具有季节性成分的时间序列。对ARIMA的一个扩展称为季节自回归综合移动平均(SARIMA),它支持对序列的季节性成分进行直接建模

2.1 ARIMA

**自回归综合移动平均模型(Autoregressive Integrated Moving Average Model)**是分析和预测时间序列数据的一类统计模型。它显式地满足了时间序列数据中的一组标准结构,因此提供了一种简单而强大的方法来进行熟练的时间序列预测。ARIMA是自回归综合移动平均的缩写。它是简单自回归滑动平均(ARMA)的推广,增加了差分的概念。这个缩略词的含义为:

  • AR:自回归。一种模型,它使用观测值和一些滞后观测值之间的依赖关系。
  • I: 差分。利用原始观测值的差分(例如从上一时间步的观测值中减去一个观测值)使时间序列平稳。
  • MA:移动平均。一种模型,它利用观测值与应用于滞后观测值的移动平均模型的残差之间的相关性。

这些组件中的每一个都在模型中作为参数显式指定。ARIMA(p,d,q)使用标准表示法,其中参数用整数值替换,以快速指示所使用的特定ARIMA模型。ARIMA的一个问题是它不支持季节性数据。这是一个具有重复周期的时间序列。ARIMA期望的数据不是季节性的,即季节性成分被去除,可以通过季节差异等方法进行季节性调整。

建立了一个包含特定项数和项数类型的线性回归模型,并通过一定程度的差分来准备数据,以使其平稳,即消除对回归模型有负面影响的趋势和季节结构。值0可用于参数,该参数指示不使用模型的该元素。这样,ARIMA模型可以配置为执行ARMA模型的功能,甚至可以配置为简单的AR、I或MA模型。对时间序列采用ARIMA模型假定产生观测的基本过程是ARIMA过程。这似乎很明显,但有助于激发在原始观测和模型预测的残差中确认模型假设的需要。

2.2 什么是季节性ARIMA

季节自回归综合移动平均(SARIMA)是ARIMA的扩展,它明确支持具有季节性成分的单变量时间序列数据。它添加了三个新的超参数来指定序列季节性分量的自回归(AR)、差分(I)和移动平均(MA),以及季节性时段的附加参数。

2.3 如何配置SARIMA

配置SARIMA需要为序列的趋势和季节要素选择超参数。

有三种趋势要素需要配置。它们与ARIMA模型相同;具体来说:

  • p: 自回归项数;
  • d: 使之成为平稳序列所做的差分次数(阶数);
  • q: 滑动平均项数;

季节性要素有四个季节性要素,但不是必须配置的ARIMA的一部分;P,D,Q遵循相同的定义,但适用于时间序列的季节分量。

  • m(有的资料用s表示):时间序列的周期(季度为4 ,年度为12 ,等等)

SARIMA模型的数学表达式为:
SARIMA(p,d,q)(P,D,Q)mSARIMA(p,d,q)(P,D,Q)mSARIMA(p,d,q)(P,D,Q)m
其中指定了模型的特定超参数。重要的是,m参数影响P、D和Q参数。例如,月数据的m为12表示每年的季节性周期。AP=1A P=1AP=1 将利用模型中的第一个季节性偏移观测值,例如 t−(m×1)t-(m×1)t−(m×1) 或 t−12t-12t−12。AP=2A P=2AP=2,将使用最后两个季节性偏移观测值 t−(m×1),t−(m×2)t-(m×1),t-(m×2)t−(m×1),t−(m×2)。类似地,D为1将计算一阶季节性差异,Q=1Q=1Q=1 将使用模型中的一阶误差(例如移动平均)。

可以通过仔细分析ACF(自相关函数(决定q值))和PACF图(偏自相关函数(决定p值))来选择趋势元素,查看最近时间步(例如1、2、3)的相关性。类似地,可以分析ACF和PACF图,通过查看季节滞后时间步骤的相关性来指定季节模型的值。


3. 指数平滑法(Exponential Smoothing Methods)

指数平滑是一种单变量数据的时间序列预测方法,它可以扩展到支持具有系统趋势或季节性成分的数据。它可以作为流行的Box-Jenkins-ARIMA方法家族的替代方法。

3.1 什么是指数平滑?

指数平滑是一种单变量数据的时间序列预测方法。时间序列方法,如Box-Jenkins-ARIMA方法家族,发展了一个模型,其中预测是最近观测或滞后的加权线性和。指数平滑预测方法类似于预测是过去观测值的加权和,但是模型显式地对过去观测值使用指数递减的权重。具体来说,过去的观测值是以几何递减的比率加权的。

使用指数平滑方法生成的预测是过去观测值的加权平均值,随着观测值的增长,权重呈指数衰减。换句话说,观察越近,相关的权重就越高。

指数平滑方法可以被视为同级方法,也可以替代流行的Box-Jenkins-ARIMA时间序列预测方法。总的来说,这些方法有时被称为ETS模型,指的是误差、趋势和季节性的显式建模。指数平滑时间序列预测方法主要有三种。一种假定没有系统结构的简单方法,一种显式处理趋势的扩展,以及添加季节性支持的最高级方法。

3.2 单指数平滑

单指数平滑,简称SES,又称简单指数平滑,是一种无趋势性或季节性的单变量数据时间序列预测方法。它需要一个称为 α\alphaα 的参数,也称为平滑因子或平滑系数。此参数控制在先前时间步的观测值的影响指数衰减的速率。 α\alphaα 通常设置为介于0和1之间的值。大的值意味着模型主要关注最近的过去观测,而小的值意味着在进行预测时更多地考虑历史。

接近1的值表示快速学习(即,只有最近的值影响预测),而接近0的值表示缓慢学习(过去的观察对预测有很大影响)。

超参数:

  • α\alphaα:平滑因子的水平。

3.3双指数平滑

双指数平滑是对指数平滑的扩展,它添加了对单变量时间序列趋势的支持。除了用于控制该水平的平滑因子的 α\alphaα 参数外,还添加了一个附加的平滑因子以控制趋势变化影响的衰减,称为 β\betaβ。该方法支持以不同方式变化的趋势:加法和乘法,分别取决于趋势是线性的还是指数的。具有加性趋势的双指数平滑通常被称为 霍尔特线性趋势模型(Holt’s linear trend model),以方法发明者Charles Holt的名字命名。

  • 加性趋势:具有线性趋势的双指数平滑。
  • 乘性趋势:具有指数趋势的双指数平滑。

对于更长的范围(多步)预测,趋势可能会继续不切实际。这样,随着时间的流逝抑制趋势可能是有用的。阻尼是指在将来的时间内减小趋势的大小,然后逐渐减小到一条直线(无趋势)。

与趋势本身的建模一样,可以使用相同的原则来抑制趋势,特别是对线性或指数抑制效果的相加或相乘。一个阻尼系数φ(p或φ)是用来控制抑制率。

  • 加法抑制:线性地抑制趋势。
  • 乘法抑制:抑制这种趋势指数。

超参数:

  • α\alphaα :平滑因子的水平;
  • β\betaβ:平滑因子的趋势;
  • 趋势类型:加法或乘法;
  • 抑制类型:加法或乘法;
  • ϕ\phiϕ:阻尼系数;

3.4 三重指数平滑

三重指数平滑是指数平滑的扩展,它显式地为单变量时间序列增加了对季节性的支持。这种方法有时被称为 Holt-Winters 指数平滑法,以该方法的两个贡献者 Charles HoltPeter Winters 的名字命名。除了 α\alphaα 和 β\betaβ 平滑因子,还添加一个新的参数γ\gammaγ 来控制影响季节性的组件。与趋势一样,季节性可以建模为季节性的线性或指数变化的加法或乘法过程。

  • 加法季节性:具有线性季节性的三重指数平滑。
  • 乘法季节性:三重指数季节性指数平滑法。

三重指数平滑是指数平滑最先进的变体,通过配置,还可以建立双指数平滑模型和单指数平滑模型。

作为一种自适应的方法,Holt-Winter指数平滑法允许水平、趋势和季节性(level,trend,seasonality)模式随时间变化。

此外,为了确保正确地建模季节性,必须指定季节性期间(期间)的时间步长。例如,如果该系列是月度数据,而季节周期每年重复,那么周期=12。

超参数:

  • Alpha( α\alphaα):平滑因子的水平。
  • Beta(β\betaβ ):平滑因子的趋势。
  • Trend Type:加法或乘法。
  • Dampen Type:加法或乘法。
  • Phi(ϕ\phiϕ):阻尼系数。
  • Gamma(γ\gammaγ):季节性平滑因子。
  • Seasonality Type:加法或乘法。
  • Period:在季节性时期的时间步骤。

3.5 如何配置指数平滑?

可以显式地指定所有模型超参数。这对专家和初学者来说都是一个挑战。相反,通常使用数值优化来搜索并为模型的平滑系数(alpha、beta、gamma和phi)提供支持,从而获得最小的误差。

对于指数平滑法中包含的未知参数,从观测数据中进行估计是一种更稳健、更客观的求取值的方法。[…任何指数平滑方法的未知参数和初始值都可以通过最小化SSE(误差平方和)来估计。

指定趋势和季节性变化类型的参数,例如它们是相加的还是相乘的,以及它们是否应该被抑制,都必须明确指定。

参考:
https://blog.csdn.net/qifeidemumu/article/details/88782550
https://baike.baidu.com/item/ARIMA模型/10611682?fr=aladdin
https://machinelearningmastery.com/findings-comparing-classical-and-machine-learning-methods-for-time-series-forecasting/

时间序列预测02:经典方法综述 自回归ARIMA/SRIMA 指数平滑法等相关推荐

  1. R语言时间序列(time series)分析实战:简单指数平滑法预测

    R语言时间序列(time series)分析实战:简单指数平滑法预测 目录

  2. starima与arima 预测_38-一些预测模型与方法简介(ARIMA、指数平滑等)

    前言: 先以一个例子,介绍一下预测模型的三种分类: 例如,假设我们想要预测炎热地区夏季时每小时用电需求量.[解释模型].可以用如下包含预测变量的模型:解释模型,包含了有关其他变量的信息,而不仅仅是要预 ...

  3. 时间序列预测方法的使用(简单、加权时序,简单加权移动,一次二次三次指数平滑法)

    先简要介绍 1. 简单序时平均数法 也称算术平均法.即把若干历史时期的统计数值作为观察值,求出算术平均数作为下期预测值.这种方法基于下列假设:"过去这样,今后也将这样",把近期和远 ...

  4. python时间序列指数平滑预测_时间序列分析预测实战之指数平滑法

    一.什么是时间序列分析? 在工作中,常常要对数据进行预测,确定业务未来的发展趋势,进而配置相关的营销策略.制定业务目标,由此引申出了一个重要的用数据预测未来的方法--时间序列分析,今天和大家分享就是实 ...

  5. java三次指数平滑_时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)

    所有移动平均法都存在很多问题. 它们都太难计算了.每个点的计算都让你绞尽脑汁.而且也不能通过之前的计算结果推算出加权移动平均值. 移动平均值永远不可能应用于现有的数据集边缘的数据,因为它们的窗口宽度是 ...

  6. 时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)——三次指数平滑算法可以很好的保存时间序列数据的趋势和季节性信息...

    from:http://www.cnblogs.com/kemaswill/archive/2013/04/01/2993583.html 在时间序列中,我们需要基于该时间序列当前已有的数据来预测其在 ...

  7. 时序预测方法——指数平滑法(Holt-Winters)

    一.时间序列: 时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列. 举个比较简单的例子,一个人如果一年每天都量体重,这个每天记录的体重信息就是一个时间序列. 二.时 ...

  8. 有手就行的移动平均法、指数平滑法的Excel操作,用来时间序列预测

    数学建模比赛中的预测方法 前言 移动平均法 指数平滑 前言 大家好! φ(* ̄0 ̄) 2022年的比赛将在九月份进行,通常每个学校都会六月或七月给本校的学生发通知,并把那些对这个比赛感兴趣的同学进行培 ...

  9. Python 时间序列建模:用指数平滑法预测股价走势

    指数平滑方法适用于非平稳数据(即具有趋势和/或季节性的数据),其工作方式类似于指数移动平均线.预测是过去观察的加权平均值.这些模型更加强调最近的观察结果,因为权重随时间呈指数级变小.平滑方法很受欢迎, ...

最新文章

  1. java编写数字金字塔_用JAVA写数字金字塔
  2. HDOJ 1905 Pseudoprime numbers(模运算)
  3. C#中的参数传递(转)
  4. 分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月6日-5月12日)
  5. C语言实现ifconfig获取网卡接收和发送流量统计
  6. 配置React项目的运行环境
  7. php异步处理,执行系统命令
  8. 10+ 最佳的 Node.js 教程和实例
  9. OPC数据访问方法简介
  10. python中match函数的用法_浅谈Python中re.match()和re.search()的使用及区别
  11. 服务器监控系统应有哪些功能,公安视频监控系统需要具备哪些功能
  12. 【32】FPGA和ASIC:计算机体系结构的黄金时代
  13. 使用Amazon SageMaker RL 和Unity训练强化学习智能体
  14. 【Android】lint检查
  15. ajax 等待,等待所有的ajax请求都完成
  16. 怎样在matlab q-q图上读出斜率,Matlab的常见问题
  17. 我提莫谢谢你!给我100块羞辱离职,原来是激励我“卧薪尝胆”!
  18. PS入门:人物添加红晕和黄昏变早上
  19. 计算机毕业设计Java智能家电商城(系统+源码+mysql数据库+lw文档)
  20. 使用c语言求一元二次方程的根

热门文章

  1. 金大侠眼光果然犀利:《笑傲江湖》只值一块钱
  2. 智慧煤矿理论篇2-煤矿5G与WiFi6
  3. 【实战】如何有效的进行测试用例评审(测试用例评审又臭又长,怎么办)
  4. 鸿蒙测试机型微博,华为多款机型开启鸿蒙尝鲜:微博已适配小尾巴
  5. 试用期六个月,前三个月没有社保,这样的工作机会你会考虑吗?
  6. 【小程序】提交成功和失败界面示例(图文+代码)
  7. java圆柱面积体积 scanner
  8. 全球顶级白帽子:美女、通缉犯、公务员
  9. Python3.5 Django1.10 Scrapy1.2 Ubuntu16.04 HTML5
  10. Excel-VB学习