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 %.