5.1 用Excel预测

您所在的位置:网站首页 excel里面的序列在哪 5.1 用Excel预测

5.1 用Excel预测

2024-07-13 12:43| 来源: 网络整理| 查看: 265

在入门教程中,我们已经介绍了有关预测方面的知识。比如我们可以使用回归做因果分析,或者采用时间序列做预测,这完全依赖于统计数据和模型的设定。此外还有定性判断。笼统地区分,我们可以把定量的预测方法分为因果分析,统计分析两类。本章我们就从这两类分别介绍在Excel中使用的一些相关方法。

第一节 时间序列

在入门教程中我们介绍的时间序列方法是ARIMA模型。在原生Excel中我们无法实现该模型。我们介绍的是另外几类,除了这些方法可以在Excel中实践操作外,它们的效果也非常好,非常适合日常商业分析使用。它们是移动平均,指数平滑和霍尔特模型。

移动平均

移动平均的概念十分直观。我们用当前时刻t之前的n个时刻$(t_{n-1}, t_{n-2}, ……)$的值的算术均值,作为当前时刻t的预测值。如果我们用$F_{t}$表示t时刻的预测值,用Dt表示t时刻的真实值,用公式表示就是:$Ft = (D_{t-1} + D_{t-2} + …… + D_{t-n}) / n$。该方法十分适合中短期的预测,什么是中短期呢?这里有2层含义。一是指我们预测的外推区间,不宜过长。移动平均可以直接预测到外推某个时间点的数值。二是指这种方法适合预测诸如天,周,月这样的时间段指标,像年,10年这种长周期预测就不是很适合了。这是因为移动平均的假设是影响指标变化的因素在接下来的时间段里依然有效。过长的时间段使得该假设不一定成立。使用的场景和具体的原理公式我们掌握了,下面我们用之前维度分析使用的数据演示怎样在Excel中做移动平均。

我们的部分原始数据集和有关指标的趋势图如下所示。

图5-1 时间序列样本示例

图5-1 时间序列样本示例

图5-1 时间序列样本的折线图

图5-1 时间序列样本的折线图

该数据集的原始样本截止到3-9号。我们现在用移动平均法预测3-10号的销售金额,订单量。

移动平均算法里隐含了一个参数,就是选择当前时刻之前多少时段?也就是选择n是多少。确定该参数,需要使用称之为网格搜索的办法,也就是我们假设有选择n=1,2,3,……,然后使用误差度量,我们选择误差最小的n即可。关于误差,我们在入门教程中介绍过,比如常用的有均方差(MSE),均方根(RMSE),此外还有绝对离差(MAD),平均绝对百分误差(MAPE)等指标。这里我们可以选择均方根差(RMSE),因为和原始数据同一数量级可以方便我们估计预测范围。由于移动平均法相对直观,为了使读者深入了解掌握这一方法,我们先完全手工操作整个计算过程。正式操作移动平均法需要2步,这里我们以预测销售金额为例,具体步骤详述如下。原始数据集中我们将以3-8号的真实值作为预测的比较值(因为3-9号数据不完整)。

第1步,准备数据集,并设计多个移动平均窗口,也就是n值。具体如下所示。

图5-2 对销售金额样本做移动平均

图5-2 对销售金额样本做移动平均

图5-2 对销售金额样本做移动平均的公式

图5-2 对销售金额样本做移动平均的公式

我们使用average()公式,手工地计算当天的预测值,该预测值来自当天之前n天的算术平均值。比较不同平滑窗口n在3-8号的预测值。结果如下。

图5-3 预测值与真实值做比较

图5-3 预测值与真实值做比较

第2步,计算不同n值的误差指标。这里我们选择均方根差。当然也可以多选择几种误差指标,以评估这些误差指标反映的结果是否一致。

均方根差(RMSE)的计算方法和标准差很相似。我们把每天预测值-真实值的差值的平方累加起来,除以预测的天数,再开平方根即可。用公式表示就是,$RMSE = \sqrt{(F_{t} - D_{t})^2)} / T$,式中,T表示了时间序列一共有多少天的值。比如在平滑窗口n=2时,我们预测了65天的值,则这里T=65。n=3时,T=64。以此类推。我们这里直接给出计算的结果,同时我们顺带一并计算了MAD和MAPE的误差度量。显示如下。

