首页 > 编程语言 >【机器学习(十)】时间序列案例之月销量预测分析—Holt-Winters算法—Sentosa_DSML社区版

【机器学习(十)】时间序列案例之月销量预测分析—Holt-Winters算法—Sentosa_DSML社区版

时间:2024-09-27 09:23:13浏览次数:8  
标签:01 df Holt 1971 plt Sentosa DSML 数据 col

文章目录

一、Holt-Winters算法原理

什么是Holt-Winters预测算法?
  Holt-Winters算法是一种时间序列预测方法。时间序列预测方法用于提取和分析数据和统计数据并表征结果,以便根据历史数据更准确地预测未来。Holt-Winters 预测算法允许用户平滑时间序列并使用该数据预测感兴趣的领域。指数平滑法会根据历史数据分配指数递减的权重和值,以降低较旧数据的权重值。换句话说,在预测中,较新的历史数据比较旧的结果具有更大的权重。
  Holt-Winters中使用的指数平滑方法有三种:
  单指数平滑——适用于预测没有趋势或季节性模式的数据,其中数据水平可能随时间而变化。
  双重指数平滑法——用于预测存在趋势的数据。
  三重指数平滑法——用于预测具有趋势和/或季节性的数据。
  Holt-Winters包括预测方程和三个平滑方程,分别用于处理水平 ℓ t , \ell_{t}, ℓt​, 趋势 b t b_{t} bt​ 和季节性成分 s t s t st ,对应的平滑参数分别是 α ,   β ∗ \alpha, \ \beta^{*} α, β∗ 和 γ \gamma γ 。通常用 m m m 表示季节性的周期,比如季度数据 m = 4 m=4 m=4 ,月度数据 m = 12 m=1 2 m=12 ,
  Holt-Winters方法有两种变体,主要区别在于季节性成分的处理方式:
  1. 加法模型:当季节性变化较为稳定时使用加法模型。
  2. .乘法模型:当季节性变化与数据水平成比例变化时,适用乘法模型。

(一) 加法模型

  在加法模型中,季节性成分用绝对值来表示,并在水平方程中通过减去季节性成分来对数据进行季节性调整。每年内,季节性成分的和大约为零。加法模型的分量形式为:
y ^ t + h ∣ t = ℓ t + h b t + s t + h − m ( k + 1 ) \hat{y}_{t+h | t}=\ell_{t}+h b_{t}+s_{t+h-m ( k+1 )} y^​t+h∣t​=ℓt​+hbt​+st+h−m(k+1)​
  包含三个平滑方程,其中,水平方程是一个加权平均,包含季节性调整后的观察值 ( y t − s t − m ) ( y_{t}-s_{t-m} ) (yt​−st−m​) 和非季节性预测值 ( ℓ t − 1 + b t − 1 ) ( \ell_{t-1}+b_{t-1} ) (ℓt−1​+bt−1​)
ℓ t = α ( y t − s t − m ) + ( 1 − α ) ( ℓ t − 1 + b t − 1 ) \ell_{t}=\alpha( y_{t}-s_{t-m} )+( 1-\alpha) ( \ell_{t-1}+b_{t-1} ) ℓt​=α(yt​−st−m​)+(1−α)(ℓt−1​+bt−1​)
  趋势方程与Holt的线性方法相同。
b t = β ∗ ( ℓ t − ℓ t − 1 ) + ( 1 − β ∗ ) b t − 1 b_{t}=\beta^{*} ( \ell_{t}-\ell_{t-1} )+( 1-\beta^{*} ) b_{t-1} bt​=β∗(ℓt​−ℓt−1​)+(1−β∗)bt−1​
  季节性方程通过当前的季节性指数 ( y t − ℓ t − 1 − b t − 1 ) ( y_{t}-\ell_{t-1}-b_{t-1} ) (yt​−ℓt−1​−bt−1​) 和上一年同一季节的季节性指数 s t − m s_{t-m} st−m​ 来平滑季节性成分。
s t = γ ( y t − ℓ t − 1 − b t − 1 ) + ( 1 − γ ) s t − m s_{t}=\gamma( y_{t}-\ell_{t-1}-b_{t-1} )+( 1-\gamma) s_{t-m} st​=γ(yt​−ℓt−1​−bt−1​)+(1−γ)st−m​

