Impacto de los Programas del Bienestar en el Capital de los Pequeños y Medianos Productores Agrícolas en Guerrero: Un Enfoque desde la Dinámica de Sistemas 👨‍🌾🌽

El campo mexicano, y en particular el del estado de Guerrero, enfrenta desafíos históricos en términos de rentabilidad, productividad y sostenibilidad. A lo largo de los últimos años, los programas sociales como Producción para el Bienestar, Sembrando Vida y los subsidios para energía o fertilizantes han intentado reducir la vulnerabilidad económica de los pequeños y medianos productores. Sin embargo, el verdadero impacto de estos programas en los ingresos reales de los agricultores es aún poco claro, especialmente cuando se consideran variables dinámicas como la estacionalidad, la reinversión de capital, la productividad laboral o el efecto del clima.

Para explorar esta problemática, se formula la siguiente pregunta de investigación:

¿Cómo afectan los programas de Bienestar al capital acumulado de los pequeños y medianos productores agrícolas en Guerrero, bajo diferentes escenarios de inversión y condiciones climáticas?

Este análisis se enfoca en simular el impacto de cuatro programas federales clave que inciden directamente sobre la capacidad productiva de los agricultores:

El modelo propuesto integra estos programas gubernamentales diferenciando entre apoyos directos (como Sembrando Vida y Producción para el Bienestar) y subsidios que reducen costos (como los de energía y fertilizantes). A través de esta estructura, es posible simular distintos escenarios de producción e inversión bajo condiciones variables, y analizar su efecto sobre el capital agrícola acumulado de los productores agrícolas de Guerrero. De esta forma, se busca representar de manera simplificada pero dinámica cómo interactúan los apoyos públicos, las decisiones de gasto productivo y factores exógenos como el clima para influir en la estabilidad económica del productor rural.

Descripción del Sistema

El modelo desarrollado representa un sistema de relaciones causales entre ingresos, apoyos gubernamentales, decisiones de gasto, inversión y acumulación de capital. Su objetivo es capturar la dinámica económica de los pequeños y medianos productores agrícolas en Guerrero, considerando factores como estacionalidad, productividad laboral y variabilidad climática.

Diagrama de Flujo de Productores Agrícolas en Guerrero

El siguiente diagrama representa gráficamente la lógica del modelo desarrollado. Este diagrama permite entender cómo el ingreso agrícola y los apoyos gubernamentales se transforman en capacidad productiva, y cómo las decisiones de gasto afectan la producción y crecimiento económico rural. También muestra cómo los programas sociales no actúan de forma aislada, sino que su efecto se filtra a través del sistema de ingresos y de gastos para la producción.

El capital del productor es la variable principal (estado). Aumenta por los ingresos del productor y se reduce por dos flujos de salida:

  • Gastos en insumos

  • Presupuesto del hogar

¿A qué le llamamos capital?

Capital se define suma del valor monetario acumulado por el gremio de productores agrícolas en Guerrero.

Ingresos del productor

Se componen de tres elementos principales:

  • Ingreso por ventas, que depende de la toneladas vendidas (calculada como producción total × porcentaje de la producción vendida) y del precio ajustado.

    • Producción total se define por producción por hectárea x número de hectáreas.

    • Precio ajustado se define por precio por productoxfactor estacional (este último también afecta la producción por hectárea).

  • Apoyo del programa Producción para el Bienestar

  • Apoyo financiero del programa Sembrando Vida

Estas entradas están marcadas como flujos positivos hacia el capital.


3. Producción agrícola

La producción por hectárea depende del valor base por hectárea y de los gastos en insumos:

  • Agua

  • Energía

  • Fertilizante

  • Semillas

  • Tecnología

  • Mano de obra

La cantidad invertida en cada insumo es una proporción del capital reinvertido (controlada por la variable tasa de reinversión), y en algunos casos es reducida por subsidios o por condiciones climáticas:

  • El Programa de Energía para el Campo reduce el gasto energético.

  • El Programa de Fertilizantes para el Bienestar disminuye el gasto en fertilizantes.

  • La precipitación reduce el gasto en agua.


4. Gasto en el hogar

El presupuesto para el hogar es una salida fija que se ajusta con base en la inflación. Representa el gasto necesario fuera del proceso productivo.


  1. Ciclos Causales

Capital aumenta el monto de reinversión, el cuál se distribuye en varios gastos específicos:

  • Gasto en agua

  • Gasto en energía

  • Gasto en fertilizante

  • Gasto en semillas

  • Gasto en tecnología

  • Gasto en mano de obra

    Todos estos se suman en Gastos en insumos. Finalmente, los gastos en insumos son una salida del capital, lo que lo reduce. Todos son ciclos de balanceo.

Tras definir la estructura del sistema mediante el diagrama de flujo causal, se construyó el modelo base que formaliza estas relaciones en un código base.

Parámetros