图5-4 网格搜索法确定移动平均窗口值1

图5-4 网格搜索法确定移动平均窗口值1

图5-4 网格搜索法确定移动平均窗口值2

图5-4 网格搜索法确定移动平均窗口值2

我们可以观察到,当平滑窗口n=6时,误差最小。所以我们将选择n=6作为移动平均算法的参数,并以它的结果作为预测值。这个结果给我们分析反馈的信息就是,对下一时刻的预测,要依赖于该时刻之前的6个时刻点的信息,这个“平滑窗口”宽度反映了该预测更多地在捕捉时间序列中有关于趋势的信息,而不太偏向捕捉即刻的变化。对于预测的结果,我们如果想要估计一个置信区间,可以选择t分布。这需要首先计算出预测值和真实值之间的误差,一般我们称其为残差(Residual)。下面我们演示下当n=6时的残差以及该预测的95%置信区间。

图5-5 移动平均模型输出结果的置信区间

图5-5 移动平均模型输出结果的置信区间

从上面结果可以看出,我们有95%的把握,预测值在[1593.85 – 1225,1593.85 + 1225]之间,我们在上图中用预测_low和预测_up来表示。从实际预测效果看,这个预测范围还是很大的,而我们希望我们的预测越精确越好。

以上我们完整地示例了怎样手工进行移动平均的预测计算。其实在Excel中,我们还有2种方法进行移动平均操作,而且我们在之前的章节里都介绍过。一个就是利用图表中添加趋势线的办法;另一种方法就是在“数据”选项卡下的“数据分析——移动平均”功能。下面我们分别介绍。

趋势线法

我们首先将原始的每日销售金额数据绘制出折线图。然后点击图中数据点,右键选择“添加趋势线”,我们选择移动平均周期=6,如下图所示。

图5-6 在折线图中添加趋势线实现移动平均1

图5-6 在折线图中添加趋势线实现移动平均1

图5-6 在折线图中添加趋势线实现移动平均2

图5-6 在折线图中添加趋势线实现移动平均2

该结果和我们之前手工的计算结果事实上完全一样。

数据分析下的移动平均功能

数据分析功能模块下提供了移动平均,点击弹出对话框后,如下图所示,依次填入相应的数据。输入区域指历史真实数据,注意它只能是单列或者单行。间隔就是我们选择的平滑窗口大小。填写完毕后点击确定。

图5-7 数据分析选项卡下的移动平均对话框

图5-7 数据分析选项卡下的移动平均对话框

得到结果如下。

图5-8 数据分析选项卡下的移动平均输出结果示例1

图5-8 数据分析选项卡下的移动平均输出结果示例1

图5-8 数据分析选项卡下的移动平均输出结果示例2

图5-8 数据分析选项卡下的移动平均输出结果示例2

Excel中数据分析——移动平均的结果看起来有些不正常,这可能是软件工程师开发过程中遗留的一些小型错误。输出的结果中,明显第1列为预测值,第2列为残差。但是显然残差并没有与预测值所指的日期对齐。此外该功能中对移动平均的窗口显然计算错误,示例中移动平均n=6,因此正确的计算输出应该是向下移动6个单元格,但该功能给出的结果仅仅下移了5个单元格。由于这两处明显的硬伤错误,因此我们不建议使用Excel中数据分析模块下的移动平均这一功能。这里仅作为一个演示。说到这里顺便提一下,任何一个软件工具都难免有一些错误存在,尤其对于大型的软件工具或者系统,这一定是无法避免的。因此对于使用者来说,明白软件中提供功能背后的原理是重要的,否则有时候我们可能用错了场景或者软件本身有bug,我们却对其一无所知甚至毫无察觉,会给分析结果带来重大隐患。

指数平滑

指数平滑是除移动平均外,另一种基本的中短期预测方法。它的原理用公式表示为:$F_{t} = (1 - \alpha) * F_{t-1} + \alpha * D_{t-1}$,其中α在(0, 1)之间,称作平滑常数。我们可以把这个表达式解释为当前t时刻的预测值,等于前一时刻的预测值与前一时刻的真实值的加权和。如果对该式做一个变型,它又可以表示成:$F_{t} = F_{t-1} + α * (D_{t-1} – F_{t-1})$,这样当前时刻的预测值又可以解释为前一时刻的预测值,加上一定比例的前一时刻真值与预测值的残差。这是关于指数平滑原理的两种解释。

