R语言 如何在R中计算SMAPE
SMAPE 是对称平均绝对百分比误差的缩写。它是一种准确性衡量标准,用于确定基于相对误差的模型的预测准确性。相对误差的计算方法是:。
相对误差 = x / y
其中x是绝对误差,y是准确值的大小。
SMAPE 既有下限值,也有上限值(与平均绝对百分比误差相反)。SMAPE可以用以下公式轻松计算。
SMAPE = (1 / n) * Σ(|预测值-实际值| / ((|实际值| +|预测值|) / 2) * 100
这里。
Σ : 表示 “总和 “的一个符号
|| : 代表绝对值
n : 代表样本大小
actual_value。代表实际数据值
forecast_value : 代表预测的数据值。
本文主要介绍我们如何在R中计算SMAPE。
在R中计算SMAPE
有两种方法可以让我们在R中计算SMAPE,下面将详细介绍这些方法。
方法1: 使用度量包
R为我们提供了定义在Metrics包下的smape()函数,我们可以用它来计算SMAPE。该函数的语法如下。
语法。
smape(actual, forecast)
参数。
- actual: 它代表一个包含实际值的向量。
- forecasted:它代表一个包含预测值的向量。
返回类型。
返回实际值和预测值之间的SMAPE误差。
例子 。
在这个程序中,我们创建了两个向量;模型的实际值和预测值。然后使用smape()函数计算对称平均绝对百分比误差。
# Importing library
library(Metrics)
# Defining a vector containing actual values
actual <- c(10, 33, 42, 18, 19, 21, 22)
# Defining a vector containing forecasted
# values
forecast <- c(16, 19, 24, 27, 25, 36, 48)
# Determine SMAPE
smape(actual, forecast)
输出 。
因此,这个模型的对称平均绝对百分比误差等于49.819%。
方法2: 使用一个自定义函数
另一种方法是创建我们自己的函数,使用前面描述的公式来计算对称平均绝对百分比误差。
例子 。
在这个程序中,我们创建了一个自定义函数computeSmape(),将实际和森林向量作为输入。使用该公式,我们正在计算smape。最后,我们通过传递向量作为参数来调用这个函数。
# Custom function to calculate SMAPE
# for the provided model
computeSmape <- function(actual, forecast) {
return (1 / length(actual) * sum(2 * abs(forecast - actual) / (abs(actual) + abs(forecast)) * 100))
}
# Defining a vector containing actual values
actual <- c(10, 33, 42, 18, 19, 21, 22)
# Defining a vector containing forecasted values
forecast <- c(16, 19, 24, 27, 25, 36, 48)
# Determine SMAPE
computeSmape(actual, forecast)
输出 。
因此这个模型的对称平均绝对百分比误差等于49.819%。