Parámetro Descripción Valor base/Unidad
precioporproducto Precio promedio del producto agrícola 7000 (MXN/ton)
numerohectareas Superficie agrícola utilizada en producción agrícola 470,000 hectáreas
valorbaseporhectarea Producción base por hectárea 2.2 toneladas
porcentajeproduccionvendida Porcentaje de la producción que se comercializa .70 porcentaje de la producción
tasareinversion Proporción del capital reinvertido en insumos 0.25 porcentaje del capital reinvertido
precipitacion Nivel relativo de precipitación 0.2 porcentaje del riego que es reemplazado por lluvia
capacidad.productiva.trabajador Eficiencia por unidad de mano de obra 0.007 mano de obra
coberturabienestar N.º de productores apoyados por Producción para el Bienestar 70,000 personas beneficiarias
montoporapoyobienestar Apoyo monetario por productor 6,000 MXN
coberturasembrandovida N.º de beneficiarios del programa Sembrando Vida 15,000 personas beneficiarias
montoporapoyosembrandovida Apoyo monetario de Sembrando Vida 6,450 MXN
coberturaenergiacampo N.º de beneficiarios del subsidio energético 20,000 personas beneficiarias
montoporapoyoenergiacampo Apoyo total estimado al sector energético agrícola 51,676 MXN
coberturafertilizante N.º de productores que reciben fertilizante 25,000 personas beneficiarias
montoporapoyofertilizante Valor del fertilizante subsidiado por productor 10,000 MXN
proporciongastomanoobra % del capital reinvertido usado en mano de obra 0.60 #porcentaje
proporciongastoagua % del capital reinvertido usado en agua 0.02 #porcentaje
proporciongastoenergia % del capital reinvertido usado en energía 0.05 #porcentaje
proporciongastofertilizante % del capital reinvertido usado en fertilizantes 0.15 #porcentaje
proporciongastosemilla % del capital reinvertido usado en semillas 0.08 #porcentaje
proporciongastotecnologia % del capital reinvertido usado en tecnología 0.10 #porcentaje
a1 Efecto marginal del gasto en agua sobre la producción 0.005 impacto de gasto en agua en produccion
a2 Efecto marginal del gasto en energía 0.003 #impacto de gasto en energia en produccion
a3 Efecto marginal del gasto en fertilizantes 0.01 impacto de gasto en fertilizante en produccion
a4 Efecto marginal del gasto en semillas 0.01 impacto de semilla en produccion
a5 Efecto marginal del gasto en tecnología 0.01 impacto de tecnologia en produccion

El monto de cada uno de los apoyos para agricultores se obtuvo directamente de la plataforma oficial de los Programas para el Bienestar. El número de beneficiarios se extrajo de los padrones únicos de beneficiarios, disponibles en ese mismo portal. El cálculo de los costos de producción, así como los datos de referencia sobre nivel de producción base y superficie agrícola, fueron obtenidos de la Secretaría de Agricultura, Ganadería, Pesca y Desarrollo Rural de Guerrero, en conjunto con los resultados del Censo Agropecuario 2022 del INEGI. Finalmente, el precio de venta por tonelada se tomó del Programa de Precios de Garantía a Productos Alimenticios Básicos, que establece los precios respaldados para productos como maíz, frijol y trigo.

Código Base

#Cargamos la librería necesarias
library(deSolve) #Para resolver ecuaciones diferenciales
library(ggplot2) #Para graficar los resultados
library(gridExtra) #Para mostrar múltiples gráficos juntos

# Definimos la función que describe el comportamiento dinámico del sistema
agricultores_guerrero <- function(t, state, parameters) {
  with(as.list(c(state,parameters)), {
  
    #Variables endógenas 
   factor_estacional <- 1 + 0.1 * sin(2 * pi * t / 12)
   montoreinversion= tasareinversion*capital # Parte del capital destinado a reinversión
    
    #Cálculo de apoyos gubernamentales
   apoyoproduccionbienestar = coberturabienestar * montoporapoyobienestar / 3
   apoyosembrandovida = coberturasembrandovida * montoporapoyosembrandovida / 3
   apoyoenergiacampo = coberturaenergiacampo * montoporapoyoenergiacampo / 3
   apoyofertilizante = coberturafertilizante * montoporapoyofertilizante / 3

    #Cálculo de gastos en insumos, ajustados por subsidios y clima
   gastoagua = pmax(0, proporciongastoagua * montoreinversion * (1 - precipitacion) / 6)
   gastoenergia = pmax(0, (proporciongastoenergia * montoreinversion - apoyoenergiacampo) / 6)
   gastofertilizante = pmax(0, (proporciongastofertilizante * montoreinversion - apoyofertilizante) / 6)
   gastosemilla = pmax(0, proporciongastosemilla * montoreinversion / 6)
   gastotecnologia = pmax(0, proporciongastotecnologia * montoreinversion / 6)
   gastomanoobra = pmax(0, proporciongastomanoobra * montoreinversion / 6)
   
      
   produccionporhectarea = precipitacion + valorbaseporhectarea * factor_estacional * (1 +
        a1 * log(1 + gastoagua) +
        a2 * log(1 + gastoenergia) +
        a3 * log(1 + gastofertilizante) +
        a4 * log(1 + gastosemilla) +
        a5 * log(1 + gastotecnologia) +
        capacidad.productiva.trabajador * log(1 + gastomanoobra)
      )
   
   
    producciontotal = numerohectareas * produccionporhectarea
    toneladasvendidas = producciontotal * porcentajeproduccionvendida # Parte de la producción vendida

  
    precio_ajustado = precioporproducto * factor_estacional # Precio con ajuste estacional
    ingresoventas = toneladasvendidas * precio_ajustado # Ingresos por ventas

    #Variables de flujo
    
    #Ingreso total del productor incluyendo apoyos
    ingresosproductor<- ingresoventas+apoyoproduccionbienestar + apoyosembrandovida
    # Suma total de gastos de producción
    gastosinsumos = gastoagua+gastoenergia+gastofertilizante+gastosemilla+gastotecnologia+gastomanoobra
   
    # Cálculo del presupuesto del hogar, ajustado por inflación 
    ciclos_inflacion <- floor(t / 12)
    presupuestohogar <- 6000 * 100000 * (1.06)^ciclos_inflacion # Gasto del hogar inflacionario
      
    #Variable de estado
    dcapital= ingresosproductor-gastosinsumos-presupuestohogar
    
    # Se crea la lista de variables para analizar
    list(c(dcapital), produccion = produccionporhectarea, gastos = gastosinsumos, presupuestohogar=presupuestohogar, ingresosproductor=ingresosproductor)

  })
}