现在让我们用这个指数平滑公式,试对上例中的销售金额做计算。我们计算$F_{1} = (1 - \alpha) * F_{0} + \alpha * D_{0}$,$F_{2} = (1 - \alpha) * F_{1} + \alpha * D_{1}$。我们发现其中$F_{0}$是不存在的,而$F_{1}$实际上就是$D_{1}$,所以使用指数平滑,时间序列中的前2个值其实就是真值本身,预测实际上从时间序列的第3个值开始。所有细节都弄清楚后,我们可以在Excel中进行实际操作。和移动平均一样,我们首先要选择网格搜索α值,然后用指数平滑公式计算出每一时刻的预测值,并最后用误差检验哪种平滑常数最好。我们用2步完成上述操作。

第1步,计算各种平滑常数的预测值。

图5-9 网格搜索计算指数平滑系数

图5-9 网格搜索计算指数平滑系数

计算得到3-8号时,每种平滑常数对应的预测值如下。

图5-10 用指数平滑法预测时间序列

图5-10 用指数平滑法预测时间序列

该计算使用的公式如下所示,它就是我们前面介绍的指数平滑公式。

图5-11 指数平滑法公式

图5-11 指数平滑法公式

第2步,计算各种平滑常数对应的误差。我们依然计算了RMSE,MAD,MAPE3种误差。结果如下所示。

在入门教程中,我们已经介绍了有关预测方面的知识。比如我们可以使用回归做因果分析,或者采用时间序列做预测,这完全依赖于统计数据和模型的设定。此外还有定性判断。笼统地区分,我们可以把定量的预测方法分为因果分析,统计分析两类。本章我们就从这两类分别介绍在Excel中使用的一些相关方法。

第一节 时间序列

在入门教程中我们介绍的时间序列方法是ARIMA模型。在原生Excel中我们无法实现该模型。我们介绍的是另外几类,除了这些方法可以在Excel中实践操作外,它们的效果也非常好,非常适合日常商业分析使用。它们是移动平均,指数平滑和霍尔特模型。

移动平均

移动平均的概念十分直观。我们用当前时刻t之前的n个时刻$(t_{n-1}, t_{n-2}, ……)$的值的算术均值,作为当前时刻t的预测值。如果我们用$F_{t}$表示t时刻的预测值,用Dt表示t时刻的真实值,用公式表示就是:$Ft = (D_{t-1} + D_{t-2} + …… + D_{t-n}) / n$。该方法十分适合中短期的预测,什么是中短期呢?这里有2层含义。一是指我们预测的外推区间,不宜过长。移动平均可以直接预测到外推某个时间点的数值。二是指这种方法适合预测诸如天,周,月这样的时间段指标,像年,10年这种长周期预测就不是很适合了。这是因为移动平均的假设是影响指标变化的因素在接下来的时间段里依然有效。过长的时间段使得该假设不一定成立。使用的场景和具体的原理公式我们掌握了,下面我们用之前维度分析使用的数据演示怎样在Excel中做移动平均。

我们的部分原始数据集和有关指标的趋势图如下所示。

图5-1 时间序列样本示例

图5-1 时间序列样本示例

图5-1 时间序列样本的折线图

图5-1 时间序列样本的折线图

该数据集的原始样本截止到3-9号。我们现在用移动平均法预测3-10号的销售金额,订单量。

移动平均算法里隐含了一个参数,就是选择当前时刻之前多少时段?也就是选择n是多少。确定该参数,需要使用称之为网格搜索的办法,也就是我们假设有选择n=1,2,3,……,然后使用误差度量,我们选择误差最小的n即可。关于误差,我们在入门教程中介绍过,比如常用的有均方差(MSE),均方根(RMSE),此外还有绝对离差(MAD),平均绝对百分误差(MAPE)等指标。这里我们可以选择均方根差(RMSE),因为和原始数据同一数量级可以方便我们估计预测范围。由于移动平均法相对直观,为了使读者深入了解掌握这一方法,我们先完全手工操作整个计算过程。正式操作移动平均法需要2步,这里我们以预测销售金额为例,具体步骤详述如下。原始数据集中我们将以3-8号的真实值作为预测的比较值(因为3-9号数据不完整)。

