Las bases de datos suministradas contienen información histórica sobre los precios de distintos energéticos —petróleo Brent, gas natural, carbón y gasolina motor corriente— así como el índice de precios al consumidor (IPC) para Colombia. Cada conjunto de datos cuenta con una estructura homogénea, conformada por dos columnas: una variable de tipo fecha, que identifica el día o el mes de registro, y una variable numérica (double) que representa el valor o precio correspondiente del bien o índice en cuestión.
En el caso de las series de precios de los combustibles —carbón, gas natural, gasolina y petróleo— cada base de datos contiene 8.579 observaciones, correspondientes al período comprendido entre enero de 2000 y enero de 2024, con una frecuencia diaria. Estas series permiten analizar la evolución de los precios energéticos a lo largo de más de dos décadas, incluyendo eventos de alta volatilidad en los mercados internacionales y posibles impactos de choques económicos o geopolíticos. Las variables cuantitativas (precio_carbon, precio_gas_natural, precio_gasolina y precio_petroleo) son de tipo continuo y registran los valores en unidades monetarias, mientras que la variable fecha se encuentra correctamente formateada en tipo date, lo que facilita su uso en análisis de series temporales.
Por su parte, la base de datos del Índice de Precios al Consumidor (IPC) presenta 847 observaciones, correspondientes al período comprendido entre julio de 1954 y enero de 2025. La frecuencia de registro es mensual, lo que la distingue de las demás series. El IPC constituye una medida agregada del nivel general de precios en la economía colombiana, por lo que su inclusión en el análisis permitirá estudiar la relación entre la evolución de los precios de los combustibles y el comportamiento inflacionario del país a lo largo del tiempo.
En conjunto, estas cinco bases de datos ofrecen una visión amplia y detallada sobre la dinámica de precios de los principales energéticos y su posible vínculo con la inflación. Antes de proceder con análisis más avanzados —como la inspección de tendencias, estacionalidades o correlaciones entre las series— es importante resaltar que las variables se encuentran correctamente estructuradas, no presentan inconsistencias en su formato y abarcan un horizonte temporal suficiente para realizar estudios de largo plazo y comparativos entre distintas fuentes energéticas.
Tabla de estadísticas descriptivas donde se evidencian el número de observaciones, promedio, min, max, desviación estandar de los precios nominales y reales de los combustibles, Esta información se explica en la siguiente tabla:
# 2.1 Estadísticas descriptivas (tabla 5x9)
library(dplyr)
# dataframe de trabajo
df <- promedios_mensuales_reales
# ajustar según el sufijo real que tengas (año_base y mes_base usados antes)
año_base <- 2023
mes_base <- 12
sufijo_real <- paste0("_", año_base, "_", mes_base, "_transformada")
# bienes nominales (asumidos en tu tabla)
bienes <- c("precio_carbon", "precio_gas_natural", "precio_gasolina", "precio_petroleo")
# construir lista de variables a incluir: nominales, reales y ipc
vars_nominales <- bienes
vars_reales <- paste0(bienes, sufijo_real)
vars_incluir <- c(vars_nominales, vars_reales, "ipc") # 4 + 4 + 1 = 9 filas
# verificar que existen en df (si no, avisar)
missing_cols <- setdiff(vars_incluir, names(df))
if (length(missing_cols) > 0) {
stop("Faltan columnas en el dataframe: ", paste(missing_cols, collapse = ", "))
}
# función para calcular métricas para una variable
calc_stats <- function(x) {
xnum <- as.numeric(x)
n_obs <- sum(!is.na(xnum))
mean_v <- mean(xnum, na.rm = TRUE)
min_v <- min(xnum, na.rm = TRUE)
max_v <- max(xnum, na.rm = TRUE)
sd_v <- sd(xnum, na.rm = TRUE)
tibble(n_obs = n_obs, mean = mean_v, min = min_v, max = max_v, sd = sd_v)
}
# construir tabla final
tabla_stats <- bind_rows(
lapply(vars_incluir, function(v) {
stats <- calc_stats(df[[v]])
stats <- stats %>% mutate(variable = v) %>% select(variable, everything())
stats
})
) %>% relocate(variable)
# Mostrar tabla
print(tabla_stats)
## # A tibble: 9 × 6
## variable n_obs mean min max sd
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 precio_carbon 289 97.0 74.2 123. 12.7
## 2 precio_gas_natural 289 118. 98.6 138. 8.37
## 3 precio_gasolina 289 109. 61.6 166. 25.8
## 4 precio_petroleo 289 108. 91.2 130. 7.98
## 5 precio_carbon_2023_12_transformada 289 178. 101. 270. 32.8
## 6 precio_gas_natural_2023_12_transformada 289 222. 97.8 367. 55.8
## 7 precio_gasolina_2023_12_transformada 289 194. 151. 238. 14.2
## 8 precio_petroleo_2023_12_transformada 289 202. 105. 328. 49.3
## 9 ipc 289 79.2 40.3 139. 24.1
Las series consolidadas contienen 289 observaciones mensuales para los precios del carbón, gas natural, gasolina, petróleo e IPC. Las variables con el sufijo “_2023_12_transformada” corresponden a precios reales (ajustados a diciembre de 2023), mientras que las demás representan los precios nominales.
En términos nominales, los precios promedio más altos corresponden al gas natural (≈118,3) y a la gasolina (≈109,2), mientras que el carbón presenta los valores más bajos (≈97,0). La gasolina es el energético con mayor variabilidad mensual, lo que refleja su sensibilidad ante cambios de mercado y políticas internas.
Al considerar los precios reales, los valores promedio aumentan debido al ajuste por inflación, destacando el petróleo (≈202,3) y el gas natural (≈221,9). Las desviaciones estándar también crecen, indicando una mayor volatilidad real una vez eliminados los efectos del incremento general de precios.
El IPC muestra un comportamiento ascendente a lo largo del tiempo, con un promedio de 79,2, reflejando la tendencia inflacionaria de largo plazo. En conjunto, los resultados evidencian que gran parte del aumento en los precios nominales se explica por la inflación, mientras que los precios reales permiten observar con mayor precisión los cambios en el valor efectivo de los energéticos.
# 2.2 Scatter (carbón vs gasolina) — precios REALES para un año determinado
library(ggplot2)
library(dplyr)
# df de trabajo
df <- promedios_mensuales_reales
# año a graficar
year_plot <- 2023
# columnas reales (ajusta sufijo si cambias año_base/mes_base)
año_base <- 2023
mes_base <- 12
sufijo_real <- paste0("_", año_base, "_", mes_base, "_transformada")
col_carbon_real <- paste0("precio_carbon", sufijo_real)
col_gasolina_real <- paste0("precio_gasolina", sufijo_real)
# validación
if (!(col_carbon_real %in% names(df)) | !(col_gasolina_real %in% names(df))) {
stop("No se encontraron las columnas reales necesarias: ", col_carbon_real, " o ", col_gasolina_real)
}
# preparar datos para el año seleccionado
df_plot <- df %>%
filter(año == year_plot) %>%
select(año, mes, !!sym(col_carbon_real), !!sym(col_gasolina_real)) %>%
rename(carbon_real = !!sym(col_carbon_real),
gasolina_real = !!sym(col_gasolina_real))
# crear scatter con línea de regresión
p_scatter <- ggplot(df_plot, aes(x = carbon_real, y = gasolina_real)) +
geom_point(size = 2, alpha = 0.8) +
geom_smooth(method = "lm", se = TRUE, formula = y ~ x) +
labs(
title = paste0("Scatter: Precio real Carbón vs Gasolina (año ", year_plot, ")"),
subtitle = paste0("Precios en valores constantes (base: ", año_base, "-", sprintf("%02d", mes_base), ")"),
x = "Precio real del Carbón",
y = "Precio real de la Gasolina",
caption = "Fuente: promedios_mensuales_reales"
) +
theme_minimal(base_size = 12) +
theme(plot.title = element_text(face = "bold")) +
geom_text(
data = NULL,
x = Inf, y = -Inf,
label = paste0("Año: ", year_plot),
hjust = 1.1, vjust = -1.1,
size = 3.5
)
# mostrar
print(p_scatter)
El diagrama de dispersión muestra la relación entre el precio real del carbón y el precio real de la gasolina durante el año 2023, expresados en valores constantes con base en diciembre de 2023.
Se observa una ligera relación positiva entre ambas variables: a medida que el precio real del carbón aumenta, el precio real de la gasolina también tiende a incrementarse, aunque de forma moderada y con alta dispersión entre los puntos. La pendiente positiva de la línea de tendencia (en azul) indica una correlación débil, mientras que el área sombreada refleja una amplia incertidumbre, sugiriendo que la asociación no es estadísticamente fuerte.
En términos generales, el gráfico evidencia que, durante 2023, los precios reales de ambos energéticos se movieron de manera similar, pero sin una dependencia clara, posiblemente debido a diferencias en los factores que determinan cada mercado (costos de producción, regulación interna o comportamiento internacional de los precios).
# 2.3 Serie de tiempo (líneas) para un año dado — comparar 4 bienes reales
library(ggplot2)
library(dplyr)
library(tidyr)
# df de trabajo
df <- promedios_mensuales_reales
# año a graficar
year_plot <- 2023
# real cols generadas
año_base <- 2023
mes_base <- 12
sufijo_real <- paste0("_", año_base, "_", mes_base, "_transformada")
cols_reales <- paste0(c("precio_carbon","precio_gas_natural","precio_petroleo","precio_gasolina"), sufijo_real)
# validar existencia
missing_cols <- setdiff(cols_reales, names(df))
if (length(missing_cols) > 0) stop("Faltan columnas reales: ", paste(missing_cols, collapse = ", "))
# preparar datos: una fila por mes y variable en formato largo
df_time <- df %>%
filter(año == year_plot) %>%
select(año, mes, all_of(cols_reales)) %>%
pivot_longer(cols = all_of(cols_reales), names_to = "bien", values_to = "precio_real") %>%
mutate(
# simplificar nombre de bien para leyenda
bien = case_when(
grepl("precio_carbon", bien) ~ "Carbón",
grepl("precio_gas_natural", bien) ~ "Gas Natural",
grepl("precio_petroleo", bien) ~ "Petróleo",
grepl("precio_gasolina", bien) ~ "Gasolina",
TRUE ~ bien
),
mes = as.integer(mes)
)
# Serie de tiempo por mes
p_ts <- ggplot(df_time, aes(x = mes, y = precio_real, color = bien)) +
geom_line(linewidth = 1) +
geom_point(size = 2) +
scale_x_continuous(breaks = 1:12, labels = month.abb) +
labs(
title = paste0("Serie mensual de precios reales por combustible (", year_plot, ")"),
subtitle = paste0("Precios en valores constantes — base: ", año_base, "-", sprintf("%02d", mes_base)),
x = "Mes",
y = "Precio real",
color = "Combustible",
caption = "Fuente: promedios_mensuales_reales"
) +
theme_minimal(base_size = 12) +
theme(plot.title = element_text(face = "bold"))
# mostrar
print(p_ts)
El gráfico muestra la evolución mensual de los precios reales del carbón, gas natural, gasolina y petróleo durante el año 2023, expresados en valores constantes con base diciembre de 2023.
En general, se observa que la gasolina mantiene los precios más altos a lo largo del año, con leves fluctuaciones, alcanzando picos en los meses de marzo, julio y octubre. El gas natural presenta una tendencia algo más irregular, con variaciones marcadas a mediados del año, pero manteniéndose por debajo de la gasolina.
El petróleo muestra un comportamiento más estable, con una leve disminución hacia el cierre del año, mientras que el carbón exhibe los valores más bajos y una tendencia descendente durante la mayor parte de 2023, recuperándose ligeramente en diciembre.
En conjunto, el comportamiento de las series refleja una divergencia moderada entre combustibles, donde las variaciones parecen más asociadas a dinámicas propias de cada mercado que a un patrón común. La estabilidad relativa del petróleo y la caída del carbón contrastan con la mayor volatilidad observada en la gasolina y el gas natural.