Este documento presenta un análisis de las Evaluaciones Agropecuarias Municipales (EVA) de Colombia. El objetivo es examinar los patrones de producción agrícola por grupos de cultivos y identificar los municipios líderes en producción.
Los datos utilizados provienen del sistema EVA del Ministerio de Agricultura y Desarrollo Rural, que recopila información sobre área sembrada, área cosechada, producción y rendimientos a nivel municipal.
# Cargar las librerías necesarias
library(tidyverse) # Para manipulación de datos y visualización
library(ggplot2) # Para gráficos avanzados
library(knitr) # Para tablas en R Markdown
# Leer el archivo CSV con los datos de evaluaciones agropecuarias
eva <- read_csv("Evaluaciones_Agropecuarias_Municipales_EVA_20250603.csv",
col_names = TRUE,
show_col_types = FALSE)
# Mostrar las primeras filas del dataset
head(eva)
# Resumen del rango de años en los datos
cat("Rango de años en los datos:", range(eva$AÑO)[1], "-", range(eva$AÑO)[2])
## Rango de años en los datos: 2006 - 2018
##
## Nombres de las columnas:
## [1] "CÓD. \nDEP."
## [2] "DEPARTAMENTO"
## [3] "CÓD. MUN."
## [4] "MUNICIPIO"
## [5] "GRUPO \nDE CULTIVO"
## [6] "SUBGRUPO \nDE CULTIVO"
## [7] "CULTIVO"
## [8] "DESAGREGACIÓN REGIONAL Y/O SISTEMA PRODUCTIVO"
## [9] "AÑO"
## [10] "PERIODO"
## [11] "Área Sembrada\n(ha)"
## [12] "Área Cosechada\n(ha)"
## [13] "Producción\n(t)"
## [14] "Rendimiento\n(t/ha)"
## [15] "ESTADO FISICO PRODUCCION"
## [16] "NOMBRE \nCIENTIFICO"
## [17] "CICLO DE CULTIVO"
# Seleccionar las columnas relevantes para el análisis
eva %>%
dplyr::select('CÓD. MUN.':'ESTADO FISICO PRODUCCION') -> eva.tmp
# Verificar las columnas seleccionadas
names(eva.tmp)
## [1] "CÓD. MUN."
## [2] "MUNICIPIO"
## [3] "GRUPO \nDE CULTIVO"
## [4] "SUBGRUPO \nDE CULTIVO"
## [5] "CULTIVO"
## [6] "DESAGREGACIÓN REGIONAL Y/O SISTEMA PRODUCTIVO"
## [7] "AÑO"
## [8] "PERIODO"
## [9] "Área Sembrada\n(ha)"
## [10] "Área Cosechada\n(ha)"
## [11] "Producción\n(t)"
## [12] "Rendimiento\n(t/ha)"
## [13] "ESTADO FISICO PRODUCCION"
Para facilitar el análisis, vamos a renombrar las columnas con nombres más manejables:
# Renombrar columnas para facilitar el análisis
new_eva <- eva.tmp %>%
dplyr::rename(
'Cod_Mun' = 'CÓD. MUN.',
'Grupo' = 'GRUPO \nDE CULTIVO',
'Subgrupo' = 'SUBGRUPO \nDE CULTIVO',
'Year' = 'AÑO',
'AreaSembrada' = 'Área Sembrada\n(ha)',
'AreaCosechada' = 'Área Cosechada\n(ha)',
'Produccion' = 'Producción\n(t)',
'Rendimiento' = 'Rendimiento\n(t/ha)',
'Sistema' = 'DESAGREGACIÓN REGIONAL Y/O SISTEMA PRODUCTIVO',
'Estado' = 'ESTADO FISICO PRODUCCION'
)
# Mostrar estructura del dataset limpio
str(new_eva)
## tibble [5,241 × 13] (S3: tbl_df/tbl/data.frame)
## $ Cod_Mun : num [1:5241] 50270 50400 50001 50313 50270 ...
## $ MUNICIPIO : chr [1:5241] "EL DORADO" "LEJANIAS" "VILLAVICENCIO" "GRANADA" ...
## $ Grupo : chr [1:5241] "FRUTALES" "FRUTALES" "FRUTALES" "FRUTALES" ...
## $ Subgrupo : chr [1:5241] "AGUACATE" "AGUACATE" "AGUACATE" "AGUACATE" ...
## $ CULTIVO : chr [1:5241] "AGUACATE" "AGUACATE" "AGUACATE" "AGUACATE" ...
## $ Sistema : chr [1:5241] "AGUACATE" "AGUACATE" "AGUACATE" "AGUACATE" ...
## $ Year : num [1:5241] 2007 2007 2007 2007 2008 ...
## $ PERIODO : chr [1:5241] "2007" "2007" "2007" "2007" ...
## $ AreaSembrada : num [1:5241] 64 44 25 4 72 44 35 13 10 6 ...
## $ AreaCosechada: num [1:5241] 36 0 0 0 35 0 25 0 0 0 ...
## $ Produccion : num [1:5241] 511 0 0 0 490 0 120 0 0 0 ...
## $ Rendimiento : num [1:5241] 14.2 NA NA NA 14 ...
## $ Estado : chr [1:5241] "FRUTO FRESCO" "FRUTO FRESCO" "FRUTO FRESCO" "FRUTO FRESCO" ...
# Calcular la producción total por grupo de cultivo
PT <- new_eva %>%
group_by(Grupo) %>%
summarize(total_produccion = sum(Produccion, na.rm = TRUE)) %>%
arrange(desc(total_produccion))
# Mostrar tabla completa
kable(PT,
col.names = c("Grupo de Cultivo", "Producción Total (t)"),
caption = "Producción Total por Grupo de Cultivo",
format.args = list(big.mark = ","))
Grupo de Cultivo | Producción Total (t) |
---|---|
OTROS PERMANENTES | 7,401,159 |
CEREALES | 7,347,566 |
OLEAGINOSAS | 4,930,163 |
TUBERCULOS Y PLATANOS | 4,241,368 |
FRUTALES | 3,709,320 |
LEGUMINOSAS | 886,089 |
HORTALIZAS | 39,990 |
FORESTALES | 27,755 |
FIBRAS | 382 |
PLANTAS AROMATICAS, CONDIMENTARIAS Y MEDICINALES | 122 |
HONGOS | 0 |
Para el análisis detallado, nos enfocaremos en los grupos con producción superior a 1,000,000 toneladas:
# Filtrar grupos principales (producción > 1,000,000 toneladas)
main.groups <- PT %>%
filter(total_produccion > 1000000)
# Calcular porcentajes
value <- sum(main.groups$total_produccion)
main.groups$percent <- main.groups$total_produccion / value
# Mostrar tabla de grupos principales
kable(main.groups,
col.names = c("Grupo de Cultivo", "Producción Total (t)", "Porcentaje"),
caption = "Grupos Principales de Cultivos (> 1,000,000 t)",
format.args = list(big.mark = ","))
Grupo de Cultivo | Producción Total (t) | Porcentaje |
---|---|---|
OTROS PERMANENTES | 7,401,159 | 0.2678709 |
CEREALES | 7,347,566 | 0.2659312 |
OLEAGINOSAS | 4,930,163 | 0.1784379 |
TUBERCULOS Y PLATANOS | 4,241,368 | 0.1535083 |
FRUTALES | 3,709,320 | 0.1342518 |
# Crear gráfico de pastel para los grupos principales
library(ggplot2)
pie_chart <- ggplot(main.groups, aes(x = "", y = percent, fill = Grupo)) +
geom_bar(width = 1, stat = "identity") +
coord_polar("y", start = 0) +
theme_void() +
labs(title = "Distribución de Producción por Grupo de Cultivo",
subtitle = "Grupos con producción > 1,000,000 toneladas",
fill = "Grupo de Cultivo") +
theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, size = 12),
legend.position = "right")
pie_chart
Distribución de la producción por grupos principales de cultivos
# Identificar el municipio líder en producción para cada grupo de cultivo
leaders <- new_eva %>%
group_by(Grupo, MUNICIPIO) %>%
summarize(total_prod = sum(Produccion, na.rm = TRUE), .groups = "drop") %>%
group_by(Grupo) %>%
slice(which.max(total_prod)) %>%
arrange(desc(total_prod))
# Mostrar tabla de líderes
kable(leaders,
col.names = c("Grupo de Cultivo", "Municipio Líder", "Producción Total (t)"),
caption = "Municipios Líderes por Grupo de Cultivo",
format.args = list(big.mark = ","))
Grupo de Cultivo | Municipio Líder | Producción Total (t) |
---|---|---|
OTROS PERMANENTES | PUERTO LOPEZ | 7,241,891 |
TUBERCULOS Y PLATANOS | FUENTE DE ORO | 1,454,022 |
CEREALES | PUERTO LOPEZ | 1,403,060 |
OLEAGINOSAS | SAN CARLOS DE GUAROA | 1,105,081 |
FRUTALES | LEJANIAS | 896,967 |
LEGUMINOSAS | PUERTO GAITAN | 457,193 |
HORTALIZAS | SAN MARTIN | 30,011 |
FORESTALES | PUERTO LOPEZ | 14,869 |
FIBRAS | CABUYARO | 180 |
PLANTAS AROMATICAS, CONDIMENTARIAS Y MEDICINALES | ACACIAS | 90 |
HONGOS | PUERTO LLERAS | 0 |
# Filtrar municipios con producción superior a 50,000 toneladas
main.leaders <- leaders %>%
filter(total_prod > 50000)
kable(main.leaders,
col.names = c("Grupo de Cultivo", "Municipio", "Producción Total (t)"),
caption = "Municipios con Producción > 50,000 toneladas",
format.args = list(big.mark = ","))
Grupo de Cultivo | Municipio | Producción Total (t) |
---|---|---|
OTROS PERMANENTES | PUERTO LOPEZ | 7,241,891 |
TUBERCULOS Y PLATANOS | FUENTE DE ORO | 1,454,022 |
CEREALES | PUERTO LOPEZ | 1,403,060 |
OLEAGINOSAS | SAN CARLOS DE GUAROA | 1,105,081 |
FRUTALES | LEJANIAS | 896,967 |
LEGUMINOSAS | PUERTO GAITAN | 457,193 |
# Gráfico de barras de municipios líderes
ggplot(data = main.leaders, aes(x = reorder(MUNICIPIO, total_prod), y = total_prod/1000)) +
geom_bar(stat = "identity", fill = "steelblue", alpha = 0.8) +
coord_flip() +
labs(title = "Principales Municipios Productores",
subtitle = "Producción > 50,000 toneladas",
x = "Municipio",
y = "Producción (Miles de toneladas)",
caption = "Fuente: EVA - Minagricultura") +
theme_minimal() +
theme(plot.title = element_text(size = 14, face = "bold"),
plot.subtitle = element_text(size = 12),
axis.text.y = element_text(size = 10))
Municipios líderes en producción agropecuaria
Como ejemplo específico, analizaremos la evolución temporal de la producción de arroz en Puerto López, uno de los municipios destacados:
# Filtrar datos de arroz en Puerto López
puerto_lopez_arroz <- new_eva %>%
filter(MUNICIPIO == "PUERTO LOPEZ" & CULTIVO == "ARROZ") %>%
group_by(Year, CULTIVO, MUNICIPIO) %>%
summarize(Produccion = sum(Produccion, na.rm = TRUE), .groups = "drop") %>%
select(MUNICIPIO, CULTIVO, Produccion, Year)
# Mostrar datos
kable(puerto_lopez_arroz,
col.names = c("Municipio", "Cultivo", "Producción (t)", "Año"),
caption = "Producción de Arroz en Puerto López por Año",
format.args = list(big.mark = ","))
Municipio | Cultivo | Producción (t) | Año |
---|---|---|---|
PUERTO LOPEZ | ARROZ | 24,220 | 2,006 |
PUERTO LOPEZ | ARROZ | 86,087 | 2,007 |
PUERTO LOPEZ | ARROZ | 97,476 | 2,008 |
PUERTO LOPEZ | ARROZ | 102,523 | 2,009 |
PUERTO LOPEZ | ARROZ | 88,472 | 2,010 |
PUERTO LOPEZ | ARROZ | 71,908 | 2,011 |
PUERTO LOPEZ | ARROZ | 86,140 | 2,012 |
PUERTO LOPEZ | ARROZ | 56,520 | 2,013 |
PUERTO LOPEZ | ARROZ | 40,227 | 2,014 |
PUERTO LOPEZ | ARROZ | 73,401 | 2,015 |
PUERTO LOPEZ | ARROZ | 85,885 | 2,016 |
PUERTO LOPEZ | ARROZ | 75,592 | 2,017 |
PUERTO LOPEZ | ARROZ | 36,284 | 2,018 |
# Gráfico de evolución temporal
g_arroz <- ggplot(data = puerto_lopez_arroz, aes(x = Year, y = Produccion / 1000)) +
geom_bar(stat = 'identity', fill = "darkgreen", alpha = 0.7) +
geom_line(aes(group = 1), color = "red", size = 1.2) +
geom_point(color = "red", size = 2) +
labs(title = "Evolución de la Producción de Arroz en Puerto López",
subtitle = "Período 2006-2018",
x = "Año",
y = "Producción (Miles de toneladas)",
caption = "Fuente: EVA - Minagricultura") +
theme_minimal() +
theme(plot.title = element_text(size = 14, face = "bold"),
plot.subtitle = element_text(size = 12),
axis.text.x = element_text(angle = 45, hjust = 1))
g_arroz
Evolución de la producción de arroz en Puerto López (2006-2018)
Del análisis de los datos de evaluaciones agropecuarias municipales, podemos concluir:
Diversidad productiva: Colombia presenta una gran diversidad en grupos de cultivos, con algunos grupos dominando la producción nacional.
Concentración geográfica: Ciertos municipios se destacan como líderes en la producción de grupos específicos de cultivos, lo que sugiere ventajas comparativas regionales.
Variabilidad temporal: Como se observa en el caso de Puerto López, la producción puede mostrar variaciones significativas año tras año, posiblemente debido a factores climáticos, económicos o de política agrícola.
Importancia del monitoreo: El sistema EVA proporciona información valiosa para la toma de decisiones en política agrícola y para entender las dinámicas productivas del sector agropecuario colombiano.
Este análisis fue realizado utilizando R y las librerías del tidyverse. Los datos provienen del sistema de Evaluaciones Agropecuarias Municipales (EVA) del Ministerio de Agricultura y Desarrollo Rural de Colombia.