# Definición de los parámetros del sistema
parameters<-c(proporciongastoagua = .02, #porcentaje del capital destinado a agua
              proporciongastoenergia= .05, #porcentaje del capital destinado a energía
              proporciongastomanoobra = .60, #porcentaje del capital destinado a mano de obra
              proporciongastofertilizante=.15, #porcentaje del capital destinado al fertilizante
              proporciongastotecnologia= .10, #porcentaje del capital destinado a tecnología
              proporciongastosemilla= .08, #porcentaje del capital destinado a semillas
              tasareinversion=.25, #porcentaje del capital reinvertido
              precipitacion=.2, #porcentaje del riego que es reemplazado por lluvia
              precioporproducto=7000 ,# precio por tonelada
              coberturabienestar=70000 , #personas beneficiarias
              coberturasembrandovida=15000, #personas beneficiarias
              coberturafertilizante=25000, #personas beneficiarias
              coberturaenergiacampo=20000, #personas beneficiarias
              montoporapoyoenergiacampo= 51676, #pesos
              montoporapoyofertilizante=10000, #pesos
              montoporapoyobienestar=6000, #pesos
              montoporapoyosembrandovida=6450, #pesos
              numerohectareas=470000, #hectareas
              porcentajeproduccionvendida= .70, #porcentaje de la producción vendida
              valorbaseporhectarea=2.2,#toneladas
              a1 = 0.005, #impacto de gasto en agua en produccion
              a2 = 0.003, #impacto gasto energia en produccion
              a3 = 0.01, #impacto fertilizante en produccion
              a4 = 0.01,#impacto semilla en produccion
              a5 = 0.01, #impacto tecnologia en produccion
              capacidad.productiva.trabajador = 0.007   #impacto de la mano de obra
              ) 

# Se establecen las condiciones iniciales del sistema: capital
InitialConditions <- c(capital = 25500*100000
                       )

# Definimos el horizonte temporal de simulación
times <- seq(0 , #tiempo inicial
             70 , #tiempo final
             1 ) #intervalo de tiempo

# Método de integración
intg.method<-c("rk4")

# Llamamos a la función ode para resolver el modelo
out <- ode(y = InitialConditions,
           times = times,
           func = agricultores_guerrero,
           parms = parameters,
           method =intg.method )

# Guardamos resultados como un data frame
resultados <- as.data.frame(out)

# Graficamos el capital 
g1 <- ggplot(resultados, aes(x = time, y = capital)) +
  geom_line(color = "blue", linewidth = 1) +
  labs(title = "Capital acumulado", x = "Tiempo", y = "Capital") +
  theme_minimal()

# Graficamos la producción por hectárea
g2 <- ggplot(resultados, aes(x = time, y = produccion)) +
  geom_line(color = "darkgreen", linewidth = 1) +
  labs(title = "Producción por hectárea", x = "Tiempo", y = "Toneladas") +
  theme_minimal()

# Graficamos los gastos en insumos
g3 <- ggplot(resultados, aes(x = time, y = gastos)) +
  geom_line(color = "red", linewidth = 1) +
  labs(title = "Gastos en insumos", x = "Tiempo", y = "Pesos") +
  theme_minimal()

# Graficamos el presupuesto del hogar
g4 <- ggplot(resultados, aes(x = time, y = presupuestohogar)) +
  geom_line(color = "orange", linewidth = 1) +
  labs(title = "Presupuesto del hogar", x = "Tiempo", y = "Pesos") +
  theme_minimal()

# Graficamos los ingresos del productor
g5 <- ggplot(resultados, aes(x = time, y = ingresosproductor)) +
  geom_line(color = "purple", linewidth = 1) +
  labs(title = "Ingresos del productor", x = "Tiempo", y = "Pesos") +
  theme_minimal()

# Mostramos todos los gráficos en una cuadrícula
grid.arrange(g1, g2, g3, g4, g5, ncol = 2)

Una vez modelado el sistema, se observaron los siguientes resultados:

  • Capital acumulado: Presenta una tendencia creciente durante los primeros 40 meses, pero luego se estabiliza. Esto indica que inicialmente hay excedentes económicos, pero con el tiempo la capacidad de acumular se reduce.

  • Producción por hectárea: Exhibe un patrón estacional regular con ciclos de 12 meses, característico de la actividad agrícola. A pesar de estas oscilaciones, hay una tendencia levemente creciente, lo que sugiere una mejora gradual en la productividad.

  • Gastos en insumos: Aumentan en los primeros 50 meses junto con el capital (ya que dependen de la reinversión), pero hacia el final tienden a estabilizarse o disminuir ligeramente. Esto puede deberse a que el capital deja de crecer con fuerza o al efecto de subsidios que reducen algunos costos.

  • Presupuesto del hogar: Muestra un crecimiento escalonado debido a un ajuste anual por inflación del 6 %. Este gasto es constante y acumulativo, ejerciendo una presión creciente sobre el sistema.

  • Ingresos del productor: Siguen un patrón estacional ligado a la producción y el precio. Al principio hay un ligero aumento en los picos, pero con el tiempo ese crecimiento se modera, indicando que los ingresos se estabilizan.

¿Por qué el capital no disminuye?
El capital no disminuye visiblemente porque, aunque los egresos (insumos e inflación) aumentan, los ingresos todavía los superan. No obstante, el crecimiento del capital se desacelera, ya que el margen entre ingresos y gastos se reduce progresivamente. Si los ingresos se estancaran o disminuyeran, el capital sí comenzaría a decrecer.

Incertidumbres

Una vez estructurado y validado el modelo base que representa el comportamiento del sistema bajo condiciones normales, se procede a incorporar el análisis de incertidumbres. Este análisis permite explorar cómo posibles variaciones en los parámetros pueden influir en los resultados del sistema. Se busca no solo identificar los factores más determinantes en la evolución del capital u otras variables, sino también anticipar comportamientos alternativos bajo diferentes supuestos.

¿Qué variables impactan más?

# Definimos las incertidumbres
x1 <- seq(60000, 80000, by = 5000)   # coberturabienestar
x2 <- seq(4800, 7200, by = 400)      # montoporapoyobienestar
x3 <- seq(10000, 30000, by = 5000)   # coberturasembrandovida
x4 <- seq(20000, 30000, by = 5000)   # coberturafertilizante
x5 <- seq(15000, 25000, by = 5000)   # coberturaenergiacampo