第1步,准备数据集,并设计多个移动平均窗口,也就是n值。具体如下所示。

图5-2 对销售金额样本做移动平均

图5-2 对销售金额样本做移动平均

图5-2 对销售金额样本做移动平均的公式

图5-2 对销售金额样本做移动平均的公式

我们使用average()公式,手工地计算当天的预测值,该预测值来自当天之前n天的算术平均值。比较不同平滑窗口n在3-8号的预测值。结果如下。

图5-3 预测值与真实值做比较

图5-3 预测值与真实值做比较

第2步,计算不同n值的误差指标。这里我们选择均方根差。当然也可以多选择几种误差指标,以评估这些误差指标反映的结果是否一致。

均方根差(RMSE)的计算方法和标准差很相似。我们把每天预测值-真实值的差值的平方累加起来,除以预测的天数,再开平方根即可。用公式表示就是,$RMSE = \sqrt{(F_{t} - D_{t})^2)} / T$,式中,T表示了时间序列一共有多少天的值。比如在平滑窗口n=2时,我们预测了65天的值,则这里T=65。n=3时,T=64。以此类推。我们这里直接给出计算的结果,同时我们顺带一并计算了MAD和MAPE的误差度量。显示如下。

图5-4 网格搜索法确定移动平均窗口值1

图5-4 网格搜索法确定移动平均窗口值1

图5-4 网格搜索法确定移动平均窗口值2

图5-4 网格搜索法确定移动平均窗口值2

我们可以观察到,当平滑窗口n=6时,误差最小。所以我们将选择n=6作为移动平均算法的参数,并以它的结果作为预测值。这个结果给我们分析反馈的信息就是,对下一时刻的预测,要依赖于该时刻之前的6个时刻点的信息,这个“平滑窗口”宽度反映了该预测更多地在捕捉时间序列中有关于趋势的信息,而不太偏向捕捉即刻的变化。对于预测的结果,我们如果想要估计一个置信区间,可以选择t分布。这需要首先计算出预测值和真实值之间的误差,一般我们称其为残差(Residual)。下面我们演示下当n=6时的残差以及该预测的95%置信区间。

图5-5 移动平均模型输出结果的置信区间

图5-5 移动平均模型输出结果的置信区间

从上面结果可以看出,我们有95%的把握,预测值在[1593.85 – 1225,1593.85 + 1225]之间,我们在上图中用预测_low和预测_up来表示。从实际预测效果看,这个预测范围还是很大的,而我们希望我们的预测越精确越好。

以上我们完整地示例了怎样手工进行移动平均的预测计算。其实在Excel中,我们还有2种方法进行移动平均操作,而且我们在之前的章节里都介绍过。一个就是利用图表中添加趋势线的办法;另一种方法就是在“数据”选项卡下的“数据分析——移动平均”功能。下面我们分别介绍。

趋势线法

我们首先将原始的每日销售金额数据绘制出折线图。然后点击图中数据点,右键选择“添加趋势线”,我们选择移动平均周期=6,如下图所示。

图5-6 在折线图中添加趋势线实现移动平均1

图5-6 在折线图中添加趋势线实现移动平均1

图5-6 在折线图中添加趋势线实现移动平均2

图5-6 在折线图中添加趋势线实现移动平均2

该结果和我们之前手工的计算结果事实上完全一样。

数据分析下的移动平均功能

数据分析功能模块下提供了移动平均,点击弹出对话框后,如下图所示,依次填入相应的数据。输入区域指历史真实数据,注意它只能是单列或者单行。间隔就是我们选择的平滑窗口大小。填写完毕后点击确定。

图5-7 数据分析选项卡下的移动平均对话框

图5-7 数据分析选项卡下的移动平均对话框

得到结果如下。

图5-8 数据分析选项卡下的移动平均输出结果示例1

图5-8 数据分析选项卡下的移动平均输出结果示例1

图5-8 数据分析选项卡下的移动平均输出结果示例2

图5-8 数据分析选项卡下的移动平均输出结果示例2

