R语言 如何在R中计算SMAPE

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)

输出

如何在R中计算SMAPE

因此,这个模型的对称平均绝对百分比误差等于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)

输出

如何在R中计算SMAPE

因此这个模型的对称平均绝对百分比误差等于49.819%。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程