# Combinamos todas las incertidumbres definidas
Xs <- expand.grid(
  coberturabienestar = x1,
  montoporapoyobienestar = x2,
  coberturasembrandovida = x3,
  coberturafertilizante = x4,
  coberturaenergiacampo = x5
)

Xs$Run.ID <- 1:nrow(Xs)

# Creamos lista para guardar resultados
out_all <- list()
for (i in 1:nrow(Xs)) {

  # Asignamos todos los parámetros base + los que varían desde Xs
  parameters.Xs <- c(
    proporciongastoagua = 0.02, 
    proporciongastoenergia = 0.05, 
    proporciongastomanoobra = 0.60,
    proporciongastofertilizante = 0.15,
    proporciongastotecnologia = 0.10,
    proporciongastosemilla = 0.08,

    tasareinversion = 0.25,
    tasapresupuestohogar = 0.75,

    precipitacion = 0.2,
    precioporproducto = 7000,

    coberturabienestar = Xs$coberturabienestar[i],
    montoporapoyobienestar = Xs$montoporapoyobienestar[i],

    coberturasembrandovida = Xs$coberturasembrandovida[i],
    montoporapoyosembrandovida = 6450,

    coberturafertilizante = Xs$coberturafertilizante[i],
    montoporapoyofertilizante = 10000,

    coberturaenergiacampo = Xs$coberturaenergiacampo[i],
    montoporapoyoenergiacampo = 501676,

    numerohectareas = 470000,
    porcentajeproduccionvendida = 0.70,
    valorbaseporhectarea = 2.2,

    a1 = 0.005,
    a2 = 0.003,
    a3 = 0.01,
    a4 = 0.01,
    a5 = 0.01,

    capacidad.productiva.trabajador = 0.007
  )

  # Ejecutamos el modelo
  out <- ode(
    y = InitialConditions,
    times = times,
    func = agricultores_guerrero,
    parms = parameters.Xs,
    method = intg.method
  )

  # Convertimos resultado a data frame
  out <- data.frame(out)

  # Agregamos identificador único
  out$Run.ID <- Xs$Run.ID[i]

  # Guardamos la simulación
  out_all <- append(out_all, list(out))
}

  # Concatenamos los resultados
out_all <- do.call("rbind", out_all)

# Unimos con el data frame Xs
out_all <- merge(out_all, Xs, by = "Run.ID")

# Confirmamos dimensiones
dim(out_all)
## [1] 111825     12
library(patchwork)

# Gráfico 1: Cobertura Bienestar
g_bienestar <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = coberturabienestar)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "green", high = "red") +
  theme_minimal() +
  labs(title = "Cobertura Bienestar", y = "Capital", x = "Tiempo")

# Gráfico 2: Sembrando Vida
g_sembrando <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = coberturasembrandovida)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "lightblue", high = "purple") +
  theme_minimal() +
  labs(title = "Cobertura Sembrando Vida", y = "Capital", x = "Tiempo")

# Gráfico 3: Fertilizante
g_fertilizante <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = coberturafertilizante)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "orange", high = "lightblue") +
  theme_minimal() +
  labs(title = "Cobertura Fertilizante", y = "Capital", x = "Tiempo")

# Gráfico 4: Energía Campo
g_energia <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = coberturaenergiacampo)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "lightblue", high = "darkblue") +
  theme_minimal() +
  labs(title = "Cobertura Energía Campo", y = "Capital", x = "Tiempo")

# Grid 2x2
(g_bienestar | g_sembrando) / (g_fertilizante | g_energia)

El capital acumulado del productor muestra una relación positiva con las distintas coberturas de apoyo. La cobertura del programa Bienestar es la que tiene el impacto más fuerte y directo, impulsando significativamente el capital al mejorar los ingresos netos. El programa Sembrando Vida también contribuye positivamente, aunque con una sensibilidad algo menor; su efecto acumulativo refuerza el crecimiento del capital a lo largo del tiempo. En contraste, los subsidios a fertilizantes y energía tienen un impacto más moderado, actuando como alivios de costos más que como fuentes directas de ingreso. Aunque ambos contribuyen a la rentabilidad, su influencia sobre el capital acumulado es menos pronunciada.

# Gráfico: Cobertura Bienestar → ingresos del productor
g_ingresos_bienestar <- ggplot(out_all, aes(x = time, y = ingresosproductor, group = Run.ID, colour = coberturabienestar)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "green", high = "darkred") +
  theme_minimal() +
  labs(
    title = "Ingresos del productor según cobertura Bienestar",
    x = "Tiempo (meses)",
    y = "Ingresos",
    color = "Cobertura Bienestar"
  )

# Gráfico: Cobertura Sembrando Vida → ingresos del productor
g_ingresos_sembrando <- ggplot(out_all, aes(x = time, y = ingresosproductor, group = Run.ID, colour = coberturasembrandovida)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "yellow", high = "purple") +
  theme_minimal() +
  labs(
    title = "Ingresos del productor según cobertura Sembrando Vida",
    x = "Tiempo (meses)",
    y = "Ingresos",
    color = "Cobertura Sembrando Vida"
  )
library(patchwork)

g_ingresos_bienestar / g_ingresos_sembrando

Los ingresos del productor presentan un patrón estacional coherente con la naturaleza de la actividad agrícola. En cuanto al impacto de los programas, el apoyo de Bienestar incrementa ligeramente los ingresos en cada ciclo, actuando como una fuente estable pero moderada. En cambio, el programa Sembrando Vida muestra un efecto más notable y acumulativo, con aumentos visibles en los ingresos a medida que crece su cobertura. Esto sugiere que Sembrando Vida tiene una influencia más sensible sobre la mejora económica del productor en el largo plazo.

# Gastos con cobertura de fertilizante
g_gastos_fertilizante <- ggplot(out_all, aes(x = time, y = gastos, group = Run.ID, colour = coberturafertilizante)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "orange", high = "darkred") +
  theme_minimal() +
  labs(
    title = "Gastos según cobertura Fertilizante",
    x = "Tiempo (meses)",
    y = "Gastos",
    color = "Cobertura Fertilizante"
  )

# Gastos con cobertura de energía para el campo
g_gastos_energia <- ggplot(out_all, aes(x = time, y = gastos, group = Run.ID, colour = coberturaenergiacampo)) +
  geom_line(alpha = 0.4) +
  scale_color_gradient(low = "skyblue", high = "navy") +
  theme_minimal() +
  labs(
    title = "Gastos según cobertura Energía Campo",
    x = "Tiempo (meses)",
    y = "Gastos",
    color = "Cobertura Energía"
  )

library(patchwork)

g_gastos_fertilizante / g_gastos_energia

En general, coberturas que aumentan ingresos directamente (Bienestar y Sembrando Vida) → Tienen un mayor impacto positivo en la acumulación de capital. Coberturas que reducen costos (Fertilizante, Energía Campo) → Tienen efectos positivos más limitados, aunque ayudan a mantener la estabilidad del capital.

#=========================================================================
# Bloque 2: Variables económicas/productivas)
#=========================================================================

# Definimos las incertidumbres
x6 <- seq(0.1, 0.5, by = 0.1)               # precipitacion
x7 <- seq(6000, 8000, by = 250)            # precioporproducto
x8 <- seq(0.15, 0.35, by = 0.05)           # tasareinversion
x9 <- seq(0.5, 0.9, by = 0.1)              # porcentajeproduccionvendida
x10 <- seq(0.005, 0.015, by = 0.005)        # capacidad.productiva.trabajador

# Combinamos todas las incertidumbres definidas
Xs1 <- expand.grid(
  precipitacion = x6,
  precioporproducto = x7,
  tasareinversion = x8,
  porcentajeproduccionvendida = x9,
  capacidad.productiva.trabajador = x10
)

# Creamos lista para guardar resultados
Xs1$Run.ID <- 1:nrow(Xs1)
out_all <- list()
for (i in 1:nrow(Xs1)) {
  
  # Asignamos todos los parámetros base + los que varían desde Xs1
  parameters.Xs1 <- c(
    proporciongastoagua = 0.02, 
    proporciongastoenergia = 0.05, 
    proporciongastomanoobra = 0.60,
    proporciongastofertilizante = 0.15, 
    proporciongastotecnologia = 0.10,
    proporciongastosemilla = 0.08, 

    tasareinversion = Xs1$tasareinversion[i], 
    tasapresupuestohogar = 0.75, 
    precipitacion = Xs1$precipitacion[i], 
    precioporproducto = Xs1$precioporproducto[i], 

    coberturabienestar = 70000, 
    montoporapoyobienestar = 6000, 

    coberturasembrandovida = 15000, 
    montoporapoyosembrandovida = 6450, 

    coberturafertilizante = 25000,
    montoporapoyofertilizante = 10000,

    coberturaenergiacampo = 20000,
    montoporapoyoenergiacampo = 501676,

    numerohectareas = 470000,
    porcentajeproduccionvendida = Xs1$porcentajeproduccionvendida[i],
    valorbaseporhectarea = 2.2,

    a1 = 0.005,
    a2 = 0.003,
    a3 = 0.01,
    a4 = 0.01,
    a5 = 0.01,

    capacidad.productiva.trabajador = Xs1$capacidad.productiva.trabajador[i]
  )

  #Ejecutamos el modelo
  out <- ode(
    y = InitialConditions,
    times = times,
    func = agricultores_guerrero,
    parms = parameters.Xs1,
    method = intg.method
  )

  # Convertimos resultado a data frame
  out <- data.frame(out)
  # Agregamos identificador único
  out$Run.ID <- Xs1$Run.ID[i]
  # Guardamos la simulación
  out_all <- append(out_all, list(out))
}
  #Concatenamos los resultados
  out_all <- do.call("rbind", out_all)
  # Unimos con el data frame Xs1
out_all <- merge(out_all, Xs1, by = "Run.ID")
# Capital vs Precipitación
g1 <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = precipitacion)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "lightblue", high = "darkblue") +
  labs(title = "Capital vs Precipitación", x = "Tiempo", y = "Capital", color = "Precipitación") +
  theme_minimal()

# Capital vs Precio por producto
g2 <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = precioporproducto)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "lightgreen", high = "darkgreen") +
  labs(title = "Capital vs Precio Producto", x = "Tiempo", y = "Capital", color = "Precio") +
  theme_minimal()

# Capital vs Tasa de reinversión
g3 <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = tasareinversion)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "khaki", high = "darkorange") +
  labs(title = "Capital vs Tasa de Reinv.", x = "Tiempo", y = "Capital", color = "Reinversión") +
  theme_minimal()

# Capital vs % producción vendida
g4 <- ggplot(out_all, aes(x = time, y = capital, group = Run.ID, colour = porcentajeproduccionvendida)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "pink", high = "purple") +
  labs(title = "Capital vs % Vendido", x = "Tiempo", y = "Capital", color = "% Vendida") +
  theme_minimal()

library(patchwork)

(g1 | g2) / (g3 | g4)

# Producción vs precipitación
g_precip_produccion <- ggplot(out_all, aes(x = time, y = produccion, group = Run.ID, colour = precipitacion)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "gold", high = "purple") +
  theme_minimal() +
  labs(
    title = "Producción vs Precipitación",
    x = "Tiempo (meses)",
    y = "Producción por hectárea",
    color = "Precipitación"
  )

# Producción vs capacidad productiva del trabajador
g_capacidad_produccion <- ggplot(out_all, aes(x = time, y = produccion, group = Run.ID, colour = capacidad.productiva.trabajador)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "lightcyan", high = "darkred") +
  theme_minimal() +
  labs(
    title = "Producción vs Capacidad del Trabajador",
    x = "Tiempo (meses)",
    y = "Producción por hectárea",
    color = "Capacidad"
  )

# Producción vs tasa de reinversión
g_reinv_produccion <- ggplot(out_all, aes(x = time, y = produccion, group = Run.ID, colour = tasareinversion)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "khaki", high = "darkorange") +
  theme_minimal() +
  labs(
    title = "Producción vs Tasa de Reinv.",
    x = "Tiempo (meses)",
    y = "Producción por hectárea",
    color = "Tasa Reinv."
  )
