R语言 如何计算MAPE

R语言 如何计算MAPE

在这篇文章中,我们将看到如何在R编程语言中计算MAPE。

MAPE

它是平均绝对百分比误差的首字母缩写。MAPE用于衡量一个预测系统的准确性。准确性是以百分比来衡量的。MAPE可以用以下公式计算。

MAPE = (1 / n) * Σ(|At – Ft| / |At|) * 100

Here,
n: Represents the number of fitted points
At: Represents the actual value,
Ft: Represents the forecast value.
Σ: Symbol used to denote summation

MAPE是很常见的,用于预测误差。当他们的极端值不存在于数据中时,它的工作是最有效的。

方法1:使用MLmetrics包

在R中,MLmetrics包为我们提供了MAPE()函数,我们可以用它来计算R中的MAPE。这个函数的语法如下。

语法: MAPE(Ft , At )

参数

这里。

  • Ft : 它代表预测值
  • At : 它代表实际值

例子

# Create a dataframe
dataframe <- data.frame(At=c(15, 40, 41, 32,
                             48, 28, 21, 47, 36,
                             37, 11, 14),
                   Ft=c(32, 41, 43, 54, 66, 51,
                        46, 45, 37, 33, 25, 26))
 
# Print the dataframe
dataframe

输出

如何在R语言中计算MAPE

现在为了找出上述数据框架的MAPE,我们可以使用MAPE()函数。

# Import library
library("MLmetrics")
 
# Create a dataframe
dataframe <- data.frame(At=c(15, 40, 41, 32,
                             48, 28, 21, 47,
                             36, 37, 11, 14),
                   Ft=c(32, 41, 43, 54, 66,
                        51, 46, 45, 37, 33,
                        25, 26))
 
# Compute MAPE
MAPE(dataframeFt, dataframeAt)

输出

如何在R语言中计算MAPE

因此,MAPE值等于54.915 %。

方法2:创建一个自定义函数

我们可以创建自己的函数来确定MAPE。

例子

首先,让我们创建一个包含两列的数据框架。一栏是实际值,另一栏是预测值。

# Create a dataframe
dataframe <- data.frame(At=c(15, 40, 41, 32, 48,
                             28, 21, 47, 36, 37,
                             11, 14),
                   Ft=c(32, 41, 43, 54, 66, 51,
                        46, 45, 37, 33, 25, 26))
 
# Print the dataframe
dataframe

输出

如何在R语言中计算MAPE

现在我们需要创建一个函数,为上述创建的数据框架计算MAPE。

请注意,(1 / n) * Σ(|At - Ft | / |At |)等同于.的平均值。

abs(( dataframeAt-dataframeFt) / dataframe$At)

因此,我们可以在R中使用mean()函数。这个函数的语法如下。

语法: mean(vect, na.rm)

参数。

  • vect。它代表数字向量
  • na.rm。忽略NA值的布尔值

现在我们可以把这个值乘以100,然后从函数中返回最终值。

# Custom function that computes
# MAPE of the passed dataframe
calculateMAPE <- function(dataframe) {
         
        result = mean(abs((dataframeAt-dataframeFt)
                          /dataframe$At)) * 100
        return(result)
}
 
# Create a dataframe
dataframe <- data.frame(At=c(15, 40, 41, 32,
                             48, 28, 21, 47,
                             36, 37, 11, 14),
                   Ft=c(32, 41, 43, 54, 66,
                        51, 46, 45, 37, 33,
                        25, 26))
 
# calculate MAPE
result = calculateMAPE(dataframe)
 
# Print the result
print(result)

输出

如何在R语言中计算MAPE

因此,MAPE值等于54.915 %。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程