Excel中数据分析——移动平均的结果看起来有些不正常,这可能是软件工程师开发过程中遗留的一些小型错误。输出的结果中,明显第1列为预测值,第2列为残差。但是显然残差并没有与预测值所指的日期对齐。此外该功能中对移动平均的窗口显然计算错误,示例中移动平均n=6,因此正确的计算输出应该是向下移动6个单元格,但该功能给出的结果仅仅下移了5个单元格。由于这两处明显的硬伤错误,因此我们不建议使用Excel中数据分析模块下的移动平均这一功能。这里仅作为一个演示。说到这里顺便提一下,任何一个软件工具都难免有一些错误存在,尤其对于大型的软件工具或者系统,这一定是无法避免的。因此对于使用者来说,明白软件中提供功能背后的原理是重要的,否则有时候我们可能用错了场景或者软件本身有bug,我们却对其一无所知甚至毫无察觉,会给分析结果带来重大隐患。

指数平滑

指数平滑是除移动平均外,另一种基本的中短期预测方法。它的原理用公式表示为:$F_{t} = (1 - \alpha) * F_{t-1} + \alpha * D_{t-1}$,其中α在(0, 1)之间,称作平滑常数。我们可以把这个表达式解释为当前t时刻的预测值,等于前一时刻的预测值与前一时刻的真实值的加权和。如果对该式做一个变型,它又可以表示成:$F_{t} = F_{t-1} + α * (D_{t-1} – F_{t-1})$,这样当前时刻的预测值又可以解释为前一时刻的预测值,加上一定比例的前一时刻真值与预测值的残差。这是关于指数平滑原理的两种解释。

现在让我们用这个指数平滑公式,试对上例中的销售金额做计算。我们计算$F_{1} = (1 - \alpha) * F_{0} + \alpha * D_{0}$,$F_{2} = (1 - \alpha) * F_{1} + \alpha * D_{1}$。我们发现其中$F_{0}$是不存在的,而$F_{1}$实际上就是$D_{1}$,所以使用指数平滑,时间序列中的前2个值其实就是真值本身,预测实际上从时间序列的第3个值开始。所有细节都弄清楚后,我们可以在Excel中进行实际操作。和移动平均一样,我们首先要选择网格搜索α值,然后用指数平滑公式计算出每一时刻的预测值,并最后用误差检验哪种平滑常数最好。我们用2步完成上述操作。

第1步,计算各种平滑常数的预测值。

图5-9 网格搜索计算指数平滑系数

图5-9 网格搜索计算指数平滑系数

计算得到3-8号时,每种平滑常数对应的预测值如下。

图5-10 用指数平滑法预测时间序列

图5-10 用指数平滑法预测时间序列

该计算使用的公式如下所示,它就是我们前面介绍的指数平滑公式。

图5-11 指数平滑法公式

图5-11 指数平滑法公式

第2步,计算各种平滑常数对应的误差。我们依然计算了RMSE,MAD,MAPE3种误差。结果如下所示。

在入门教程中,我们已经介绍了有关预测方面的知识。比如我们可以使用回归做因果分析,或者采用时间序列做预测,这完全依赖于统计数据和模型的设定。此外还有定性判断。笼统地区分,我们可以把定量的预测方法分为因果分析,统计分析两类。本章我们就从这两类分别介绍在Excel中使用的一些相关方法。

第一节 时间序列

在入门教程中我们介绍的时间序列方法是ARIMA模型。在原生Excel中我们无法实现该模型。我们介绍的是另外几类,除了这些方法可以在Excel中实践操作外,它们的效果也非常好,非常适合日常商业分析使用。它们是移动平均,指数平滑和霍尔特模型。

移动平均

移动平均的概念十分直观。我们用当前时刻t之前的n个时刻$(t_{n-1}, t_{n-2}, ……)$的值的算术均值,作为当前时刻t的预测值。如果我们用$F_{t}$表示t时刻的预测值,用Dt表示t时刻的真实值,用公式表示就是:$Ft = (D_{t-1} + D_{t-2} + …… + D_{t-n}) / n$。该方法十分适合中短期的预测,什么是中短期呢?这里有2层含义。一是指我们预测的外推区间,不宜过长。移动平均可以直接预测到外推某个时间点的数值。二是指这种方法适合预测诸如天,周,月这样的时间段指标,像年,10年这种长周期预测就不是很适合了。这是因为移动平均的假设是影响指标变化的因素在接下来的时间段里依然有效。过长的时间段使得该假设不一定成立。使用的场景和具体的原理公式我们掌握了,下面我们用之前维度分析使用的数据演示怎样在Excel中做移动平均。