library(patchwork)
(g_precip_produccion | g_capacidad_produccion)/ g_reinv_produccion

#Ingresos vs precio por producto
g_precio_ingresos <- ggplot(out_all, aes(x = time, y = ingresosproductor, group = Run.ID, colour = precioporproducto)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "lightgreen", high = "darkgreen") +
  theme_minimal() +
  labs(
    title = "Ingresos vs Precio por Producto",
    x = "Tiempo (meses)",
    y = "Ingresos del productor",
    color = "Precio"
  )

#Ingresos vs % de la producción vendida
g_venta_ingresos <- ggplot(out_all, aes(x = time, y = ingresosproductor, group = Run.ID, colour = porcentajeproduccionvendida)) +
  geom_line(alpha = 0.3) +
  scale_color_gradient(low = "pink", high = "purple") +
  theme_minimal() +
  labs(
    title = "Ingresos vs % Producción Vendida",
    x = "Tiempo (meses)",
    y = "Ingresos del productor",
    color = "% Vendido"
  )
g_precio_ingresos / g_venta_ingresos

El sistema agrícola modelado es altamente sensible a variables de decisión y política: precio, porcentaje vendido, reinversión, y capacitación técnica. En cambio, variables externas como la precipitación afectan pero no determinan el desempeño del sistema.

Variables como precio por producto y porcentaje vendido tienen un impacto inmediato y cíclico en los ingresos del productor. → Esto se debe a que afectan directamente el flujo de caja cada mes. En contraste, variables como la tasa de reinversión y la capacidad del trabajador muestran efectos acumulativos y sostenidos: → Aunque el impacto inicial puede parecer modesto, con el tiempo generan una divergencia clara en la productividad y el capital.

Este enfoque aporta mayor solidez a las conclusiones y orienta la toma de decisiones en contextos de alta complejidad e incertidumbre como este.

Políticas propuestas y su impacto

🧩 Política 1: Fortalecimiento de Talleres Técnicos del Programa Sembrando Vida: Capacidades Técnicas Individualizadas

Descripción:

  • La política propone mejorar la calidad y personalización de los talleres ofrecidos en el marco del programa Sembrando Vida. 

  • Aumentar el número de técnicos capacitados por comunidad.

  • Implementar contenidos adaptados al tipo de cultivo y condiciones locales.

  • Mayor frecuencia de talleres (al menos 1 mensual).

  • Asignación de un mayor monto para la capacitación agrícola por productor.

  • El objetivo es que los productores no solo reciban un apoyo económico, sino también conocimientos aplicables que aumenten su eficiencia productiva.

Modelable vía: produccionporhectarea ya que los conocimientos impactan en el uso eficiente de tecnología y recursos.

💡 Justificación: Mejores talleres → mayor conocimiento → mejor aplicación de técnicas → más producción por hectárea, especialmente vía mayor aprovechamiento de la tecnología y del trabajo humano.

📌 Impacto esperado: Incrementar a5 (impacto del gasto en tecnología) de 0.01 a 0.015 o 0.02.

*Eventualmente también se podría ajustar capacidad.productiva.trabajador si se considera que los talleres mejoran la productividad del trabajo humano.

🧩 Política 2: Esquema de inversión conjunta 50/50 entre gobierno y productor

Esta política consiste en que el gobierno aporte recursos para la compra de insumos clave, siempre que el productor también contribuya con una parte equivalente. Se centra en fertilizantes y semillas pero se puede aplicar a otros implementos agrícolas. El apoyo no es universal ni subsidiado al 100%, sino condicionado a una corresponsabilidad financiera, lo cual incentiva la eficiencia del gasto y la selección racional de insumos.

Alternativamente, puede modelarse como una disminución efectiva del gasto en ciertos insumos, lo cual se traduce en una mayor acumulación del capital.

  • Modelable vía: Gasto en fertilizante (gastofertilizante) y en gasto en semillas (gastosemilla). El efecto directo será que con la misma cantidad invertida por el productor, el gasto total se duplica (por el aporte del gobierno), mejorando la producción.

  • 💡 Justificación: Una barrera común para aumentar el uso de insumos de calidad es el costo. Esta política reduce dicha barrera sin eliminar la participación activa del productor.

  • 📌 Impacto esperado: Aumentar el gasto efectivo en fertilizantes y semillas, por ejemplo:

    • Multiplicando el gasto en ambos insumos por 1.5 o 2 (reflejo del aporte 50/50).

    • O disminuyendo el peso del gasto en fertilizante y semilla sobre el capital del productor (es decir, su proporción respecto a montoreinversión).

    • Eventualmente, se podría también aumentar los parámetros a3 (fertilizante) y a4 (semillas) si se asume una mejora en la calidad del insumo adquirido.

🧩 Política 3: Comercialización Directa Productor–Consumidor

Esta política impulsa la realización periódica de Expo Ferias agrícolas en el marco del programa Sembrando Vida, donde pequeños y medianos productores exhiben y venden directamente sus productos a consumidores y distribuidores. Al eliminar intermediarios, se fortalece el ingreso por ventas y se fomenta la creación de redes comerciales locales. Las ferias, ya implementadas con éxito en lugares como El Fuerte (Sinaloa), Durango (Durango) y la Ruta Tecpatán–Copainalá, permiten una articulación más justa y eficiente entre producción y mercado.

  • Modelable vía: ingresoventas. El efecto directo consistirá en un incremento promedio de alrededor de 90% en tanto las toneladas vendidas como los ingresos por ventas (IDALS & USDA–NASS, 2009).

  • 💡 Justificación: Aumenta el margen de ganancia del productor al reducir intermediarios, dinamiza las economías locales y consolida canales de venta sostenibles que reconocen el valor del trabajo agrícola comunitario.

  • 📌 Impacto esperado: Incremento de 0.9 en ingresos por ventas. Esto a través de:

    • El aumento de precioporproducto de 7000 a 8000.

