简单指数平滑

17 Mar 2025 | 6 分钟阅读

简单指数平滑是一种用于数据平滑和时间序列预测的基本方法。其基础思想是通过递归地更新历史观测值的加权平均值来达到平滑的目的,给予近期观测值更大的权重。该技术在去除数据中的噪声并识别潜在趋势或模式方面非常有用。

简单指数平滑的两个基本要素是平滑参数(通常用 alpha 表示)和初始平滑值(通常用 S_0 表示)。平滑参数(alpha)决定了最近观测值所占的权重,其值通常在 0 到 1 之间。较小的 alpha 会给予过去观测值更大的权重,而较大的 alpha 则更侧重于近期数据。

Simple Exponential Smoothing

其中

  • S_t 是时间 t 的平滑值
  • Y_t 是时间 t 的观测值
  • S_(t-1) 是前一时间步的平滑值。

初始平滑值(S_0)可以设置为时间序列的第一个观测值,或者计算为初始观测值的平均值。

其工作原理是通过反复更新先前数据的加权平均值来创建平滑序列。与更复杂的预测技术相比,它仅依赖于两个因素:初始平滑值和(有时用符号 ? 表示的)平滑参数。平滑参数 ? 决定了最近观测值所占的权重,其值通常在 0 到 1 之间。较小的 ? 表示对先前观测值的加权更强,而较大的 ? 则强调当前数据点的重要性。

简单指数平滑的应用

简单指数平滑主要用于数据平滑,即去除时间序列数据中的噪声以揭示潜在趋势或模式的过程。简单指数平滑为分析师提供了数据的平滑视图,以便他们能够识别重要模式并做出明智的决策。SES 也经常用于短期预测任务,因为它能提供快速且计算效率高的预测。

简单指数平滑在现实生活中的各种情况和行业中都很有用。在金融行业,它有助于预测股票价格、货币汇率和经济指标。在供应链管理中,SES 有助于需求预测和库存管理。此外,在环境研究中,简单指数平滑对于建模和预测气候因素也很有用。

代码

为了更好地理解,我们将尝试使用指数平滑来预测销售额。

导入库

读取数据集

输出

Simple Exponential Smoothing

输出

Simple Exponential Smoothing

输出


Simple Exponential Smoothing

现在我们将合并数据框以创建一个新的数据框。

输出

Simple Exponential Smoothing

输出

Simple Exponential Smoothing

现在我们需要根据日期更改索引,因为我们要进行预测,所以关系将基于特定时间段。

我们想要的是使用销售数据进行预测。应该绘制“每周销售额”列。目前,销售信息每周显示一次。一年有 52 周,一个月有 4 周。

输出

Simple Exponential Smoothing

现在我们需要提取销售数据。

输出

Simple Exponential Smoothing

输出

Simple Exponential Smoothing

输出

Simple Exponential Smoothing

输出

Simple Exponential Smoothing

分割数据集

现在我们将数据集分为训练集和测试集。

通常,测试集的大小占总样本的 20%。然而,正如你所看到的,我们在这里选择了 40%。因为我们希望预测未来一年,并且有“一年的测试”数据来与模型的准确性进行比较。

换句话说,我的测试数据与我们准备预测的持续时间相匹配。

输出

Simple Exponential Smoothing

简单指数平滑

输出

Simple Exponential Smoothing

现在我们将预测值与训练集和测试集进行绘制。

输出

Simple Exponential Smoothing

现在我们将检查模型的准确性。

输出

Simple Exponential Smoothing

输出

Simple Exponential Smoothing

我们的模型准确性,均方根误差为 1270。与实际数据的标准差 1047 相比,它相当准确,但并非完全准确。测试结果与预测值在视觉上差异很大。然而,由于趋势随时间的波动,当放大到训练数据时,这似乎是一个合理的预测。对于明年,未来趋势是可能的。数据集有轻微的季节性,但大部分是稳定的。例如,感恩节和圣诞节期间的销售额有所增长。观察到波动的季节性趋势。


下一个主题TF-IDF