我们的部分原始数据集和有关指标的趋势图如下所示。

图5-1 时间序列样本示例

图5-1 时间序列样本示例

图5-1 时间序列样本的折线图

图5-1 时间序列样本的折线图

该数据集的原始样本截止到3-9号。我们现在用移动平均法预测3-10号的销售金额,订单量。

移动平均算法里隐含了一个参数,就是选择当前时刻之前多少时段?也就是选择n是多少。确定该参数,需要使用称之为网格搜索的办法,也就是我们假设有选择n=1,2,3,……,然后使用误差度量,我们选择误差最小的n即可。关于误差,我们在入门教程中介绍过,比如常用的有均方差(MSE),均方根(RMSE),此外还有绝对离差(MAD),平均绝对百分误差(MAPE)等指标。这里我们可以选择均方根差(RMSE),因为和原始数据同一数量级可以方便我们估计预测范围。由于移动平均法相对直观,为了使读者深入了解掌握这一方法,我们先完全手工操作整个计算过程。正式操作移动平均法需要2步,这里我们以预测销售金额为例,具体步骤详述如下。原始数据集中我们将以3-8号的真实值作为预测的比较值(因为3-9号数据不完整)。

第1步,准备数据集,并设计多个移动平均窗口,也就是n值。具体如下所示。

图5-2 对销售金额样本做移动平均

图5-2 对销售金额样本做移动平均

图5-2 对销售金额样本做移动平均的公式

图5-2 对销售金额样本做移动平均的公式

我们使用average()公式,手工地计算当天的预测值,该预测值来自当天之前n天的算术平均值。比较不同平滑窗口n在3-8号的预测值。结果如下。

图5-3 预测值与真实值做比较

图5-3 预测值与真实值做比较

第2步,计算不同n值的误差指标。这里我们选择均方根差。当然也可以多选择几种误差指标,以评估这些误差指标反映的结果是否一致。

均方根差(RMSE)的计算方法和标准差很相似。我们把每天预测值-真实值的差值的平方累加起来,除以预测的天数,再开平方根即可。用公式表示就是,$RMSE = \sqrt{(F_{t} - D_{t})^2)} / T$,式中,T表示了时间序列一共有多少天的值。比如在平滑窗口n=2时,我们预测了65天的值,则这里T=65。n=3时,T=64。以此类推。我们这里直接给出计算的结果,同时我们顺带一并计算了MAD和MAPE的误差度量。显示如下。

图5-4 网格搜索法确定移动平均窗口值1

图5-4 网格搜索法确定移动平均窗口值1

图5-4 网格搜索法确定移动平均窗口值2

图5-4 网格搜索法确定移动平均窗口值2

我们可以观察到,当平滑窗口n=6时,误差最小。所以我们将选择n=6作为移动平均算法的参数,并以它的结果作为预测值。这个结果给我们分析反馈的信息就是,对下一时刻的预测,要依赖于该时刻之前的6个时刻点的信息,这个“平滑窗口”宽度反映了该预测更多地在捕捉时间序列中有关于趋势的信息,而不太偏向捕捉即刻的变化。对于预测的结果,我们如果想要估计一个置信区间,可以选择t分布。这需要首先计算出预测值和真实值之间的误差,一般我们称其为残差(Residual)。下面我们演示下当n=6时的残差以及该预测的95%置信区间。

图5-5 移动平均模型输出结果的置信区间

图5-5 移动平均模型输出结果的置信区间

从上面结果可以看出,我们有95%的把握,预测值在[1593.85 – 1225,1593.85 + 1225]之间,我们在上图中用预测_low和预测_up来表示。从实际预测效果看,这个预测范围还是很大的,而我们希望我们的预测越精确越好。

以上我们完整地示例了怎样手工进行移动平均的预测计算。其实在Excel中,我们还有2种方法进行移动平均操作,而且我们在之前的章节里都介绍过。一个就是利用图表中添加趋势线的办法;另一种方法就是在“数据”选项卡下的“数据分析——移动平均”功能。下面我们分别介绍。