Diagrama de flujo con la intervención de las políticas propuestas

Modelo con la intervención de las políticas propuestas

# Cargar librerías
library(deSolve)
library(ggplot2)
library(gridExtra)

# Definimos la función dinámica del modelo
agricultores_guerrero <- function(t, state, parameters) {
  with(as.list(c(state, parameters)), {
    factor_estacional <- 1 + 0.1 * sin(2 * pi * t / 12)
    montoreinversion <- tasareinversion * capital

    # Apoyos gubernamentales
    apoyoproduccionbienestar <- coberturabienestar * montoporapoyobienestar / 3
    apoyosembrandovida <- coberturasembrandovida * montoporapoyosembrandovida / 3
    apoyoenergiacampo <- coberturaenergiacampo * montoporapoyoenergiacampo / 3
    apoyofertilizante <- coberturafertilizante * montoporapoyofertilizante / 3

    # Cálculo de gastos en insumos
    gastoagua <- pmax(0, proporciongastoagua * montoreinversion * (1 - precipitacion) / 6)
    gastoenergia <- pmax(0, (proporciongastoenergia * montoreinversion - apoyoenergiacampo) / 6)
    gastofertilizante <- pmax(0, (proporciongastofertilizante * montoreinversion - apoyofertilizante) / 6)
    gastosemilla <- pmax(0, proporciongastosemilla * montoreinversion / 6)
    gastotecnologia <- pmax(0, proporciongastotecnologia * montoreinversion / 6)
    gastomanoobra <- pmax(0, proporciongastomanoobra * montoreinversion / 6)

    # Producción por hectárea
    produccionporhectarea <- precipitacion + valorbaseporhectarea * factor_estacional * (1 +
      a1 * log(1 + gastoagua) +
      a2 * log(1 + gastoenergia) +
      a3 * log(1 + gastofertilizante) +
      a4 * log(1 + gastosemilla) +
      a5 * log(1 + gastotecnologia) +
      capacidad.productiva.trabajador * log(1 + gastomanoobra)
    )

    producciontotal <- numerohectareas * produccionporhectarea
    toneladasvendidas <- producciontotal * porcentajeproduccionvendida
    precio_ajustado <- precioporproducto * factor_estacional
    ingresoventas <- toneladasvendidas * precio_ajustado

    ingresosproductor <- ingresoventas + apoyoproduccionbienestar + apoyosembrandovida
    gastosinsumos <- gastoagua + gastoenergia + gastofertilizante + gastosemilla + gastotecnologia + gastomanoobra

    ciclos_inflacion <- floor(t / 12)
    presupuestohogar <- 6000 * 100000 * (1.06)^ciclos_inflacion

    dcapital <- ingresosproductor - gastosinsumos - presupuestohogar

    list(c(dcapital),
     produccion = produccionporhectarea,
     ingresoventas = ingresoventas,
     ingresosproductor = ingresosproductor,
     gastos = gastosinsumos,
     gastofertilizante = gastofertilizante,
     gastosemilla = gastosemilla)
  })
}

# Condición inicial del capital
InitialConditions <- c(capital = 25500 * 100000)
times <- seq(0, 70, 1)  # horizonte temporal de 70 meses

# --- Escenario base: sin políticas ---
param_base <- c(
  proporciongastoagua = 0.02,
  proporciongastoenergia = 0.05,
  proporciongastomanoobra = 0.60,
  proporciongastofertilizante = 0.15,
  proporciongastotecnologia = 0.10,
  proporciongastosemilla = 0.08,
  tasareinversion = 0.25,
  precipitacion = 0.2,
  precioporproducto = 7000,
  porcentajeproduccionvendida = 0.70,
  coberturabienestar = 70000,
  coberturasembrandovida = 15000,
  coberturafertilizante = 25000,
  coberturaenergiacampo = 20000,
  montoporapoyoenergiacampo = 51676,
  montoporapoyofertilizante = 10000,
  montoporapoyobienestar = 6000,
  montoporapoyosembrandovida = 6450,
  numerohectareas = 470000,
  valorbaseporhectarea = 2.2,
  a1 = 0.005,
  a2 = 0.003,
  a3 = 0.01,
  a4 = 0.01,
  a5 = 0.01,
  capacidad.productiva.trabajador = 0.007
)

# --- Escenario con políticas ---
param_politicas <- param_base
param_politicas["a5"] <- 0.02                               # Política 1
param_politicas["capacidad.productiva.trabajador"] <- 0.01  # Política 1
param_politicas["proporciongastofertilizante"] <- 0.075     # Política 2
param_politicas["proporciongastosemilla"] <- 0.04           # Política 2
param_politicas["a3"] <- 0.015                              # Política 2
param_politicas["a4"] <- 0.015                              # Política 2
param_politicas["precioporproducto"] <- 8000                # Política 3
param_politicas["porcentajeproduccionvendida"] <- 0.85      # Política 3

# Simulación de ambos escenarios
base <- as.data.frame(ode(y = InitialConditions, times = times, func = agricultores_guerrero, parms = param_base))
politicas <- as.data.frame(ode(y = InitialConditions, times = times, func = agricultores_guerrero, parms = param_politicas))

# Etiquetamos escenarios
base$escenario <- "Antes"
politicas$escenario <- "Después"
todo <- rbind(base, politicas)

# Unificamos nombres si hay duplicados (prevención)
todo <- todo[, !duplicated(names(todo))]

# Gráfico 1: Producción por hectárea
g1 <- ggplot(todo, aes(x = time, y = produccion, color = escenario)) +
  geom_line(linewidth = 1) +
  labs(title = "Producción por hectárea", x = "Tiempo", y = "Toneladas") +
  scale_color_manual(values = c("Antes" = "#006400", "Después" = "#66CDAA")) +
  theme_minimal()

