Introducción

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.

Carga de Librerías y Datos

# 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)

Exploración Inicial de los Datos

# 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
# Mostrar los nombres de las columnas
cat("\nNombres de las columnas:\n")
## 
## Nombres de las columnas:
names(eva)
##  [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"
head(eva.tmp)

Limpieza y Transformación de Datos

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" ...

Análisis por Grupos de Cultivos

Producción Total por Grupo

# 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 = ","))
Producción Total por Grupo de Cultivo
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

Grupos Principales de Cultivos

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 = ","))
Grupos Principales de Cultivos (> 1,000,000 t)
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

Visualización de la Distribución

# 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

Distribución de la producción por grupos principales de cultivos

Análisis de Municipios Líderes

Identificación de Municipios Líderes por Grupo

# 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 = ","))
Municipios Líderes por Grupo de Cultivo
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

Municipios con Mayor Producción

# 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 = ","))
Municipios con Producción > 50,000 toneladas
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

Municipios líderes en producción agropecuaria

Caso de Estudio: Producción de Arroz en Puerto López

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 = ","))
Producción de Arroz en Puerto López por Año
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)

Evolución de la producción de arroz en Puerto López (2006-2018)

Conclusiones

Del análisis de los datos de evaluaciones agropecuarias municipales, podemos concluir:

  1. Diversidad productiva: Colombia presenta una gran diversidad en grupos de cultivos, con algunos grupos dominando la producción nacional.

  2. 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.

  3. 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.

  4. 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.