Cómo calcular MAPE en R

En este artículo, vamos a ver cómo calcular MAPE en el lenguaje de programación R.

MAPE:

Es un acrónimo de error porcentual absoluto medio. MAPE se utiliza para medir la precisión de un sistema de pronóstico. La precisión se mide en términos de porcentaje. MAPE se puede calcular utilizando la siguiente fórmula:

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 es bastante común y se usa para pronosticar errores. Funciona de manera más eficiente cuando sus extremos no existen en los datos.

Método 1: usar el paquete MLmetrics

En R, el paquete MLmetrics nos proporciona la función MAPE() mediante la cual podemos calcular el MAPE en R. Esta función tiene la siguiente sintaxis:

Sintaxis: MAPE(F t , A t )

Parámetros:

Aquí,

  • F t : Representa valores pronosticados
  • A t : Representa valores reales

 Ejemplo:

R

# 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

Producción:

 

Ahora, para averiguar el MAPE del marco de datos anterior, podemos usar la función MAPE():

R

# 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(dataframe$Ft, dataframe$At)

Producción:

 

Por lo tanto, el valor de MAPE resulta ser igual a 54,915 %.

Método 2: crear una función personalizada

Podemos crear nuestra propia función para determinar MAPE. 

Ejemplo:

En primer lugar, creemos un marco de datos que contenga dos columnas. Una columna contiene valores reales y la otra columna contiene valores pronosticados.  

R

# 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

Producción:

 

Ahora necesitamos crear una función que calcule MAPE para el marco de datos creado anteriormente:

Note que (1 / n) * Σ(|A t – F t | / |A t |) es equivalente al valor medio de :

abs(( dataframe$At-dataframe$Ft) / dataframe$At)

Por lo tanto, podemos significar() función en R. Esta función tiene la siguiente sintaxis:

Sintaxis: mean(vect, na.rm)

Parámetros:

  • vect: Representa el vector numérico
  • na.rm: valor booleano para ignorar el valor NA

Ahora podemos multiplicar este valor por 100 y devolver el valor final de la función.

R

# Custom function that computes
# MAPE of the passed dataframe
calculateMAPE <- function(dataframe) {
         
        result = mean(abs((dataframe$At-dataframe$Ft)
                          /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)

Producción:

 

 Por lo tanto, el valor de MAPE resulta ser igual a 54,915 %.

Publicación traducida automáticamente

Artículo escrito por bhuwanesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *