El consumo de gas es un indicador clave para entender el comportamiento energético de un país y planificar la gestión de recursos de manera eficiente. En Ecuador, este recurso juega un papel fundamental tanto en el sector doméstico como en el industrial, por lo que anticipar su demanda futura puede ayudar a optimizar políticas públicas y estrategias empresariales.
Para más información dudes en contactarme, o hasme saber tus
comentarios
mail: jonatj@outlook.com
Este proyecto tiene como objetivo predecir el consumo de gas en Ecuador utilizando técnicas de análisis de series temporale en R. Para ello, se han utilizado datos obtenidos del Banco Central del Ecuador, que proporcionan un registro detallado del consumo en períodos regulares, al mismo tiempo se pretedne desmostra las ventajes del uso del modelo AutoArima que es un algoritmo muy utlizado dentro del forecast en R.
Los datos utilizados en este análisis fueron obtenidos del Banco Central del Ecuador, una fuente confiable y oficial para el registro de indicadores económicos y energéticos del país. La información incluye registros históricos del consumo de gas en Ecuador con periodicidad regular, permitiendo un análisis detallado de la evolución del consumo a lo largo del tiempo.
#Las siguientes librerias se utilizaran para el procesos de analisis de datos
library(tidyverse)
library(forecast)
library(tseries)
library(readxl)
library(gt)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(gt)
Inicialmente, los datos obtenidos no tenían una estructura tabular
adecuada. En su forma original, se asemejaban a un fromato muy parecido
a una estado de resultados, lo que dificultaba su análisis directo, com
tal se realiza un proceso de
Transformacion
#lectura del archivo de Petroleo y Transformacion de Datos
#df1 <- read_xlsx( 'SerieCifrasPetroleras.xlsx', sheet = 'PETRÓLEO', col_names = FALSE)
fila1 <- t(df1[1,])
fill_completed <- fill(as.data.frame(fila1), everything())
df1[1,] <- fill_completed |> t()
new_headers <- paste(df1[1, ], df1[2, ], "1", sep = "-")
new_headers[1] <- 'Cuentas'
df2 <- df1[-c(1, 2), ]
colnames(df2) <- new_headers
df2 <- df2 |>
tidyr::gather('Fechas', 'Valores', -Cuentas) |>
mutate(
Fechas = str_to_title(Fechas),
Valores = round(as.numeric(Valores),2)
)
BD_Gas <- df2 |>
filter(
Cuentas %in% c('Gas Licuado de Petróleo')
) |>
group_by(Fechas) |>
mutate(
indice = row_number()
) |>
ungroup() |>
filter(indice == 3)
head(BD_Gas, 5) |>
data.table:: as.data.table() %>%
gt() %>%
tab_header(title = "Datos del Consumo Interno de Gas",
subtitle = "Estadisticas Resumen")
Datos del Consumo Interno de Gas | |||
Estadisticas Resumen | |||
Cuentas | Fechas | Valores | indice |
---|---|---|---|
Gas Licuado de Petróleo | 2007-Ene-1 | 898.80 | 3 |
Gas Licuado de Petróleo | 2007-Feb-1 | 785.36 | 3 |
Gas Licuado de Petróleo | 2007-Mar-1 | 910.36 | 3 |
Gas Licuado de Petróleo | 2007-Abr-1 | 862.48 | 3 |
Gas Licuado de Petróleo | 2007-May-1 | 966.12 | 3 |
Se crea un objeto TS que hace posible el trabajo con series temporales
ts_gas <- ts(
round(BD_Gas$Valores, 2),
start = c(2007,1),
frequency = 12
)
plot(
ts_gas,
main ="Consumo Interno de Gas Licuado de Petroleo",
ylab = 'Miles de barriles',
xlab = "Años"
)
Se analizó la estructura del conjunto de datos para comprender su composición:
Rango de fechas: 2007-2024
Frecuencia: Mensual 12 observaciones por año.
Variables clave: Fecha y Consumo de Gas en barriles
La gráfica muestra la descomposición aditiva de la serie temporal del consumo de gas en Ecuador en tres componentes principales:
#Descompos
plot(
decompose(ts_gas),
ylab = 'Miles de barriles',
xlab = "Años"
)
Tendencia: Indica un comportamiento general creciente en el consumo a lo largo del tiempo.
Estacionalidad: Evidencia patrones recurrentes en intervalos regulares, que reflejan variaciones estacionales en el consumo.
Ruido: Muestra las fluctuaciones aleatorias no explicadas por la tendencia ni la estacionalidad, con variaciones más marcadas alrededor del año 2020.
Se realizara un proceos de modelado para predecir dos años en el futuro es decir la prediccion abarcara hasta diciembre del 2026
Para modelar la serie temporal porpuesta del consumo de gas de uso domestico en Ecuador, se utilizara el modelo Auto - Arima (AutoRegressive Integrated Moving Average) por motivos practicos se seleciona este algoritmo.
Mencionar que esta tecnica es ampliamente reconocido en el análisis de series temporales debido a su capacidad para capturar patrones de tendencia y estacionalidad.
model_arima <- auto.arima(
ts_gas,
d = 1,
D = 1,
seasonal = TRUE,
stepwise = FALSE,
approximation = FALSE,
trace = FALSE
)
model_arima
## Series: ts_gas
## ARIMA(0,1,1)(0,1,1)[12]
##
## Coefficients:
## ma1 sma1
## -0.6498 -0.8747
## s.e. 0.0678 0.0578
##
## sigma^2 = 927.9: log likelihood = -984.65
## AIC=1975.31 AICc=1975.43 BIC=1985.23
El modelo ajustado es un ARIMA(0,1,1)(0,1,1)[12], lo que indica:
ARIMA(0,1,1): Una parte de promedio móvil (MA) con un desfase de 1, integrada una vez para eliminar tendencias
(0,1,1)[12]: Captura la estacionalidad con un componente MA estacional y una diferencia estacional de 12 meses.
Al graficar la serie temporal en conjuto con los valroes ajustados vemos que la lineas, casi se tocan en todos los puntos loq ue ahce suponer un buen ajuste por parte del metodo Auto Arima
forecast_extra <- forecast(
model_arima,
h = 12*4,
level = c(.95)
)
ajuste <- forecast_extra$fitted
# Graficar la serie real
plot(ts_gas, col = "blue", lwd = 1.5, xlab = "Fecha", ylab = "Valor", main = "Serie Real y Ajustada")
# Añadir la serie ajustada en el mismo gráfico
lines(ajuste, col = "red", lwd = 1.5)
# Añadir una leyenda
legend("topleft", legend = c("Real", "Ajustada"), col = c("blue", "red"), lwd = 2)
Por lo tanto en vista del buen ajuste que tiene el modelo se realiza una predicción de 24 mesees decir una prediccion hasta diciembre del 2027, se puede obtener al mismo tiempo en la gráfica a continuación el intervalo de confianza del 95% y las líneas del mejor ajuste que representa a la media esperada
plot(forecast_extra)
El modelo auto.arima
empleado parapredecir la serie
temporal del comsumo de gas en miles de barriles en de R es una
herramienta muy útil para el análisis y pronóstico la principal razon es
que Automatización en la selección del modelo.
Al manejar un aspecto automatico en el proceso de selección de la mejor configuración del modelo ARIMA (valores de p, d y q), busca la combinación óptima basándose en criterios estadísticos como el AIC (Criterio de Información de Akaike) o el BIC (Criterio de Información Bayesiano). Esto ahorra mucho tiempo y esfuerzo.