Ejemplo-Métricas de evaluación

Se utiliza la serie mensual del IPIR.

Cargar datos

library(readxl) 
datos <- read_excel("D:/datarima.xlsx")

2. Declarar la base de datos en serie de tiempo

No se tomarán los últimos 3 registros correspondientes a los últimos 3 meses del año 2022 con el fin de pronosticarlos y luego proceder a comparar los pronosticos con los registros reales con el uso de la validación cruzada. Las variables tienen en total 108 registros en su serie original, pero solo se tomaran los primeros 105 registros es decir desde enero 2014 hasta sep2022.

ipir<-ts(datos$IPIR [1:105], frequency=12, start=c(2014,1))

3. Instalar y cargar librerias necesarias para el proceso

#Recordar que previo al cargue de librerias estas se deben instalar primero.
#Luego si cargarlas:
library(forecast)# Contiene el modelo ARIMA
library(tseries) #Para series de tiempo
library(TSA)     #Para series de tiempo
library(urca)    #Para hacer el Test de Raiz Unitaria (detectar hay o no estacionariedad)
library(ggplot2) #Para hacer gráficos
library(dplyr)   #Para la manipulación de datos (filtrar, seleccionar, agregar, transformar)
library(stats)   #Se usa para diversas pruebas estadísticas (medias,varianza, arima,etc)
library(seasonal)#Para calcular la serie ajustada de estacionalidad

APLICACIÓN DEL MODELO ARIMA

PASO 1:IDENTIFICACIÓN

#Utilizamos la función decompose (del paquete cargado previamente "STATS")

ipir_decomp <- decompose(ipir)
#Para hacer este proceso se usa la libreria seasonal instalada y cargada previamente.
#Colocamos el nombre a la nueva variable: ipir_SA (serie ajustada por estacionalidad)
ipir_SA <- seasadj(ipir_decomp)

#Normalmente, lo ideal es diferenciar 1 o 2 veces, intentamos primero con 1 diferencia (en niveles) y graficamos 
#Para observar el comportamiento, debería mostrar una media y varianza constante 
#(no tendencia ni volatilidad)

ipirSA_d1= diff(ipir, differences = 1)
#Corremos la función auto.arima:
auto.arima(ipir_SA)
## Series: ipir_SA 
## ARIMA(0,1,2) 
## 
## Coefficients:
##           ma1      ma2
##       -0.3271  -0.2210
## s.e.   0.0949   0.0909
## 
## sigma^2 = 25.7:  log likelihood = -315.52
## AIC=637.04   AICc=637.28   BIC=644.97

PASO 2 y 3: ESTIMACIÓN DE LOS POSIBLES MODELOS

De acuerdo a lo observado en el paso 1, podemos comparar los siguientes 2 modelos:

Model2= (0,1,2) Model3= (1,1,1)

Model2=Arima(ipir_SA,order = c(0,1,2))
Model3=Arima(ipir_SA,order = c(1,1,2))

PASO 4: PRONÓSTICO Y EVALUACIÓN

A continuación, se predecirá el IPIR de los 12 meses siguientes con los dos modelos ajustados y se comparará las predicciones con las observaciones reales. Esto con el fin de decidir cuál de los dos tiene mejor poder predictivo.

pron.m2 = predict(Model2, n.ahead=3) 
pron.m3<-predict(Model3,n.ahead = 3)

Pronóstico Modelo 2

library(knitr)
kable(data.frame(Meses=c("10","11","12"),Pronostico=round(pron.m2$pred,3),Reales=datos[106:108,2]))
Meses Pronostico IPIR
10 120.456 124.5730
11 121.021 124.3610
12 121.021 120.3366

Pronóstico Modelo 3

library(knitr)
kable(data.frame(Meses=c("10","11","12"),Pronostico=round(pron.m3$pred,3),Reales=datos[106:108,2]))
Meses Pronostico IPIR
10 120.461 124.5730
11 121.078 124.3610
12 121.047 120.3366

A continuación se presentará las estadísticas correspondientes al Error Cuadratico Medio (MAE) y EL RMSE, que es el promedio de los errores al cuadrado, para concluir qué modelo predice mejor el IPIR en Colombia.

#Se crean los datos de pronostico y los datos reales u observados
pronosticom2= c(120.456, 121.021, 121.021)
pronosticom3= c(120.461, 121.078, 121.047)
observados= c(124.573, 124.361, 120.337)

# calcular MAE Modelo 2
MAEm2 <- mean(abs(pronosticom2 - observados))

# calcular MAE Modelo 3
MAEm3 <- mean(abs(pronosticom3 - observados))

# calcular RMSE Modelo 2
RMSEm2 <- sqrt(mean((pronosticom2 - observados)^2))

# calcular RMSE Modelo 3
RMSEm3 <- sqrt(mean((pronosticom3 - observados)^2))

#Creamos la tabla que resume las métricas calculadas
kable(data.frame(Modelo=c("Dos","Tres"),MAE=round(c(MAEm2,MAEm3),2),RMSE=round(c(RMSEm2,RMSEm3),2)))
Modelo MAE RMSE
Dos 2.71 3.09
Tres 2.70 3.07

CONCLUSIÓN: De acuerdo al MAE y RMSE tiene mayor capacidad de pronóstico el modelo 3.

PARA TENER EN CUENTA:

El MAE (Mean Absolute Error) y el RMSE (Root Mean Squared Error) son dos medidas de evaluación de errores utilizadas comúnmente en la evaluación de modelos de predicción o regresión.

El MAE es una medida de la magnitud promedio de los errores en una predicción. Se calcula como la media de los valores absolutos de las diferencias entre las predicciones y los valores observados. Un MAE bajo indica que el modelo está produciendo predicciones precisas.

El RMSE, por otro lado, es una medida de la magnitud promedio de los errores al cuadrado en una predicción. Se calcula como la raíz cuadrada de la media de las diferencias al cuadrado entre las predicciones y los valores observados. Un RMSE bajo también indica que el modelo está produciendo predicciones precisas, pero penaliza más los errores grandes que el MAE.

En resumen, el MAE y el RMSE son medidas útiles para evaluar el desempeño de los modelos de predicción o regresión.

El MAE es útil cuando los errores tienen una distribución simétrica y penaliza igualmente los errores positivos y negativos.

El RMSE es más adecuado cuando los errores tienen una distribución asimétrica y penaliza más los errores grandes.

Ambas medidas se pueden utilizar para comparar diferentes modelos o para ajustar los parámetros del modelo para mejorar la precisión de las predicciones.


By Julieth Cerón
Predición Económica y Big Data 2023