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
输出 。
现在为了找出上述数据框架的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)
输出 。
因此,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
输出 。
现在我们需要创建一个函数,为上述创建的数据框架计算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)
输出 。
因此,MAPE值等于54.915 %。