时间序列预测的7种方法
2021-10-5
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
notion image
 
朴素方法:简单地将最近一个观测值作为下一期的预测值来做预测
notion image
在这种预测技术中,新数据点的值被预测为等于前一个数据点。结果是一条平直的线,因为所有新的值都取前面的值。
notion image
 
 
简单平均值:用历史全部观测值的均值作为下一期的预测值来做预测
notion image
下一个值作为所有先前值的平均值。这里的预测优于“朴素方法”,因为它不会导致一条直线,但在这里,所有过去的值都被考虑在内,这可能并不总是有用的。例如,当被要求预测今天的温度时,你会考虑过去7天的温度,而不是一个月前的温度。
notion image
 
 
 
 
 
移动平均值:用近期固定期数的历史观测值的均值作为下一期的预测值来做预测
notion image
这是对先前技术的改进。不是取所有先前点的平均值,取先前点的平均值作为预测值。
notion image
 
移动平均法的进步是加权移动平均法,“滑动窗口期”内的值被赋予不同的权重,通常来讲,最近时间点的值发挥的作用更大了
这种方法并非选择一个窗口期的值,而是需要一列权重值(相加后为1)。例如,如果选择[0.40, 0.25, 0.20, 0.15]作为权值,我们会为最近的4个时间点分别赋给40%,25%,20%和15%的权重
notion image
 
 
简单指数平滑:
我们注意到简单平均法和加权移动平均法在选取时间点的思路上存在较大的差异。我们就需要在这两种方法之间取一个折中的方法,在将所有数据考虑在内的同时也能给数据赋予不同非权重。例如,相比更早时期内的观测值,它会给近期的观测值赋予更大的权重。按照这种原则工作的方法就叫做简单指数平滑法。它通过加权平均值计算出预测值,其中权重随着观测值从早期到晚期的变化呈指数级下降,最小的权重和最早的观测值相关:
其中 是平滑参数。
对时间点 的单步预测值是时序所有观测值的加权平均数。权重下降的速率由参数α控制,预测值是时间点T的单步预测值与 的和。因而写作
所以本质上,是用两个权重得到一个加权移动平均值。我们可以看到 和1−α相乘,让表达式呈递进形式,这也是该方法被称为“指数”的原因。时间 处的预测值为最近观测值和最近预测值之间的加权平均值。
notion image
在这种技术中,与来自远古的观测相比,更大的权重被分配给最近的观测。
 
notion image
 
 
 
 
霍尔特的线性趋势模型:
该方法考虑了数据集的趋势。从趋势来看,我们指的是级数的递增或递减性质。假设旅馆的预订数量每年都在增加,那么我们可以说预订数量呈现出增加的趋势。该方法的预测功能是水平和趋势的函数。
上面的方法并没有考虑这种趋势,即我们在一段时间内观察到的价格的总体模式。在上图例子中,我们可以看到物品的价格呈上涨趋势。虽然上面这些方法都可以应用于这种趋势,但我们仍需要一种方法可以在无需假设的情况下,准确预测出价格趋势。这种考虑到数据集变化趋势的方法就叫做霍尔特线性趋势法。
每个时序数据集可以分解为相应的几个部分:趋势(Trend),季节性(Seasonal)和残差(Residual)。任何呈现某种趋势的数据集都可以用霍尔特线性趋势法用于预测。
notion image
 
notion image
从图中可以看出,该数据集呈上升趋势。因此可以用霍尔特线性趋势法预测未来价格。该算法包含三个方程:一个水平方程,一个趋势方程,一个方程将二者相加以得到预测值
Forecast eq: Level eq: Trend eq:
我们在上面算法中预测的值称为水平(level)。正如简单指数平滑一样,这里的水平方程显示它是观测值和样本内单步预测值的加权平均数,趋势方程显示它是根据 和之前的预测趋势在时间处的预测趋势的加权平均值。
将这两个方程相加,得出一个预测函数。我们也可以将两者相乘而不是相加得到一个乘法预测方程。当趋势呈线性增加和下降时,我们用相加得到的方程;当趋势呈指数级增加或下降时,我们用相乘得到的方程。实践操作显示,用相乘得到的方程,预测结果会更稳定,但用相加得到的方程,更容易理解。
notion image
 
 
 
霍尔特-温特斯方法:
notion image
假如有家酒店坐落在半山腰上,夏季的时候生意很好,顾客很多,但每年其余时间顾客很少。因此,每年夏季的收入会远高于其它季节,而且每年都是这样,那么这种重复现象叫做“季节性”(Seasonality)。如果数据集在一定时间段内的固定区间内呈现相似的模式,那么该数据集就具有季节性。
notion image
我们之前讨论的5种模型在预测时并没有考虑到数据集的季节性,因此我们需要一种能考虑这种因素的方法。应用到这种情况下的算法就叫做Holt-Winters季节性预测模型,它是一种三次指数平滑预测,其背后的理念就是除了水平和趋势外,还将指数平滑应用到季节分量上。
由于季节性因素,使用Holt的冬季方法将是其余模型中的最佳选择。霍尔特-温特斯季节性方法包括预测方程和三个平滑方程
其中 s 为季节循环的长度,0≤α≤ 1, 0 ≤β≤ 1 , 0≤γ≤ 1。水平函数为季节性调整的观测值和时间点t处非季节预测之间的加权平均值。趋势函数和霍尔特线性方法中的含义相同。季节函数为当前季节指数和去年同一季节的季节性指数之间的加权平均值。
在本算法,我们同样可以用相加和相乘的方法。当季节性变化大致相同时,优先选择相加方法,而当季节变化的幅度与各时间段的水平成正比时,优先选择相乘的方法。
notion image
 

ARIMA

另一个场景的时序模型是自回归移动平均模型(ARIMA)。指数平滑模型都是基于数据中的趋势和季节性的描述,而自回归移动平均模型的目标是描述数据中彼此之间的关系。ARIMA的一个优化版就是季节性ARIMA。它像Holt-Winters季节性预测模型一样,也把数据集的季节性考虑在内。
notion image
 
  • Statsmodels
  • 时序分解统计时序
    目录