Table of contents
本教程通过公式实例解释了如何使用Excel FORECAST和其他相关函数。
在Microsoft Excel中,有几个函数可以帮助你根据历史数据,如销售、预算、现金流、股票价格等,创建线性和指数平滑预测。
本教程的主要重点是两个主要的预测函数,但我们也会简要地涉及其他函数,以帮助你了解它们的目的和基本用途。
Excel的预测功能
在最近的Excel版本中,存在六种不同的预测功能。
这两个功能是 线型 预测。
- FORECAST - 通过使用线性回归来预测未来的数值;是一个向后兼容Excel 2013和更早版本的遗留函数。
- LINEAR - 与FORECAST函数相同;是Excel 2016和Excel 2019中新的预测函数套件的一部分。
四项ETS功能的目的是为了 指数平滑法 预告:这些功能只在Excel for Office 365、Excel 2019和Excel 2016中可用。
- ETS--根据指数平滑算法预测未来价值。
- ETS.CONFINT - 计算置信区间。
- ETS.SEASONALITY - 计算一个季节性或其他重复出现的模式的长度。
- ETS.STAT - 返回用于时间序列预测的统计值。
Excel FORECAST函数
Excel中的FORECAST函数用于预测一个未来的数值,通过使用 线性回归 换句话说,FORECAST是沿着基于历史数据的最佳拟合线预测未来价值。
FORECAST函数的语法如下。
FORECAST(x, known_y's, known_x's)在哪里?
- X (required) - 一个数字的X值,你想为它预测一个新的Y值。
- 已知_y的 (required) - 一个已知从属Y值的数组。
- 已知_x的 (required) - 一个已知独立X值的数组。
FORECAST功能可以在Office 365、Excel 2019、Excel 2016、Excel 2013、Excel 2010、Excel 2007、Excel 2003、Excel XP和Excel 2000的所有版本的Excel中使用。
注意:在Excel 2016和2019中,这个函数已被FORECAST.LINEAR取代,但为了向后兼容,仍可使用。
Excel的FORECAST.LINEAR函数
FORECAST.LINEAR函数是FORECAST函数的现代对应函数。 它具有相同的目的和语法。
FORECAST.LINEAR(x, known_y's, known_x's)这个功能在Excel for Office 365、Excel 2019和Excel 2016中都有。
FORECAST和FORECAST.LINEAR如何计算未来值
这两个函数都通过使用线性回归方程来计算未来的Y值。
y = a + bx
在哪里? a 常数(截距)是。
而b系数(直线的斜率)是。
x̄和ȳ的值是已知x值和y值的样本平均数(平均值)。
Excel FORECAST功能不工作。
如果你的FORECAST公式返回一个错误,这很可能是因为以下原因。
- 如果know_x的和know_y的范围长度不同或为空,就会出现#N/A!错误。
- 如果x值为非数字,该公式将返回#VALUE!错误。
- 如果know_x的方差为零,就会发生#DIV/0!错误。
如何在Excel中使用FORECAST函数--公式示例
如前所述,Excel的FORECAST和FORECAST.LINEAR函数是用于线性趋势预测的。 它们对线性数据集和当你想预测一个总的趋势而忽略不重要的数据波动的情况下效果最好。
作为一个例子,我们将尝试根据前三周的数据来预测我们网站未来7天的流量。
有了B2:B22的已知Y值(游客数量)和A2:A22的已知X值(日期),预测公式如下。
Excel 2019 - Excel 2000 :
=forecast(a23, $b$2:$b$22, $a$2:$a$22)
Excel 2016和Excel 2019 :
=forecast.linear(a23, $b$2:$b$22, $a$2:$a$22)
其中A23是一个新的X值,你希望对其预测一个未来的Y值。
根据你的Excel版本,在第23行的任何一个空单元格中插入上述公式,根据需要向下复制到许多单元格,你将得到这样的结果。
请注意,我们锁定具有绝对单元格引用的范围(如$A$2:$A$2),以防止将公式复制到其他单元格时它们发生变化。
绘制在图表上,我们的线性预测看起来如下。
制作这种图表的详细步骤在线性回归预测图中有描述。
如果你想预测未来的价值,根据 反复出现的模式 在你的历史数据中观察,然后使用FORECAST.ETS,而不是Excel的FORECAST函数。 而我们教程的下一节展示了如何做到这一点。
Excel FORECAST.ETS函数
FORECAST.ETS函数被用来做 指数平滑法 基于一系列现有价值的预测。
更准确地说,它是根据AAA版本的预测未来价值。 指数三重平滑 (该算法通过检测季节性模式和置信区间来平滑数据趋势中的不显著偏差。"AAA "代表加性误差、加性趋势和加性季节性。
FORECAST.ETS函数在Excel for Office 365、Excel 2019和Excel 2016中可用。
Excel FORECAST.ETS的语法如下。
FORECAST.ETS(target_date, values, timeline, [seasonality], [data_completion], [aggregation] )在哪里?
- 目标日期 (要求) - 预测数值的数据点。 它可以用日期/时间或数字表示。
- 价值观 (必填) - 一个历史数据的范围或数组,你想对其预测未来值。
- 时间轴 (required) - 一个日期/时间或独立数字数据的数组,它们之间有一个恒定的步长。
- 季节性 (可选) - 一个代表季节性模式长度的数字。
- 1或省略(默认)--Excel通过使用正数、整数自动检测季节性。
- 0--无季节性,即线性预测。
允许的最大季节性是8760,也就是一年中的小时数。 更高的季节性数字会导致#NUM!错误。
See_also: 如何查找和删除Excel中的重复单元格 - 数据完成 (可选)--占缺失点。
- 1或省略(默认)--将缺失的点填充为邻近点的平均值(衬里插值)。
- 0--将缺失的点视为零。
- 集合 (可选)--指定如何以相同的时间戳汇总多个数据值。
- 1或省略(默认)--使用AVERAGE函数进行聚合。
- 你的其他选项是:2 - COUNT,3 - COUNTA,4 - MAX,5 - MEDIAN,6 - MIN和7 - SUM。
关于FORECAST.ETS你应该知道的5件事
- 为了使FORECAST.ETS函数正确工作,时间线应该有一个 定期间隔 - 每小时、每天、每月、每季度、每年,等等。
- 该函数最适用于具有季节性或其他特征的非线性数据集。 重复的模式 .
- 当Excel 无法察觉模式 ,该函数恢复到了线性预测。
- 该函数可以与 不完整的数据集 缺少的数据点最多有30%是缺失的。 缺失的数据点会根据以下的值来处理 数据完成 争论。
- 虽然需要有一个步骤一致的时间表,但可能会有 重复 具有相同时间戳的值被聚集起来,这是由 聚合 争论。
FORECAST.ETS功能不工作。
如果你的公式产生了一个错误,这很可能是以下情况之一。
- 如果发生#N/A 价值 和 时间线 数组有不同的长度。
- 如果出现以下情况,将返回#VALUE!错误。 季节性 , 数据完成 或 聚合 参数为非数字。
- 抛出#NUM!错误可能是由于以下原因。
- 无法检测到一致的阶梯尺寸,在 时间线 .
- ǞǞǞ 季节性 值超出了支持的范围(0 - 8,7600)。
- ǞǞǞ 数据完成 值为0或1以外。
- ǞǞǞ 聚合 值超出了有效范围(1 - 7)。
如何在Excel中使用FORECAST.ETS函数--公式示例
为了看看用指数平滑法计算的未来值与线性回归预测有什么不同,让我们对前面例子中使用的同一数据集做一个FORECAST.ETS公式。
=forecast.ets(a23, $b$2:$b$22, $a$2:$a$22)在哪里?
- A23是目标日期
- $B$2:$B$22是历史数据( 价值 )
- $A$2:$A$22为日期( 时间线 )
通过省略最后三个参数( 季节性 , 数据完成 或 聚合 而Excel完美地预测了趋势。
Excel FORECAST.ETS.CONFINT函数
FORECAST.ETS.CONFINT函数用于计算一个预测值的置信区间。
置信区间是对预测准确性的一种衡量。 区间越小,对特定数据点的预测就越有信心。
FORECAST.ETS.CONFINT在Excel的Office 365、Excel 2019和Excel 2016中都有。
该函数有以下参数。
FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], [seasonality], [data completion], [aggregation] )。正如你所看到的,FORECAST.ETS.CONFINT的语法与FORECAST.ETS函数的语法非常相似,除了这个附加参数。
信心等级 (可选) - 一个介于0和1之间的数字,用于指定计算区间的置信度。 通常,它以小数形式提供,尽管也接受百分比。 例如,要设置90%的置信度,你可以输入0.9或90%。
- 如果省略,则使用95%的默认值,这意味着95%的预测数据点有望落在FORECAST.ETS返回值的这个半径范围内。
- 如果置信度超出了支持的范围(0 - 1),该公式会返回#NUM!错误。
FORECAST.ETS.CONFINT公式示例
为了看看它在实践中是如何运作的,让我们计算一下我们的样本数据集的置信区间。
=forecast.ets.confint(a23, $b$2:$b$22, $a$2:$a$22)
在哪里?
- A23是目标日期
- $B$2:$B$22是历史数据。
- $A$2:$A$22是日期。
最后4个参数被省略,告诉Excel使用默认选项。
- 设置置信度为95%。
- 自动检测季节性。
- 将缺失的点作为相邻点的平均值来完成。
- 通过使用AVERAGE函数对具有相同时间戳的多个数据值进行汇总。
为了掌握返回值的实际含义,请看下面的截图(由于篇幅原因,一些有历史数据的行被隐藏了)。
D23中的公式给出的结果是6441.22(四舍五入到小数点后2位)。 它的意思是,在95%的时间里,3月11日的预测值有望落在预测值61075(C3)的6441.22之内。 也就是61075±6441.22。
为了找出预测值可能落在的范围,你可以计算每个数据点的置信区间界限。
为了获得 下限 ,从预测值中减去置信区间。
=C23-D23
为了获得 上限 ,将置信区间加到预测值上。
=C23+D23
其中C23是由FORECAST.ETS返回的预测值,D23是由FORECAST.ETS.CONFINT返回的置信区间。
将上述公式复制下来,将结果绘制在图表上,你就会对预测值和置信区间有一个清晰的视觉表现。
提示:要想自动创建这样的图表,可以利用Excel预测表功能。
Excel FORECAST.ETS.SEASONALITY函数
FORECAST.ETS.SEASONALITY函数用于计算指定时间线中重复出现的模式的长度。 它与FORECAST.ETS密切相关,因为两个函数使用相同的算法来检测季节性。
这个功能在Excel for Office 365、Excel 2019和Excel 2016中都有。
FORECAST.ETS.SEASONALITY的语法如下。
FORECAST.ETS.SEASONALITY(value, timeline, [data_completion], [aggregation])对于我们的数据集,该公式具有以下形状。
=forecast.ets.seasonality(b2:b22, a2:a22)
并返回季节性7,这与我们历史数据的每周模式完全一致。
Excel FORECAST.ETS.STAT函数
FORECAST.ETS.STAT函数在返回一个与时间序列指数平滑预测有关的指定统计值。
与其他ETS函数一样,它在Excel for Office 365、Excel 2019和Excel 2016中可用。
该函数的语法如下。
FORECAST.ETS.STAT(value, timeline, statistic_type, [seasonality], [data_completion], [aggregation])ǞǞǞ 统计资料类型 参数表示要返回哪个统计值。
- 阿尔法 (基准值)--在0和1之间的平滑值,控制数据点的权重。 该值越高,最近的数据得到的权重就越大。
- β (趋势值)--在0和1之间的数值,决定了趋势的计算。 数值越高,最近的趋势所占的比重越大。
- 伽玛 (季节性值)--0和1之间的数值,控制ETS预测的季节性。 数值越大,最近的季节性时期的权重越大。
- MASE (平均绝对比例误差) - 衡量预测准确度。
- SMAPE (对称平均绝对百分比误差)--基于百分比或相对误差的准确性测量。
- MAE (平均绝对误差)--衡量预测误差的平均大小,不考虑其方向。
- RMSE (均方根误差) - 预测值和观察值之间差异的衡量标准。
- 检测到的步骤大小 - 时间线中检测到的步长。
例如,为了返回我们的样本数据集的Alpha参数,我们使用这个公式。
=forecast.ets.stat(b2:b22, a2:a22, 1)
下面的屏幕截图显示了其他统计值的公式。
这就是在Excel中进行时间序列预测的方法。 要研究本教程中讨论的所有公式,欢迎下载我们的Excel预测样本工作簿。 感谢你的阅读,希望下周在我们的博客上见到你!