En los últimos años, la preocupación por el cambio climático ha impulsado a muchos países a buscar alternativas sostenibles para la producción de energía. Colombia, con su gran potencial en recursos naturales renovables como la energía solar, eólica e hidráulica, tiene una oportunidad única de reducir su dependencia de los combustibles fósiles y contribuir a la reducción de emisiones de CO₂. No obstante, el país enfrenta obstáculos significativos, como la falta de infraestructura y la resistencia a adoptar nuevas tecnologías. Este estudio se enfoca en evaluar cómo la adopción de energías renovables ha influido en la disminución de emisiones de dióxido de carbono (CO₂) en los municipios rurales de Colombia entre 2013 y 2023
El problema principal que aborda este proyecto es la falta de datos cuantitativos claros sobre el impacto que las energías renovables han tenido en la reducción de emisiones de CO₂ en municipios rurales. Aunque existen políticas y programas que promueven la transición energética, no se ha medido con precisión el efecto directo de estas iniciativas en términos de reducción de emisiones contaminantes. Por ello, este estudio se enfoca en analizar y comparar los niveles de CO₂ en municipios que han implementado energías renovables frente a aquellos que aún dependen de fuentes fósiles. Al mismo tiempo, se evaluará el impacto económico local, con el fin de identificar tendencias que apoyen la creación de políticas públicas más efectivas.
A partir del análisis preliminar de los datos, se espera identificar una tendencia clara de reducción en las emisiones de CO₂ en los municipios que han adoptado energías renovables. Además, se anticipa que esta reducción estará acompañada de una menor variabilidad en los datos, lo que podría indicar una adopción más consistente de tecnologías limpias en ciertas regiones. Por otro lado, los municipios que aún dependen de combustibles fósiles probablemente presenten mayores niveles de emisiones y una mayor dispersión en los datos, reflejando la ineficiencia de estas fuentes energéticas. Estos primeros resultados permitirán formular recomendaciones iniciales para fortalecer la transición hacia energías renovables en el país, enfocándose en la reducción de CO₂ como una prioridad.
Para el análisis descriptivo de los datos recolectados, algunas métricas como medidas de tendencia central, medidas de dispersión y para la visualización de datos algunos gráficos con el fin de obtener una visión clara del impacto de las energías renovables en las emisiones de CO₂:
Para las variables cuantitativas procedemos a encontrar la media, mediana, desviación estandar y varianza.
###Análisis de variables cuantitativas
## Warning in fun(libname, pkgname): couldn't connect to display ":0"
## Descriptive Statistics
## datosProbC02$Capacidad
## N: 158
##
## Capacidad
## ----------------- -----------
## Mean 37.97
## Std.Dev 78.07
## Min 0.01
## Q1 2.25
## Median 9.90
## Q3 21.00
## Max 700.00
## MAD 13.34
## IQR 18.48
## CV 2.06
## Skewness 4.67
## SE.Skewness 0.19
## Kurtosis 31.68
## N.Valid 158.00
## Pct.Valid 100.00
# Crear el diagrama de cajas (boxplot) ajustando el rango del eje Y
boxplot(datosProbC02$Capacidad,
main="Diagrama de Cajas con Percentiles",
ylab="Capacidad",
col="lightblue",
outline=FALSE, # No mostrar outliers dentro de la caja principal
ylim=c(0, 100)) # Ajustar el rango del eje Y para una mejor visibilidad
# Calcular percentiles
percentiles <- quantile(datosProbC02$Capacidad, probs = c(0.25, 0.50, 0.75, 0.90))
# Agregar líneas para los percentiles
abline(h=percentiles[1], col="blue", lty=2, lwd=2) # Percentil 25 (Q1)
abline(h=percentiles[2], col="red", lty=2, lwd=2) # Percentil 50 (Mediana)
abline(h=percentiles[3], col="green", lty=2, lwd=2) # Percentil 75 (Q3)
abline(h=percentiles[4], col="purple", lty=2, lwd=2) # Percentil 90
# Añadir los outliers por separado
points(datosProbC02$Capacidad[datosProbC02$Capacidad > 100],
col="red", pch=16) # Mostrar outliers por encima de 100La media es 37.97, pero la mediana es 9.90, lo que indica que los datos están sesgados hacia valores altos (algunos valores extremos elevan la media).
La desviación estándar de 78.07 sugiere una gran variabilidad en los datos.
La asimetría positiva (4.67) y la curtosis alta (31.68) confirman la presencia de valores atípicos significativos.
El máximo de 700 y el mínimo de 0.01 refuerzan esta variabilidad y la distribución asimétrica.
## Descriptive Statistics
## datosProbC02$`Energía [kWh/día]`
## N: 158
##
## Energía [kWh/día]
## ----------------- ---------------------
## Mean 231296.03
## Std.Dev 507038.54
## Min 21.00
## Q1 10800.00
## Median 47520.00
## Q3 114816.00
## Max 3360000.00
## MAD 66361.18
## IQR 101460.00
## CV 2.19
## Skewness 3.59
## SE.Skewness 0.19
## Kurtosis 14.36
## N.Valid 158.00
## Pct.Valid 100.00
# Datos extraídos de la tabla de Energía
estadisticas_energia <- data.frame(
Estadística = c("Media", "Desv. Estándar", "Mediana", "Máximo", "Mínimo", "Q1", "Q3"),
Valor = c(231296.03, 507038.54, 47520.00, 3360000.00, 21.00, 10800.00, 114816.00)
)
# Librerías
library(ggplot2)
# Crear gráfico de barras para Energía
ggplot(estadisticas_energia, aes(x = Estadística, y = Valor)) +
geom_bar(stat = "identity", fill = "darkorange") +
theme_minimal() +
labs(title = "Estadísticas Descriptivas de la Energía [kWh/día]",
x = "Estadística",
y = "Valor") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))Media: El consumo promedio de energía es alto, con 231,296.03 kWh/día.
Desviación Estándar: Existe una gran variabilidad en los datos, con una desviación de 507,038.54 kWh/día.
Mediana: El valor central es significativamente menor que la media, siendo 47,520.00 kWh/día, lo que sugiere la presencia de algunos valores muy altos que elevan el promedio.
Máximo: El valor máximo es extremadamente alto, alcanzando 3,360,000.00 kWh/día.
Simetría: La distribución está muy sesgada hacia la derecha, lo que indica que hay valores extremos que distorsionan la media.
## Descriptive Statistics
## datosProbC02$Usuarios
## N: 158
##
## Usuarios
## ----------------- -----------
## Mean 40109.06
## Std.Dev 87925.82
## Min 4.00
## Q1 1873.00
## Median 8240.00
## Q3 19910.00
## Max 582659.00
## MAD 11507.20
## IQR 17594.00
## CV 2.19
## Skewness 3.59
## SE.Skewness 0.19
## Kurtosis 14.36
## N.Valid 158.00
## Pct.Valid 100.00
# Crear el diagrama de cajas (boxplot) ajustando el rango del eje Y
boxplot(datosProbC02$Usuarios,
main = "Diagrama de Cajas con Percentiles - Usuarios",
ylab = "Usuarios",
col = "lightblue",
outline = FALSE, # No mostrar outliers dentro de la caja principal
ylim = c(0, 100000)) # Ajustar el rango del eje Y para una mejor visibilidad
# Calcular percentiles
percentiles <- quantile(datosProbC02$Usuarios, probs = c(0.25, 0.50, 0.75, 0.90))
# Agregar líneas para los percentiles
abline(h = percentiles[1], col = "blue", lty = 2, lwd = 2) # Percentil 25 (Q1)
abline(h = percentiles[2], col = "red", lty = 2, lwd = 2) # Percentil 50 (Mediana)
abline(h = percentiles[3], col = "green", lty = 2, lwd = 2) # Percentil 75 (Q3)
abline(h = percentiles[4], col = "purple", lty = 2, lwd = 2) # Percentil 90
# Añadir los outliers por separado
points(datosProbC02$Usuarios[datosProbC02$Usuarios > 100000],
col = "red", pch = 16) # Mostrar outliers por encima de 100000## Descriptive Statistics
## datosProbC02$`Inversión estimada [COP]`
## N: 158
##
## Inversión estimada [COP]
## ----------------- ----------------------------
## Mean 145058220253.16
## Std.Dev 293830287083.14
## Min 9800000.00
## Q1 9460000000.00
## Median 39632500000.00
## Q3 85570000000.00
## Max 2625000000000.00
## MAD 51879880500.00
## IQR 76056250000.00
## CV 2.03
## Skewness 4.61
## SE.Skewness 0.19
## Kurtosis 31.06
## N.Valid 158.00
## Pct.Valid 100.00
# Crear un diagrama de cajas para la Inversión estimada
boxplot(datosProbC02$`Inversión estimada [COP]`,
main="Diagrama de Cajas - Inversión estimada [COP]",
ylab="Inversión estimada [COP]",
col="lightblue",
outline=FALSE)La media es 145.06 mil millones de COP, mientras que la mediana es 39.63 mil millones de COP, lo que indica que la media está influenciada por valores extremadamente altos.
La desviación estándar de 293.83 mil millones de COP refleja una gran variabilidad en los datos.
La asimetría positiva (4.61) y la curtosis alta (31.06) sugieren que la distribución está fuertemente sesgada hacia la derecha, con valores extremos elevados.
El máximo es 2.62 billones de COP, lo que confirma la presencia de valores atípicos muy altos.
## Descriptive Statistics
## datosProbC02$`Empleos estimados`
## N: 158
##
## Empleos estimados
## ----------------- ---------------------
## Mean 221.61
## Std.Dev 485.17
## Min 0.00
## Q1 16.00
## Median 69.00
## Q3 146.00
## Max 4872.00
## MAD 91.92
## IQR 128.25
## CV 2.19
## Skewness 6.12
## SE.Skewness 0.19
## Kurtosis 51.67
## N.Valid 158.00
## Pct.Valid 100.00
# Crear un diagrama de cajas para Empleos estimados
boxplot(datosProbC02$`Empleos estimados`,
main="Diagrama de Cajas - Empleos estimados",
ylab="Empleos estimados",
col="lightgreen",
outline=FALSE)Media: 221.61 empleos.
Mediana: 69 empleos (la mitad de los valores están por debajo de este número).
Desviación estándar: 485.17 empleos (alta variabilidad).
Rango: Desde 0 hasta 4872 empleos (gran diferencia entre mínimo y máximo).
Sesgo: 6.12 (distribución sesgada hacia la derecha, con algunos valores extremadamente altos).
## Descriptive Statistics
## datosProbC02$`Emisiones CO2 [Ton/año]`
## N: 158
##
## Emisiones CO2 [Ton/año]
## ----------------- ---------------------------
## Mean 67538.46
## Std.Dev 148055.23
## Min 6.00
## Q1 3154.00
## Median 13876.00
## Q3 33526.00
## Max 981120.00
## MAD 19377.58
## IQR 29625.75
## CV 2.19
## Skewness 3.59
## SE.Skewness 0.19
## Kurtosis 14.36
## N.Valid 158.00
## Pct.Valid 100.00
# Crear un diagrama de cajas para Emisiones de CO2
boxplot(datosProbC02$`Emisiones CO2 [Ton/año]`,
main="Diagrama de Cajas - Emisiones CO2 [Ton/año]",
ylab="Emisiones CO2 [Ton/año]",
col="lightcoral",
outline=FALSE)Media: 67,538.46 toneladas/año.
Mediana: 13,876 toneladas/año (la mitad de los valores están por debajo de este número).
Desviación estándar: 148,055.23 toneladas/año (mucha dispersión).
Rango: Desde 6 hasta 981,120 toneladas/año (gran diferencia entre mínimo y máximo).
Sesgo: 3.59 (distribución sesgada a la derecha, con algunos valores muy altos).
Encontramos que el tipo de energía con mas proyectos a implementar proviene de la energía solar, que si bien no tiene uno de los mejores rendimientos en cuanto a la cantidad de energia generada en comparación con la energia absorbida, es uno de los que mas se ha estudiado.
ggplot(datosProbC02, aes(x = Tipo, y = Capacidad, fill = Tipo)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Diagrama de Cajas para Tipo de Energía y Capacidad",
x = "Tipo de Energía",
y = "Capacidad de Generación [MW]") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))## [1] "Solar"
Los municipios que mas se han dedicado al apoyo de estos proyectos de energías renovables son el municipio de Pereira en Risaralda y el municipio de Uribia en la guajira.
Pero el departamento que mas proyectos agrupa en sus municipios es el departamento del valle del Cauca.
# Contar el número de proyectos por departamento
projects_per_department <- table(datosProbC02$Departamento)
# Convertirlo a un data frame para usar ggplot
df_projects <- as.data.frame(projects_per_department)
colnames(df_projects) <- c("Departamento", "Cantidad")
# Crear el gráfico de barras para proyectos por departamento
library(ggplot2)
ggplot(df_projects, aes(x = Departamento, y = Cantidad)) +
geom_bar(stat = "identity", fill = "skyblue") +
theme_minimal() +
labs(title = "Cantidad de Proyectos por Departamento",
x = "Departamento",
y = "Cantidad de Proyectos") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))# Contar el número de proyectos por municipio
projects_per_municipio <- table(datosProbC02$Municipio)
# Convertirlo a un data frame para usar ggplot
df_projects_municipio <- as.data.frame(projects_per_municipio)
colnames(df_projects_municipio) <- c("Municipio", "Cantidad")
# Ordenar por cantidad y seleccionar los 3 municipios con más proyectos
df_top3_municipios <- df_projects_municipio[order(-df_projects_municipio$Cantidad), ][1:3, ]
# Crear el gráfico de barras para los 3 municipios con más proyectos
ggplot(df_top3_municipios, aes(x = Municipio, y = Cantidad)) +
geom_bar(stat = "identity", fill = "lightgreen") +
theme_minimal() +
labs(title = "Top 3 Municipios con Más Proyectos",
x = "Municipio",
y = "Cantidad de Proyectos") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))## [1] "VALLE DEL CAUCA"
## [1] "PEREIRA" "URIBIA"