趋势线法

我们首先将原始的每日销售金额数据绘制出折线图。然后点击图中数据点,右键选择“添加趋势线”,我们选择移动平均周期=6,如下图所示。

图5-6 在折线图中添加趋势线实现移动平均1

图5-6 在折线图中添加趋势线实现移动平均1

图5-6 在折线图中添加趋势线实现移动平均2

图5-6 在折线图中添加趋势线实现移动平均2

该结果和我们之前手工的计算结果事实上完全一样。

数据分析下的移动平均功能

数据分析功能模块下提供了移动平均,点击弹出对话框后,如下图所示,依次填入相应的数据。输入区域指历史真实数据,注意它只能是单列或者单行。间隔就是我们选择的平滑窗口大小。填写完毕后点击确定。

图5-7 数据分析选项卡下的移动平均对话框

图5-7 数据分析选项卡下的移动平均对话框

得到结果如下。

图5-8 数据分析选项卡下的移动平均输出结果示例1

图5-8 数据分析选项卡下的移动平均输出结果示例1

图5-8 数据分析选项卡下的移动平均输出结果示例2

图5-8 数据分析选项卡下的移动平均输出结果示例2

Excel中数据分析——移动平均的结果看起来有些不正常,这可能是软件工程师开发过程中遗留的一些小型错误。输出的结果中,明显第1列为预测值,第2列为残差。但是显然残差并没有与预测值所指的日期对齐。此外该功能中对移动平均的窗口显然计算错误,示例中移动平均n=6,因此正确的计算输出应该是向下移动6个单元格,但该功能给出的结果仅仅下移了5个单元格。由于这两处明显的硬伤错误,因此我们不建议使用Excel中数据分析模块下的移动平均这一功能。这里仅作为一个演示。说到这里顺便提一下,任何一个软件工具都难免有一些错误存在,尤其对于大型的软件工具或者系统,这一定是无法避免的。因此对于使用者来说,明白软件中提供功能背后的原理是重要的,否则有时候我们可能用错了场景或者软件本身有bug,我们却对其一无所知甚至毫无察觉,会给分析结果带来重大隐患。

指数平滑

指数平滑是除移动平均外,另一种基本的中短期预测方法。它的原理用公式表示为:$F_{t} = (1 - \alpha) * F_{t-1} + \alpha * D_{t-1}$,其中α在(0, 1)之间,称作平滑常数。我们可以把这个表达式解释为当前t时刻的预测值,等于前一时刻的预测值与前一时刻的真实值的加权和。如果对该式做一个变型,它又可以表示成:$F_{t} = F_{t-1} + α * (D_{t-1} – F_{t-1})$,这样当前时刻的预测值又可以解释为前一时刻的预测值,加上一定比例的前一时刻真值与预测值的残差。这是关于指数平滑原理的两种解释。

现在让我们用这个指数平滑公式,试对上例中的销售金额做计算。我们计算$F_{1} = (1 - \alpha) * F_{0} + \alpha * D_{0}$,$F_{2} = (1 - \alpha) * F_{1} + \alpha * D_{1}$。我们发现其中$F_{0}$是不存在的,而$F_{1}$实际上就是$D_{1}$,所以使用指数平滑,时间序列中的前2个值其实就是真值本身,预测实际上从时间序列的第3个值开始。所有细节都弄清楚后,我们可以在Excel中进行实际操作。和移动平均一样,我们首先要选择网格搜索α值,然后用指数平滑公式计算出每一时刻的预测值,并最后用误差检验哪种平滑常数最好。我们用2步完成上述操作。

第1步,计算各种平滑常数的预测值。

图5-9 网格搜索计算指数平滑系数

图5-9 网格搜索计算指数平滑系数

计算得到3-8号时,每种平滑常数对应的预测值如下。

图5-10 用指数平滑法预测时间序列

图5-10 用指数平滑法预测时间序列

该计算使用的公式如下所示,它就是我们前面介绍的指数平滑公式。

图5-11 指数平滑法公式

图5-11 指数平滑法公式

第2步,计算各种平滑常数对应的误差。我们依然计算了RMSE,MAD,MAPE3种误差。结果如下所示。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3