# Gráfico 2: Gasto en fertilizante
g2 <- ggplot(todo, aes(x = time, y = gastofertilizante, color = escenario)) +
  geom_line(linewidth = 1) +
  labs(title = "Gasto en fertilizante", x = "Tiempo", y = "Pesos") +
  scale_color_manual(values = c("Antes" = "#006400", "Después" = "#66CDAA")) +
  theme_minimal()

# Gráfico 3: Gasto en semilla
g3 <- ggplot(todo, aes(x = time, y = gastosemilla, color = escenario)) +
  geom_line(linewidth = 1) +
  labs(title = "Gasto en semillas", x = "Tiempo", y = "Pesos") +
  scale_color_manual(values = c("Antes" = "#006400", "Después" = "#66CDAA")) +
  theme_minimal()

# Gráfico 4: Gasto total en insumos
g4 <- ggplot(todo, aes(x = time, y = gastos, color = escenario)) +
  geom_line(linewidth = 1) +
  labs(title = "Gasto total en insumos", x = "Tiempo", y = "Pesos") +
  scale_color_manual(values = c("Antes" = "#006400", "Después" = "#66CDAA")) +
  theme_minimal()

# Gráfico 5: Ingresos por ventas
g5 <- ggplot(todo, aes(x = time, y = ingresoventas, color = escenario)) +
  geom_line(linewidth = 1) +
  labs(title = "Ingresos por ventas", x = "Tiempo", y = "Pesos") +
  scale_color_manual(values = c("Antes" = "#006400", "Después" = "#66CDAA")) +
  theme_minimal()

# Gráfico 6: Capital acumulado
g6 <- ggplot(todo, aes(x = time, y = capital, color = escenario)) +
  geom_line(linewidth = 1) +
  labs(title = "Capital acumulado", x = "Tiempo", y = "Pesos") +
  scale_color_manual(values = c("Antes" = "#006400", "Después" = "#66CDAA")) +
  theme_minimal()

# Gráfico 7: Ingresos totales del productor
g7 <- ggplot(todo, aes(x = time, y = ingresosproductor, color = escenario)) +
  geom_line(linewidth = 1) +
  labs(title = "Ingresos totales del productor", x = "Tiempo", y = "Pesos") +
  scale_color_manual(values = c("Antes" = "#006400", "Después" = "#66CDAA")) +
  theme_minimal()

library(grid)

titulo_grande <- textGrob("Comparación Antes vs Después de las Políticas Agrícolas",
                          gp = gpar(fontsize = 18, fontface = "bold"))

# Mostrar todos los gráficos con título grande
grid.arrange(g1, g2, g3, g4, g5, g6, g7,
             ncol = 2,
             top = titulo_grande)

Las tres políticas implementadas generan efectos positivos y complementarios en el sistema agrícola. La Política 1, centrada en la capacitación técnica, mejora sostenidamente la producción por hectárea, lo que se traduce en mayores ingresos por ventas y totales del productor. La Política 2, de inversión conjunta entre gobierno y productores, aumenta el gasto en fertilizantes y semillas, lo que impulsa la productividad sin comprometer el capital, gracias a una mayor eficiencia del gasto. Finalmente, la Política 3, orientada a la comercialización directa, eleva significativamente los ingresos del productor al mejorar el precio y la proporción de la producción vendida. En conjunto, estas intervenciones no solo fortalecen el desempeño económico inmediato, sino también la acumulación de capital a largo plazo.

Conclusiones

Este estudio analizó el impacto de los programas de Bienestar en los pequeños y medianos productores agrícolas de Guerrero, utilizando dinámica de sistemas para simular escenarios con distintas decisiones de inversión, apoyos y condiciones climáticas. El modelo permitió identificar patrones clave en la producción, los ingresos y la acumulación de capital.

Entonces, ¿en qué medida afectan los programas de Bienestar al capital acumulado de los pequeños y medianos productores agrícolas en Guerrero, bajo diferentes escenarios de inversión y condiciones climáticas?
La respuesta es que el impacto es significativo y positivo, siempre que dichos programas estén diseñados como parte de una estrategia integral que combine transferencia económica, fortalecimiento de capacidades técnicas y mejor acceso a mercados.

Bajo un escenario base, los apoyos económicos estabilizan parcialmente los ingresos, pero su efecto sobre el capital acumulado es limitado si no se acompañan de acciones que mejoren la eficiencia productiva. La implementación de políticas como el fortalecimiento de los talleres técnicos (Política 1), esquemas de inversión compartida (Política 2) y comercialización directa (Política 3) genera un crecimiento sostenido del capital, evidenciado por una mayor producción, mejores ingresos por ventas y una trayectoria creciente en la riqueza acumulada del productor. Además, el análisis de incertidumbre demuestra que variables como el precio del producto, el porcentaje vendido y la reinversión tienen una mayor sensibilidad e impacto estructural que factores climáticos como la precipitación.

Un enfoque integral permite convertir el apoyo público en bienestar económico sostenible, con efectos que consolidan la base productiva del campo guerrerense.

Referencias

Censo Agropecuario 2022: https://www.inegi.org.mx/contenidos/programas/ca/2022/doc/ca2022_rdGRO.pdf

Censo Agropecuario del Estado de Guerrero: https://www.guerrero.gob.mx/2023/12/presentan-resultados-del-censo-agropecuario-2022-sobre-el-estado-de-guerrero

Información sobre los Programas de Bienestar: https://programasparaelbienestar.gob.mx/

Programa sectorial de la Secretaria de Agricultura, Ganadería, Pesca y Desarrollo Rural: https://seed.guerrero.gob.mx/wp-content/uploads/2024/01/Programa-Sectorial-Desarrollo-Rural-y-Pesca-2022-2027.pdf

Padron de Beneficiarios Programas para el Desarrollo: https://pub.bienestar.gob.mx/pub/programasIntegrales

Iowa Department of Agriculture and Land Stewardship & USDA National Agricultural Statistics Service. (2009). Consumers, vendors, and the economic importance of Iowa farmers markets: An economic impact survey analysis. Strategic Economics Group, Inc. Ministerio de Agricultura de Iowa. Informe original publicado en 2010.