(二) 乘法模型

  在乘法模型中,季节性成分以相对值(百分比)表示,并通过将时间序列除以季节性成分来进行季节性调整。每年内,季节性成分的和约为 m ∘ m_{\circ} m∘​ ,乘法模型的分量形式为:
y ^ t + h ∣ t = ( ℓ t + h b t ) s t + h − m ( k + 1 ) \hat{y}_{t+h | t}=( \ell_{t}+h b_{t} ) s_{t+h-m ( k+1 )} y^​t+h∣t​=(ℓt​+hbt​)st+h−m(k+1)​
ℓ t = α y t s t − m + ( 1 − α ) ( ℓ t − 1 + b t − 1 ) \ell_{t}=\alpha{\frac{y_{t}} {s_{t-m}}}+( 1-\alpha) ( \ell_{t-1}+b_{t-1} ) ℓt​=αst−m​yt​​+(1−α)(ℓt−1​+bt−1​)
b t = β ∗ ( ℓ t − ℓ t − 1 ) + ( 1 − β ∗ ) b t − 1 b_{t}=\beta^{*} ( \ell_{t}-\ell_{t-1} )+( 1-\beta^{*} ) b_{t-1} bt​=β∗(ℓt​−ℓt−1​)+(1−β∗)bt−1​
s t = γ y t ( ℓ t − 1 + b t − 1 ) + ( 1 − γ ) s t − m s_{t}=\gamma{\frac{y_{t}} {( \ell_{t-1}+b_{t-1} )}}+( 1-\gamma) s_{t-m} st​=γ(ℓt−1​+bt−1​)yt​​+(1−γ)st−m​

(三) 阻尼趋势

  Holt-Winters 可以在加法和乘法季节性模型中引入阻尼(Damping)趋势。阻尼趋势能够使模型在预测未来趋势时更加稳健,避免趋势无限延伸,适用于那些趋势可能逐渐趋于稳定的时间序列数据,该方法结合了季节性和趋势的平滑,并通过阻尼因子

标签:01,df,Holt,1971,plt,Sentosa,DSML,数据,col
From: https://blog.csdn.net/qq_45586013/article/details/142490482

相关文章

  • 【第十六章:Sentosa_DSML社区版-机器学习之生存分析】
    【第十六章:Sentosa_DSML社区版-机器学习之生存分析】16.1加速失效时间回归1.算子介绍        加速失效时间回归模型Acceleratedfailuretime(AFT)是一个监督型参数化的回归模型,它可以处理删失数据。它描述了一个生存时间的对数模型,所以它通常被称为生存分析的对......
  • 【机器学习(九)】分类和回归任务-多层感知机 (MLP) -Sentosa_DSML社区版
    文章目录一、算法概念二、算法原理(一)感知机(二)多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数3、反向传播算法三、算法优缺点(一)优点(二)缺点四、MLP分类任务实现对比(一)数据加载和样本分区1、Python代码2、Sentosa_DSML社区版(二)模型训练1、Python代码2、Sent......
  • 【第十二章:Sentosa_DSML社区版-机器学习回归】
    【第十二章:Sentosa_DSML社区版-机器学习回归】12.1 线性回归1.算子介绍        线性回归模型(BuildLRNode)是一个非常经典有效的回归模型,它假设所有特征变量和目标变量之间存在线性关系。通过训练来求得各个特征的权重以及截距。同时可以通过L1,L2正则化来减少模型......
  • 【机器学习(三)】分类和回归任务-随机森林-Sentosa_DSML社区版
    文章目录一、算法概念二、算法原理(一)定义(二)袋外数据三、随机森林的优缺点(一)优点(二)缺点四、随机森林分类任务实现对比(一)数据加载1、Python代码2、Sentosa_DSML社区版(二)样本分区1、Python代码2、Sentosa_DSML社区版(三)模型训练1、Python代码2、Sentosa_DSML社区版(四)模......
  • Holt-Winters模型原理分析及代码实现(python)
    引言最近实验室老师让我去预测景区内代步车辆的投放量,于是乎,本着“一心一意地输出年富力强的劳动力”这份初心,我就屁颠屁颠地去找资料,然后发现了Holt-Winters模型,感......