# Carga de paquetes
library(forecast)
# Carga de los datos
library(readxl)
datos <- read_excel("C:/Users/julie/OneDrive/Escritorio/ejemploIPIR_R.xlsx")
View(datos)
# Asegúrate de que la columna de fecha esté en formato Date
datos$fecha <- as.Date(datos$fecha)
# Convertir la serie de tiempo a un objeto de serie temporal si aún no lo está
datos$IPIR <- ts(datos$IPIR)
# Obtener la longitud de la serie de tiempo
longitud <- length(datos$IPIR)
# Dividir los datos en conjunto de entrenamiento y prueba
# Supongamos que queremos usar los últimos 3 meses como datos de prueba
# Crear ventana de entrenamiento (suponiendo que los datos están en formato de serie temporal)
datos_entrenamiento <- window(datos$IPIR, end = length(datos$IPIR) - 3)
# Crear ventana de prueba
datos_prueba <- window(datos$IPIR, start = length(datos$IPIR) - 2)
# Ajuste del modelo ARIMA utilizando solo los datos de entrenamiento
modelo_arima <- auto.arima(datos_entrenamiento)
# Pronóstico dentro de muestra para los datos de prueba
pronostico <- forecast(modelo_arima, h = length(datos_prueba))
# Extraer las tres últimas observaciones de los datos originales
datos_originales <- tail(datos_prueba, 3)
# Crear una tabla con los datos originales y los pronósticos
tabla <- data.frame(Original = datos_originales, Pronostico = pronostico[["mean"]])
# Mostrar la tabla
print(tabla)
## Original Pronostico
## 1 124.6 122.8804
## 2 124.4 121.4669
## 3 120.3 120.6740
# Forma 1. Calcular RMSE y MAE
rmse <- sqrt(mean((pronostico$mean - datos_prueba)^2))
mae <- mean(abs(pronostico$mean - datos_prueba))
# Imprimir RMSE y MAE
cat("RMSE:", rmse, "\n")
## RMSE: 1.974826
cat("MAE:", mae, "\n")
## MAE: 1.675551
# Forma 2. calcular RMSE Y MAE
accuracy(modelo_arima)
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.979625 6.571578 4.76934 0.5292247 4.992689 0.934284 -0.02171732
# Forma 2. calcular RMSE Y MAE teniendo en cuenta el set de entrenamiento.
accuracy(modelo_arima)
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.979625 6.571578 4.76934 0.5292247 4.992689 0.934284 -0.02171732