Evidencia 1. Modelo de Simulación: Educación
Mariana Luna Álvarez A00839376
Johanna Keren de los Reyes Batres
A01412204
Francisco Reyna De La Rosa A00837482
María Fernanda
García Valaguez A01733720
Santiago Flores Pérez A01234907
12 de Junio del 2026
Análisis de decisiones bajo condiciones de incertidumbre
Profesor:
Victor Manuel Espinoza Juárez
El presente reporte es la formalización sistémica de una relación de confianza, aprendizaje y co-creación iniciada en 2018. Hace ocho años, Pal’Sur del Norte llegó por primera vez al ejido El Refugio de los Cerros Blancos, en Mier y Noriega, con una meta: disminuir las brechas causadas por la marginación social y geográfica, entendiendo el desarrollo como un derecho y no como un acto asistencialista.
Las intervenciones de Pal’Sur del Norte parten del reconocimiento de las capacidades endógenas de la comunidad. El talento y las ganas siempre han estado presentes en Cerros Blancos; lo que históricamente ha faltado son las herramientas y la infraestructura de oportunidad para potenciarlos. Con 280 beneficiarios históricos, la labor acumulada ha convertido al ejido en tierra fértil para la democratización de la conectividad digital y más futuras intervenciones.
Para comprender las trayectorias que el presente modelo matemático busca simular, es indispensable precisar las condiciones estructurales que limitan el desarrollo en el territorio. Mier y Noriega se localiza en el extremo sur de Nuevo León, colindando con los estados de San Luis Potosí y Tamaulipas. Es el único municipio de todo el estado clasificado con un grado alto de rezago social (CONEVAL, 2020). Su configuración territorial se caracteriza por una alta dispersión: 25 localidades rurales, entre las cuales El Refugio de los Cerros Blancos alberga a aproximadamente 531 habitantes (INEGI, 2020).
Este reporte presenta un modelo de dinámica de sistemas que simula de manera integrada la evolución socioeconómica y demográfica de El Refugio de los Cerros Blancos para el período 2026-2050. La simulación utiliza un paso mensual de integración y aplica el método numérico de Runge-Kutta de cuarto orden, garantizando la robustez y estabilidad matemática de las proyecciones cuantitativas frente a la incertidumbre inherente del largo plazo.
El macrosistema está construido a partir de la interacción matemática de seis subsistemas interdependientes que reflejan las condiciones estructurales que aún perpetúan el rezago que vive la comunidad.
El subsistema de demografía regula los flujos de natalidad, mortalidad y los saldos migratorios.
El subsistema de economía femenina mide las tasas de participación económica, la autonomía financiera y el impacto del trabajo de cuidados en la brecha económica de género.
El subsistema de educación monitorea la transición escolar, la deserción y la acumulación de capital humano formal e informal en las juventudes.
El subsistema de dinámica social en torno al alcohol evalúa las variables psicosociales, las externalidades comunitarias y la correlación entre el consumo de sustancias y los nudos de violencia doméstica o comunitaria.
El subsistema de infraestructura comunitaria simula la capacidad de soporte del centro comunitario, el uso de las computadoras y la absorción de la conectividad digital.
Finalmente, el subsistema de gobernanza ejidal analiza la participación ciudadana desde el sistema ejidal.
La calibración de los parámetros del modelo se realizó mediante la triangulación de datos primarios cualitativos (recabados en nuestras visitas de campo y la experiencia acumulada de PSN) y la parametrización de bases de datos oficiales: la Conciliación Demográfica de CONAPO (1990-2040), la ENDIREH (2021), la ENCODAT (2016-2017) para el noreste rural, y la ENUT (2019).
El Escenario Base expuesto a continuación simula la trayectoria inercial de la comunidad bajo las condiciones estructurales vigentes, funcionando como un contrafactual científico que demuestra qué ocurriría si no se implementan políticas como las que se sugieren para cada submodelo. A través de este esfuerzo de modelación, se busca proveer a la organización y a los tomadores de decisiones de evidencia cuantitativa sólida para diseñar intervenciones estratégicas que conviertan la conectividad en un habilitador real de autonomía humana y libertad de elección.
Nota. Elaboración propia.
Nota. Elaboración propia.
Las conexiones muestran que el submodelo educativo no funciona de manera aislada, sino que forma parte de un sistema de retroalimentación con los sectores social, económico y demográfico. La acumulación de graduados genera un efecto protector sobre las condiciones sociales de la comunidad; sin embargo, el aumento del consumo de alcohol y de la presión de cuidados incrementa los flujos de deserción diferenciados por sexo. Al mismo tiempo, la población preadolescente establece el límite demográfico de la matriculación en secundaria (Ver Cuadro 1). En conjunto, estas relaciones permiten representar cómo el deterioro o la mejora de un sector puede propagarse hacia el resto de la arquitectura regional.
| Sector de origen | Variable de salida (output) | Sector receptor | Variable receptora inmediata | Flujo o stock afectado | Relación | Mecanismo de transmisión |
|---|---|---|---|---|---|---|
| Educación | acervo.graduados |
Social | machismo |
Violencia intrafamiliar, salud mental y
consumo.alcohol |
Negativa | Un mayor número acumulado de personas que concluyeron la preparatoria reduce el nivel de machismo arraigado. Esta disminución debilita las condiciones que favorecen la violencia intrafamiliar, el deterioro de la salud mental y el crecimiento del consumo de alcohol. |
| Social | consumo.alcohol |
Educación | Tasas de deserción masculina en secundaria y preparatoria | desercion.secundaria.masculina y
desercion.preparatoria.masculina |
Positiva | Un mayor consumo de alcohol incrementa el riesgo de abandono escolar entre los estudiantes hombres, debido a la normalización del consumo, el deterioro del entorno familiar y la ausencia de proyectos de vida vinculados con la educación. |
| Económico | presion.cuidados |
Educación | Tasas de deserción femenina en secundaria y preparatoria | desercion.secundaria.femenina y
desercion.preparatoria.femenina |
Positiva | Una mayor carga de cuidados no remunerados sobre las mujeres incrementa la probabilidad de que las estudiantes interrumpan su trayectoria escolar para atender responsabilidades domésticas, infantes, personas mayores u otros integrantes del hogar. |
| Demografía | poblacion.preadolescentes |
Educación | Población disponible para ingresar a secundaria | matriculacion.secundaria |
Positiva | El stock de preadolescentes determina la población potencialmente disponible para incorporarse a secundaria. Su crecimiento amplía la base de matriculación, mientras que su reducción limita el número de nuevos estudiantes. |
Nota. Elaboración propia.
| Origen Destino | 1. Demografía | 2. Economía Femenina | 3. Social | 4. Educación | 5. Infraestructura | 6. Político |
|---|---|---|---|---|---|---|
| 1. Demografía | — | flujo.preadolescentes.a.jovenes →
entrada.pool |
— | poblacion.preadolescentes →
matriculacion.secundaria;
poblacion.adultos.jovenes/adultos/adultos.mayores →
proporcion.con.prepa |
— | flujo.jovenes.a.adultos.jovenes →
tasa.matrimonios.anuales |
| 2. Economía Femenina | — | — | — | presion.cuidados.efectiva →
tasa.desercion.femenina.secundaria,
tasa.desercion.femenina.preparatoria |
— | — |
| 3. Social | — | — | — | consumo.alcohol →
tasa.desercion.masculina.secundaria,
tasa.desercion.masculina.preparatoria |
— | — |
| 4. Educación | — | — | acervo.graduados → proporcion.con.prepa →
machismo → violencia.intrafamiliar |
— | — | — |
| 5. Infraestructura | — | — | tasa.asistencia.prevencion (Puente 7) →
reduccion.consumo |
— | — | — |
| 6. Político | — | — | — | — | — | — |
| Variable de salida (output) | Sector origen | Variable/ecuación de entrada afectada | Sector destino | Efecto causal |
|---|---|---|---|---|
flujo.preadolescentes.a.jovenes × fraccion.femenina |
Demografía | entrada.pool |
Economía Femenina | Determina la única vía de ingreso al pool laboral femenino (stock
poblacion.femenina.laboral) |
poblacion.preadolescentes |
Demografía | matriculacion.secundaria |
Educación | Determina la base de nuevos estudiantes que ingresan a secundaria cada año |
poblacion.adultos.jovenes + poblacion.adultos + poblacion.adultos.mayores |
Demografía | Denominador de proporcion.con.prepa |
Educación / Machismo | Define el universo poblacional sobre el cual se mide la escolaridad acumulada |
flujo.jovenes.a.adultos.jovenes × porcentaje.que.se.casa |
Demografía | tasa.matrimonios.anuales |
Político | Determina el flujo de enajenaciones ejidales
(enajenacion.ejidal) que alimenta
personas.sin.certificado |
presion.cuidados.efectiva |
Economía Femenina | tasa.desercion.femenina.secundaria,
tasa.desercion.femenina.preparatoria |
Educación | Amplifica la deserción femenina en ambos niveles vía
sensibilidad.cuidados.desercion.secundaria y
sensibilidad.cuidados.desercion.prepa |
acervo.graduados |
Educación | proporcion.con.prepa → machismo |
Machismo (auxiliar) | Determina el nivel de machismo estructural: más acervo → menor machismo |
machismo |
Machismo (auxiliar) | violencia.intrafamiliar (dentro del ciclo iterativo de
crecimiento.consumo) |
Social | Amplifica directamente la violencia intrafamiliar, que a su vez
eleva salud.mental.vulnerable y
crecimiento.consumo |
estudiantes.secundaria |
Educación (interno) | matriculacion.preparatoria |
Educación (interno) | Determina el flujo de transición de secundaria a preparatoria
(depende a su vez de poblacion.preadolescentes) |
consumo.alcohol |
Social | tasa.desercion.masculina.secundaria,
tasa.desercion.masculina.preparatoria |
Educación | Amplifica la deserción masculina en ambos niveles vía
sensibilidad.alcohol.desercion.secundaria y
sensibilidad.alcohol.desercion.prepa |
tasa.asistencia.prevencion (Puente 7, derivado de
asistencia.al.centro) |
Infraestructura | reduccion.consumo (factor
1 + tasa.asistencia.prevencion) |
Social | Refuerza la reducción del consumo de alcohol: más asistencia al centro → mayor efecto preventivo |
| — | Político | — | — | El subsistema político no produce ninguna variable que retroalimente a otros subsistemas; actúa como receptor terminal |
El único ciclo cerrado entre dos subsistemas distintos es Educación ↔︎ Social, a través de dos variables en direcciones opuestas:
acervo.graduados →
proporcion.con.prepa → machismo →
violencia.intrafamiliar →
salud.mental.vulnerable →
crecimiento.consumoconsumo.alcohol →
tasa.desercion.masculina.secundaria /
tasa.desercion.masculina.preparatoria →
estudiantes.secundaria /
estudiantes.preparatoria → graduados →
acervo.graduadosTodos los demás puentes (Demografía a Economía Femenina/Educación/Político, Economía Femenina a Educación, Infraestructura a Social) son unidireccionales: el subsistema de origen no recibe retroalimentación del subsistema de destino dentro del escenario base.
La función modelo_MN está organizada en seis bloques
secuenciales que respetan estrictamente el orden causal del sistema:
cada bloque puede usar los resultados de los bloques anteriores pero
nunca de los posteriores, lo que garantiza que en cada paso de
integración las variables auxiliares se calculen con información ya
disponible y no con valores del periodo anterior. El vector de derivadas
que devuelve la función respeta exactamente el orden de los 19 stocks
tal como aparecen en InitialConditions, requisito estricto
de deSolve para que cada derivada se asocie correctamente
con su stock correspondiente durante la integración Runge-Kutta de
cuarto orden.
modelo_MN <- function(t, state, parameters) {
with(as.list(c(state, parameters)), {
# =========================================================================
# PUENTE 1 — Población total [personas]
# =========================================================================
poblacion.total <- poblacion.ninos + poblacion.preadolescentes + poblacion.jovenes + poblacion.adultos.jovenes + poblacion.adultos + poblacion.adultos.mayores # Suma de los seis grupos de edad: sirve de denominador demográfico general.
# =========================================================================
# SUBSISTEMA 1 — DEMOGRAFÍA
# =========================================================================
fraccion.femenina <- 1 / (1 + proporcion.masculino.femenino) # Fracción femenina de la población, a partir de la razón H/M.
poblacion.edad.fertil <- (poblacion.jovenes + poblacion.adultos.jovenes + poblacion.adultos) * fraccion.femenina # Mujeres en edad fértil (15-59): jóvenes+adultos.jóvenes+adultos × fracción femenina.
nacimientos <- poblacion.edad.fertil * tasa.fertilidad # Nacimientos anuales con tasa única sobre toda la población fértil.
flujo.ninos.a.preadolescentes <- poblacion.ninos / duracion.grupo.ninos # Niños que cumplen 10 años.
flujo.preadolescentes.a.jovenes <- poblacion.preadolescentes / duracion.grupo.preadolescentes # Preadolescentes que cumplen 15 años.
flujo.jovenes.a.adultos.jovenes <- poblacion.jovenes / duracion.grupo.jovenes # Jóvenes que cumplen 20 años.
flujo.adultos.jovenes.a.adultos <- poblacion.adultos.jovenes / duracion.grupo.adultos.jovenes # Adultos jóvenes que cumplen 25 años.
flujo.adultos.a.adultos.mayores <- poblacion.adultos / duracion.grupo.adultos # Adultos que cumplen 60 años.
fallecimientos <- poblacion.adultos.mayores / duracion.grupo.adultos.mayores # Única salida del sistema por causa natural.
emigracion.ninos <- poblacion.ninos * tasa.emigracion.ninos # Emigración del grupo 0-9.
emigracion.preadolescentes <- poblacion.preadolescentes * tasa.emigracion.preadolescentes # Emigración del grupo 10-14.
emigracion.jovenes <- poblacion.jovenes * tasa.emigracion.jovenes # Emigración del grupo 15-19.
emigracion.adultos.jovenes <- poblacion.adultos.jovenes * tasa.emigracion.adultos.jovenes # Emigración del grupo 20-24, la mayor del sistema.
emigracion.adultos <- poblacion.adultos * tasa.emigracion.adultos # Emigración del grupo 25-59.
emigracion.adultos.mayores <- poblacion.adultos.mayores * tasa.emigracion.adultos.mayores # Emigración del grupo 60+, la menor del sistema.
# =========================================================================
# SUBSISTEMA 2 — ECONOMÍA FEMENINA
# Incluye las palancas de política de Doc 4 (incremento.contratacion, incremento.emprendimiento, eficacia.redistribucion, eficacia.cooperativas), inertes en escenario base (=0), por lo que las ecuaciones se reducen exactamente a la versión anterior.
# =========================================================================
trabajo.cuidados <- poblacion.ninos * tasa.cuidados.infante + poblacion.adultos.mayores * tasa.cuidados.tercera.edad + numero.viviendas * tasa.cuidados.hogar # Demanda de cuidado infantil [mujeres-equivalente], demanda de cuidado de adultos mayores y demanda de mantenimiento del hogar.
presion.cuidados <- trabajo.cuidados / (trabajo.cuidados + punto.inflexion.cuidados) # Índice logístico 0-1 de saturación de cuidados, sin reducción por políticas.
presion.cuidados.efectiva <- presion.cuidados * (1 - eficacia.redistribucion) * (1 - eficacia.cooperativas) # Presión de cuidados tras absorción por programas de redistribución y por cooperativas de cuidado comunitario (Doc 4). En base = presion.cuidados.
participacion.femenina <- mujeres.activas / max(mujeres.activas + mujeres.inactivas, 1) # Mujeres activas como fracción del pool laboral total.
expectativas.empleo <- min(1, expectativas.base * (1 + tasa.emprendimiento.femenino)) # Expectativas de empleo, acotadas a 1, modulan el emprendimiento.
entrada.pool <- flujo.preadolescentes.a.jovenes * fraccion.femenina # Mujeres que cumplen 15 años, entran al pool laboral femenino directo a inactivas.
salida.natural.activas <- mujeres.activas * tasa.salida.natural.laboral # Salida del pool por envejecimiento (mujeres activas).
salida.natural.inactivas <- mujeres.inactivas * tasa.salida.natural.laboral # Salida del pool por envejecimiento (mujeres inactivas).
tasa.contratacion.efectiva <- tasa.contratacion.femenina * (1 + incremento.contratacion) # Tasa de contratación ajustada por política de PSN (Doc 4). En base = tasa.contratacion.femenina.
tasa.emprendimiento.efectiva <- tasa.emprendimiento.femenino * (1 + incremento.emprendimiento) # Tasa de emprendimiento ajustada por política de PSN (Doc 4). En base = tasa.emprendimiento.femenino.
contrataciones <- min(mujeres.inactivas,poblacion.femenina.laboral * tasa.contratacion.efectiva) # Mujeres que consiguen empleo, acotado al stock de inactivas.
emprendimiento <- min(mujeres.inactivas,poblacion.femenina.laboral * tasa.emprendimiento.efectiva * expectativas.empleo) # Mujeres que emprenden, acotado al stock de inactivas.
tasa.salida.laboral <- tasa.despidos.femeninos * (1 + presion.cuidados.efectiva) # Despidos base amplificados por la presión de cuidados efectiva (sin término de violencia económica, removido).
mujeres.que.dejan.actividad <- min(mujeres.activas, mujeres.activas * tasa.salida.laboral) # Mujeres activas que abandonan su actividad económica, acotado al stock.
# =========================================================================
# PUENTE 7 — Asistencia preventiva derivada del centro comunitario [0-1]
# Se calcula antes de educación y social porque ambas lo requieren.
# =========================================================================
poblacion.susceptible.alcohol <- poblacion.jovenes + poblacion.adultos.jovenes + poblacion.adultos # Población 15-59, susceptible al consumo de alcohol.
tasa.asistencia.prevencion <- min(1, asistencia.al.centro / max(poblacion.susceptible.alcohol, 1)) # Fracción de la población susceptible alcanzada por el centro, acotada a 1.
# =========================================================================
# SUBSISTEMA 4 — EDUCACIÓN
# Se calcula antes de social porque acervo.graduados → machismo → violencia.
# Incluye factores nuevos del equipo educación (factor.cuidados.*) y la calibración actualizada (tasa.transicion.preparatoria=0.38, tasa.base.abandono.preparatoria=0.20). La presión de cuidados que entra a las sensibilidades femeninas es la versión efectiva.
# =========================================================================
matriculacion.secundaria <- poblacion.preadolescentes * prop.ingreso.secundaria * calidad.secundaria * acceso.secundaria # Matriculación a secundaria: preadolescentes disponibles por proporción de ingreso por calidad institucional por acceso geográfico.
matriculacion.preparatoria <- estudiantes.secundaria * tasa.transicion.preparatoria * calidad.preparatoria * (1 / (1 + aislamiento.geografico)) # Matriculación a prepa: stock de secundaria por tasa de transición (actualizada a 0.38) por calidad institucional penalizada por aislamiento geográfico.
tasa.desercion.masculina.secundaria <- tasa.minima.desercion.secundaria + tasa.base.abandono.secundaria * (1 + sensibilidad.alcohol.desercion.secundaria * consumo.alcohol) * (1 - (((involucramiento.tutores - 1) / 4 + (plan.de.vida - 1) / 4) / 2) * (1 / (1 + aislamiento.geografico))) # Deserción masculina de secundaria: piso + base amplificada por alcohol, reducida por involucramiento de tutores y plan de vida.
tasa.desercion.femenina.secundaria <- (tasa.minima.desercion.secundaria + tasa.base.abandono.secundaria * (1 + sensibilidad.cuidados.desercion.secundaria * presion.cuidados.efectiva) * (1 - (((involucramiento.tutores - 1) / 4 + (plan.de.vida - 1) / 4) / 2) * (1 / (1 + aislamiento.geografico)))) * (1 + factor.cuidados.secundaria) # Deserción femenina de secundaria: piso + base amplificada por presión de cuidados efectiva multiplicada por el factor de cuidados ENUT 2024 (equipo educación).
tasa.desercion.masculina.preparatoria <- tasa.minima.desercion.preparatoria + tasa.base.abandono.preparatoria * (1 + sensibilidad.alcohol.desercion.prepa * consumo.alcohol + sensibilidad.distancia.desercion * distancia.a.preparatoria) # Deserción masculina de prepa: piso + base (0.20) amplificada por alcohol y distancia. Sin factor de migración: ya capturada por la cadena de emigración demográfica.
tasa.desercion.femenina.preparatoria <- (tasa.minima.desercion.preparatoria + tasa.base.abandono.preparatoria * (1 + sensibilidad.cuidados.desercion.prepa * presion.cuidados.efectiva + sensibilidad.distancia.desercion * distancia.a.preparatoria)) * (1 + factor.cuidados.preparatoria) # Deserción femenina de prepa: piso + base (0.20) amplificada por presión de cuidados efectiva y distancia multiplicada por el factor de cuidados ENUT 2024 (equipo educación).
desercion.masculina.secundaria <- 0.5 * estudiantes.secundaria * tasa.desercion.masculina.secundaria # Flujo de deserción masculina de secundaria.
desercion.femenina.secundaria <- 0.5 * estudiantes.secundaria * tasa.desercion.femenina.secundaria # Flujo de deserción femenina de secundaria.
desercion.masculina.preparatoria <- 0.5 * estudiantes.preparatoria * tasa.desercion.masculina.preparatoria # Flujo de deserción masculina de prepa.
desercion.femenina.preparatoria <- 0.5 * estudiantes.preparatoria * tasa.desercion.femenina.preparatoria # Flujo de deserción femenina de prepa.
tasa.desercion.agregada <- (desercion.masculina.secundaria + desercion.femenina.secundaria + desercion.masculina.preparatoria + desercion.femenina.preparatoria) / max(estudiantes.secundaria + estudiantes.preparatoria, 1e-6) # Indicador sintético: deserción total / matrícula combinada.
graduados <- (0.5 * estudiantes.preparatoria * (1 - tasa.desercion.masculina.preparatoria) + 0.5 * estudiantes.preparatoria * (1 - tasa.desercion.femenina.preparatoria)) / años.duracion.preparatoria # Flujo de egreso: estudiantes que no desertan dividido entre 3 años que dura la preparatoria.
salida.acervo.graduados <- acervo.graduados * (tasa.emigracion.adultos.jovenes + tasa.emigracion.adultos + tasa.emigracion.adultos.mayores + (1 / duracion.grupo.adultos.mayores)) # Salida del acervo de graduados por emigración de las cohortes adultas y por fallecimiento de adultos mayores.
# =========================================================================
# MACHISMO — variable endógena auxiliar, depende solo de proporcion.con.prepa.
# =========================================================================
proporcion.con.prepa <- min(1, acervo.graduados / max(poblacion.adultos.jovenes + poblacion.adultos + poblacion.adultos.mayores, 1)) # Proporción de adultos con prepa completa sobre el total de adultos jóvenes+adultos+adultos mayores, acotada a 1.
machismo <- (1 - proporcion.con.prepa) * sensibilidad.machismo # Machismo inversamente proporcional a la escolaridad acumulada; calibrado para ≈0.568 con casi ningún graduado.
# =========================================================================
# SUBSISTEMA 3 — SOCIAL
# Estructura del equipo social (Doc 2). Machismo = el endógeno calculado arriba. La reducción del consumo se refuerza con el Puente 7 (tasa.asistencia.prevencion), reconectando infraestructura → social.
# =========================================================================
regulacion.consumo.endogena <- coef.regulacion.consumo * sqrt(consumo.alcohol / consumo.alcohol.referencia) # Autorregulación social del consumo: crece con la razón consumo/referencia.
disponibilidad.alcohol <- coef.disponibilidad.alcohol * (consumo.alcohol / regulacion.consumo.endogena) / (consumo.alcohol.referencia / coef.regulacion.consumo) # Disponibilidad de alcohol en el entorno, en función de la razón consumo/regulación respecto a su referencia.
normalizacion.consumo <- coef.normalizacion.consumo * (disponibilidad.alcohol * consumo.alcohol) / (coef.disponibilidad.alcohol * consumo.alcohol.referencia) # Normalización del consumo: razón disponibilidad×consumo respecto a su referencia.
crecimiento.consumo <- coef.crecimiento.consumo # Inicialización del ciclo iterativo de crecimiento del consumo.
for (i in 1:2) { # Dos iteraciones para resolver la simultaneidad violencia↔salud mental↔crecimiento sin pasar por el stock.
violencia.intrafamiliar <- coef.violencia.intrafamiliar * (machismo + crecimiento.consumo) / (machismo.referencia.social + coef.crecimiento.consumo) # Violencia intrafamiliar amplificada por machismo endógeno y por el crecimiento del consumo normalizada respecto a la calibración de referencia del equipo social.
salud.mental.vulnerable <- coef.salud.mental.vulnerable * ((violencia.intrafamiliar + estres.economico + consumo.alcohol) / acceso.salud.mental) / ((coef.violencia.intrafamiliar + estres.economico + consumo.alcohol.referencia) / acceso.salud.mental.referencia.social) # Salud mental vulnerable: agrega violencia, estrés económico exógeno y consumo de alcohol normalizado por el acceso a salud mental respecto a su referencia.
crecimiento.consumo <- coef.crecimiento.consumo * (salud.mental.vulnerable * disponibilidad.alcohol * normalizacion.consumo) / coef.salud.mental.vulnerable / coef.disponibilidad.alcohol / coef.normalizacion.consumo } # Flujo de entrada (crecimiento): proporcional a salud mental vulnerable, disponibilidad y normalización normalizado respecto a sus valores base.
reduccion.consumo <- coef.reduccion.consumo * (consumo.alcohol * acceso.salud.mental) / (consumo.alcohol.referencia * acceso.salud.mental.referencia.social) * (1 + tasa.asistencia.prevencion) # Flujo de salida (reducción): proporcional al consumo y al acceso a salud mental reforzado por el Puente 7 (asistencia al centro comunitario, 0-1).
# =========================================================================
# SUBSISTEMA 5 — INFRAESTRUCTURA
# =========================================================================
fraccion.uso.centro <- min(1, asistencia.al.centro / capacidad.maxima.centro) # Fracción de uso del centro respecto al aforo máximo.
focos.en.uso <- focos.base.encendidos + (focos.total.instalados - focos.base.encendidos) * fraccion.uso.centro # Focos encendidos: base + adicionales según uso del centro.
horas.iluminacion <- horas.iluminacion.base + (horas.iluminacion.maxima - horas.iluminacion.base) * fraccion.uso.centro # Horas de iluminación: base + adicionales según uso del centro.
demanda.iluminacion <- focos.en.uso * horas.iluminacion * consumo.por.foco * dias.operacion.anuales # Demanda eléctrica anual de iluminación.
prop.uso.pc.efectiva <- min(1, proporcion.usuarios.pc * (1 + alpha.uso * percepcion.calidad.centro)) # Proporción de usuarios de PC amplificada por la percepción de calidad del centro.
horas.uso.pc.efectivas <- horas.uso.pc * (1 + alpha.horas * percepcion.calidad.centro) # Horas de uso de PC amplificadas por la percepción de calidad.
usuarios.que.usan.pc <- asistencia.al.centro * prop.uso.pc.efectiva # Usuarios diarios de PC.
demanda.computadoras <- usuarios.que.usan.pc * horas.uso.pc.efectivas * consumo.por.pc * dias.operacion.anuales # Demanda eléctrica anual de computadoras.
disponibilidad.luz.energia <- min(1, capacidad.electrica / max(demanda.iluminacion, 1)) # Disponibilidad de luz: capacidad eléctrica vs demanda de iluminación.
energia.residual.luz <- max(0, capacidad.electrica - demanda.iluminacion) # Energía remanente tras iluminación, disponible para computadoras.
disponibilidad.pc.energia <- min(1, energia.residual.luz / max(demanda.computadoras, 1)) # Disponibilidad energética de PCs: energía residual vs demanda de computadoras.
disponibilidad.pc.social <- min(1, num.computadoras / max(usuarios.que.usan.pc, 1)) # Disponibilidad social de PCs: 4 máquinas físicas vs usuarios potenciales.
disponibilidad.computadoras <- disponibilidad.pc.energia * disponibilidad.pc.social # Disponibilidad total de PCs: combina cuello de botella eléctrico y físico.
deficit.electrico <- max(0,demanda.iluminacion + demanda.computadoras - capacidad.electrica) # Déficit eléctrico: demanda total que excede la capacidad instalada.
atractividad.centro <- peso.calidad.luz * disponibilidad.luz.energia + peso.calidad.computadoras * disponibilidad.computadoras + peso.calidad.starlink * starlink.activo # Atractividad real: promedio ponderado de disponibilidad de luz de computadoras y de Starlink (0 en escenario base, domina si activo=1).
cambio.percepcion <- (atractividad.centro - percepcion.calidad.centro) / tiempo.ajuste.percepcion # La percepción converge hacia la atractividad real con retardo de 1 año.
crecimiento.neto.asistencia <- tasa.crecimiento.centro * (percepcion.calidad.centro - theta.percepcion) * asistencia.al.centro * (1 - asistencia.al.centro / capacidad.maxima.centro) # Crecimiento logístico con umbral: positivo si percepción>theta, negativo si está por debajo saturado por el aforo máximo.
deterioro.capacidad.electrica <- capacidad.electrica * tasa.deterioro.infraestructura # Deterioro anual de la capacidad eléctrica instalada, sin inversión de reposición.
# =========================================================================
# SUBSISTEMA 6 — POLÍTICO
# =========================================================================
carga.administrativa <- max(personas.en.espera / capacidad.institucional, 0.01) # Carga administrativa: trámites en espera sobre capacidad institucional, con piso 0.01.
retraso.efectivo <- ifelse(t < 0.5, retraso.reestructuracion, 1.0) # Retraso adicional de reestructuración solo en el primer semestre de simulación.
tasa.matrimonios.anuales <- flujo.jovenes.a.adultos.jovenes * porcentaje.que.se.casa # Matrimonios anuales: jóvenes que cumplen 20 años por la fracción que se casa.
enajenacion.ejidal <- tasa.matrimonios.anuales * tasa.enajenacion.anual # Enajenaciones ejidales generadas por matrimonios.
inicio.tramite.ejidal <- personas.sin.certificado * tasa.inicio.tramite.anual # Personas sin certificado que inician trámite de regularización.
rechazo.tramite.ejidal <- personas.en.espera * tasa.rechazo.tramite.anual * carga.administrativa # Rechazo de trámites en espera, amplificado por carga administrativa.
muertes.de.ejidatarios <- ejidatarios * tasa.mortalidad.ejidatarios.anual # Ejidatarios certificados que fallecen por año.
poblacion.intestada <- muertes.de.ejidatarios * fraccion.sin.lista.sucesion # Fallecidos sin lista de sucesión, generan nuevas personas sin certificado.
resolucion.tramite.ejidal <- min(personas.en.espera / tiempo.tramite.anual,capacidad.institucional) * fraccion.con.lista.sucesion / retraso.efectivo # Resolución de trámites: limitada por capacidad institucional y por la fracción con documentación completa, con retraso inicial.
# =========================================================================
# ECUACIONES DIFERENCIALES
# El orden del c(...) debe coincidir exactamente con InitialConditions.
# =========================================================================
d.poblacion.ninos <- nacimientos - flujo.ninos.a.preadolescentes - emigracion.ninos # Niños: entran por nacimiento, salen por maduración a 10 años y emigración.
d.poblacion.preadolescentes <- flujo.ninos.a.preadolescentes - flujo.preadolescentes.a.jovenes - emigracion.preadolescentes # Preadolescentes: entran los que cumplen 10, salen los que cumplen 15 y por emigración.
d.poblacion.jovenes <- flujo.preadolescentes.a.jovenes - flujo.jovenes.a.adultos.jovenes - emigracion.jovenes # Jóvenes: entran los que cumplen 15, salen los que cumplen 20 y por emigración.
d.poblacion.adultos.jovenes <- flujo.jovenes.a.adultos.jovenes - flujo.adultos.jovenes.a.adultos - emigracion.adultos.jovenes # Adultos jóvenes: entran los que cumplen 20, salen los que cumplen 25 y por emigración.
d.poblacion.adultos <- flujo.adultos.jovenes.a.adultos - flujo.adultos.a.adultos.mayores - emigracion.adultos # Adultos: entran los que cumplen 25, salen los que cumplen 60 y por emigración.
d.poblacion.adultos.mayores <- flujo.adultos.a.adultos.mayores - fallecimientos - emigracion.adultos.mayores # Adultos mayores: entran los que cumplen 60, salen por fallecimiento y emigración.
d.poblacion.femenina.laboral <- entrada.pool - (salida.natural.activas + salida.natural.inactivas) # Pool laboral femenino: entra desde preadolescentes que cumplen 15 sale por envejecimiento de activas e inactivas.
d.mujeres.inactivas <- entrada.pool + mujeres.que.dejan.actividad - contrataciones - emprendimiento - salida.natural.inactivas # Inactivas: entran nuevas al pool y mujeres que dejan actividad salen por contratación por emprendimiento y por envejecimiento.
d.mujeres.activas <- contrataciones + emprendimiento - mujeres.que.dejan.actividad - salida.natural.activas # Activas: entran por contratación y emprendimiento salen al dejar actividad y por envejecimiento.
d.estudiantes.secundaria <- matriculacion.secundaria - desercion.masculina.secundaria - desercion.femenina.secundaria - matriculacion.preparatoria # Secundaria: entra matriculación, salen deserción masculina, femenina y transición a prepa.
d.estudiantes.preparatoria <- matriculacion.preparatoria - desercion.masculina.preparatoria - desercion.femenina.preparatoria - graduados # Prepa: entra matriculación desde secundaria, salen deserción masculina, femenina y graduados.
d.acervo.graduados <- graduados - salida.acervo.graduados # Acervo de graduados: entra el flujo anual de egreso, sale por emigración y fallecimiento de las cohortes adultas.
d.consumo.alcohol <- max(crecimiento.consumo - reduccion.consumo, consumo.alcohol.minimo - consumo.alcohol) # Consumo de alcohol: crecimiento menos reducción, con piso mínimo estructural de 2.0 L p/c/año.
d.asistencia.al.centro <- max(crecimiento.neto.asistencia, -asistencia.al.centro) # Asistencia al centro: crecimiento logístico con umbral, no puede bajar de cero.
d.capacidad.electrica <- -deterioro.capacidad.electrica # Capacidad eléctrica: solo decrece por deterioro, sin inversión de reposición en escenario base.
d.percepcion.calidad.centro <- cambio.percepcion # Percepción de calidad: converge hacia la atractividad real con retardo de 1 año.
d.personas.sin.certificado <- enajenacion.ejidal + poblacion.intestada + rechazo.tramite.ejidal - inicio.tramite.ejidal # Sin certificado: entran por enajenación, intestados y rechazo de trámite salen al iniciar trámite.
d.personas.en.espera <- inicio.tramite.ejidal - rechazo.tramite.ejidal - resolucion.tramite.ejidal # En espera: entran al iniciar trámite, salen por rechazo o resolución.
d.ejidatarios <- resolucion.tramite.ejidal - muertes.de.ejidatarios # Ejidatarios certificados: entran por resolución de trámite, salen por fallecimiento.
list(
c(
d.poblacion.ninos, # 1. Stock: población 0-9 años.
d.poblacion.preadolescentes, # 2. Stock: población 10-14 años.
d.poblacion.jovenes, # 3. Stock: población 15-19 años.
d.poblacion.adultos.jovenes, # 4. Stock: población 20-24 años.
d.poblacion.adultos, # 5. Stock: población 25-59 años.
d.poblacion.adultos.mayores, # 6. Stock: población 60+ años.
d.poblacion.femenina.laboral, # 7. Stock: pool laboral femenino total.
d.mujeres.inactivas, # 8. Stock: mujeres económicamente inactivas.
d.mujeres.activas, # 9. Stock: mujeres económicamente activas.
d.estudiantes.secundaria, # 10. Stock: estudiantes de secundaria.
d.estudiantes.preparatoria, # 11. Stock: estudiantes de preparatoria.
d.acervo.graduados, # 12. Stock: acervo de graduados de prepa.
d.consumo.alcohol, # 13. Stock: consumo de alcohol per cápita.
d.asistencia.al.centro, # 14. Stock: asistencia al centro comunitario.
d.capacidad.electrica, # 15. Stock: capacidad eléctrica instalada.
d.percepcion.calidad.centro, # 16. Stock: percepción de calidad del centro.
d.personas.sin.certificado, # 17. Stock: personas sin certificado ejidal.
d.personas.en.espera, # 18. Stock: personas con trámite en espera.
d.ejidatarios # 19. Stock: ejidatarios certificados.
),
poblacion.total = poblacion.total, # Auxiliar: población total.
participacion.femenina = participacion.femenina, # Auxiliar: participación económica femenina.
trabajo.cuidados = trabajo.cuidados, # Auxiliar: demanda de cuidados [mujeres-equivalente].
presion.cuidados = presion.cuidados, # Auxiliar: presión de cuidados sin reducción de política.
presion.cuidados.efectiva = presion.cuidados.efectiva, # Auxiliar: presión de cuidados tras redistribución/cooperativas.
tasa.asistencia.prevencion = tasa.asistencia.prevencion, # Auxiliar: Puente 7, fracción de población susceptible alcanzada por el centro.
regulacion.consumo.endogena = regulacion.consumo.endogena, # Auxiliar: autorregulación social endógena del consumo.
disponibilidad.alcohol = disponibilidad.alcohol, # Auxiliar: disponibilidad de alcohol en el entorno.
normalizacion.consumo = normalizacion.consumo, # Auxiliar: normalización del consumo respecto a referencia.
violencia.intrafamiliar = violencia.intrafamiliar, # Auxiliar: índice de violencia intrafamiliar.
salud.mental.vulnerable = salud.mental.vulnerable, # Auxiliar: índice de salud mental vulnerable.
crecimiento.consumo = crecimiento.consumo, # Auxiliar: flujo de crecimiento del consumo de alcohol.
reduccion.consumo = reduccion.consumo, # Auxiliar: flujo de reducción del consumo de alcohol.
matriculacion.secundaria = matriculacion.secundaria, # Auxiliar: flujo de matriculación a secundaria.
matriculacion.preparatoria = matriculacion.preparatoria, # Auxiliar: flujo de matriculación a preparatoria.
desercion.masculina.secundaria = desercion.masculina.secundaria, # Auxiliar: flujo de deserción masculina de secundaria.
desercion.femenina.secundaria = desercion.femenina.secundaria, # Auxiliar: flujo de deserción femenina de secundaria.
desercion.masculina.preparatoria = desercion.masculina.preparatoria,# Auxiliar: flujo de deserción masculina de prepa.
desercion.femenina.preparatoria = desercion.femenina.preparatoria, # Auxiliar: flujo de deserción femenina de prepa.
tasa.desercion.agregada = tasa.desercion.agregada, # Auxiliar: indicador sintético de deserción.
graduados = graduados, # Auxiliar: flujo de graduación de prepa.
proporcion.con.prepa = proporcion.con.prepa, # Auxiliar: proporción de adultos con prepa completa.
machismo = machismo, # Auxiliar: índice de machismo estructural.
contrataciones = contrataciones, # Auxiliar: flujo de contrataciones femeninas.
emprendimiento = emprendimiento, # Auxiliar: flujo de emprendimientos femeninos.
mujeres.que.dejan.actividad = mujeres.que.dejan.actividad, # Auxiliar: flujo de salida del mercado laboral femenino.
deficit.electrico = deficit.electrico, # Auxiliar: déficit eléctrico del centro comunitario.
atractividad.centro = atractividad.centro, # Auxiliar: atractividad real del centro comunitario.
disponibilidad.luz.energia = disponibilidad.luz.energia, # Auxiliar: disponibilidad eléctrica de iluminación.
disponibilidad.computadoras = disponibilidad.computadoras, # Auxiliar: disponibilidad de computadoras.
tasa.matrimonios.anuales = tasa.matrimonios.anuales # Auxiliar: flujo de matrimonios anuales (Puente 6).
)
})
}
La calibración del macromodelo integra cuatro tipos de fuentes de datos, combinadas mediante triangulación para cada subsistema. El primer tipo son las bases de datos demográficas oficiales de cobertura nacional o municipal, encabezadas por la Conciliación Demográfica 1990-2040 de CONAPO para el municipio de Mier y Noriega, que alimenta la totalidad del subsistema de demografía (stocks iniciales por grupo de edad, razón hombres-mujer, tasas de emigración diferenciadas y tasa de fertilidad), así como el Censo de Población y Vivienda 2020 de INEGI, que aporta el factor de escala localidad-municipio (531/7,788 = 0.0682) y los stocks iniciales del subsistema de economía femenina y del número de viviendas.
El segundo tipo son las encuestas nacionales especializadas en hogares y uso del tiempo, que calibran los parámetros de comportamiento del subsistema social y de economía femenina: la ENDIREH 2021 para Nuevo León (violencia de género), la ENCODAT 2016-2017 para la zona rural noreste (consumo de alcohol de referencia, vía Estadísticas Mundiales de Salud OMS) y la ENUT 2019/2024 (participación en trabajo de cuidados y los factores de cuidados que amplifican la deserción femenina).
El tercer tipo son los registros administrativos sectoriales, principalmente el Formato 911 de la SEP (matrícula y tasas base de abandono en secundaria y preparatoria), el DENUE 2019 (unidades económicas y vacantes potenciales para la tasa de contratación femenina), la Estadística de Matrimonios (EMAT) y las Estadísticas de Defunciones Registradas (EDR) a nivel municipal, que alimentan el subsistema político.
El cuarto tipo son los datos primarios cualitativos y cuantitativos levantados directamente por PSN: el inventario de campo 2024 del centro comunitario (focos, computadoras, capacidad eléctrica, aforo), la observación directa de asistencia, las dos visitas de campo al ejido (insumo del subsistema político y de la matrícula real de preparatoria) y la encuesta a familias aplicada por el equipo de socioformación (involucramiento de tutores y plan de vida). Finalmente, un conjunto de parámetros estructurales o de calibración (duraciones de grupo de edad, umbrales de percepción, pesos de atractividad, sensibilidades de deserción) se documentan explícitamente como supuestos del modelo, justificados por su coherencia con la literatura o por calibración interna para reproducir las condiciones iniciales observadas en campo.
La tabla completa de parámetros, condiciones iniciales, valores, fuentes y justificación específica por variable se presenta en la sección II (Código de Parámetros) y III (Código de Condiciones Iniciales) de este documento, con una columna de fuente y justificación para cada una de las más de 90 variables del modelo.
El modelo modelo_MN está construido para que cada una de
las 19 ecuaciones diferenciales tenga unidades de [unidad del
stock] / año, consistente con el horizonte de integración
mensual del modelo (tiempos <- seq(0, 24, by = 1/12)). A
continuación se presenta el inventario completo de stocks, flujos,
auxiliares y constantes, organizado por subsistema, junto con la
verificación de que cada ecuación es dimensionalmente homogénea.
Los 19 stocks del modelo están expresados en dos unidades fundamentales: personas (16 stocks demográficos, educativos y políticos) y unidades específicas de infraestructura y comportamiento (3 stocks: litros per cápita, kWh y un índice adimensional).
| # | Stock | Unidad | Valor inicial | Fuente |
|---|---|---|---|---|
| 1 | poblacion.ninos | personas | 111 | CONAPO 2026 × factor de escala (0.0682) |
| 2 | poblacion.preadolescentes | personas | 56 | CONAPO 2026 × factor de escala |
| 3 | poblacion.jovenes | personas | 51 | CONAPO 2026 × factor de escala |
| 4 | poblacion.adultos.jovenes | personas | 41 | CONAPO 2026 × factor de escala |
| 5 | poblacion.adultos | personas | 200 | CONAPO 2026 × factor de escala |
| 6 | poblacion.adultos.mayores | personas | 96 | CONAPO 2026 × factor de escala |
| 7 | poblacion.femenina.laboral | mujeres (15-59 años) | 144 | Censo INEGI 2020 |
| 8 | mujeres.inactivas | mujeres | 108 | Censo INEGI 2020 |
| 9 | mujeres.activas | mujeres | 36 | Censo INEGI 2020 |
| 10 | estudiantes.secundaria | personas | 48 | Formato 911 |
| 11 | estudiantes.preparatoria | personas | 18 | Visita de campo PSN |
| 12 | acervo.graduados | personas | 38 | Estimación propia |
| 13 | consumo.alcohol | L p/c/año | 6.0 | OMS, ENCODAT 2016-2017 |
| 14 | asistencia.al.centro | personas/día | 10 | Observación de campo PSN 2024 |
| 15 | capacidad.electrica | kWh/año | 2000 | Inventario eléctrico PSN 2024 |
| 16 | percepcion.calidad.centro | índice [0-1] | 0.45 | Calculado desde atractividad inicial |
| 17 | personas.sin.certificado | personas | 17 | Segunda visita de campo |
| 18 | personas.en.espera | personas | 5 | Segunda visita de campo |
| 19 | ejidatarios | personas | 28 | Segunda visita de campo |
Cada flujo que entra o sale de un stock comparte exactamente su unidad dividida por año. La tabla siguiente agrupa los flujos por subsistema y muestra la ecuación que garantiza esa consistencia.
| Subsistema | Flujo | Unidad | Ecuación que verifica la consistencia |
|---|---|---|---|
| Demografía | nacimientos | personas/año | poblacion.edad.fertil [mujeres] × tasa.fertilidad [hijos/(mujer·año)] = personas/año |
| Demografía | flujo.X.a.Y (5 flujos de maduración) | personas/año | poblacion.X [personas] / duracion.grupo.X [años] = personas/año |
| Demografía | fallecimientos | personas/año | poblacion.adultos.mayores [personas] / duracion.grupo.adultos.mayores [años] = personas/año |
| Demografía | emigracion.X (6 flujos) | personas/año | poblacion.X [personas] × tasa.emigracion.X [1/año] = personas/año |
| Economía Femenina | entrada.pool | mujeres/año | flujo.preadolescentes.a.jovenes [personas/año] × fraccion.femenina [adim] = mujeres/año |
| Economía Femenina | salida.natural.activas/inactivas | mujeres/año | mujeres.X [mujeres] × tasa.salida.natural.laboral [1/año] = mujeres/año |
| Economía Femenina | contrataciones | mujeres/año | poblacion.femenina.laboral [mujeres] × tasa.contratacion.efectiva [1/año] = mujeres/año,
acotado por mujeres.inactivas [mujeres] |
| Economía Femenina | emprendimiento | mujeres/año | poblacion.femenina.laboral [mujeres] × tasa.emprendimiento.efectiva [1/año] × expectativas.empleo [adim] = mujeres/año |
| Economía Femenina | mujeres.que.dejan.actividad | mujeres/año | mujeres.activas [mujeres] × tasa.salida.laboral [1/año] = mujeres/año |
| Educación | matriculacion.secundaria | personas/año | poblacion.preadolescentes [personas] × prop.ingreso.secundaria × calidad.secundaria × acceso.secundaria [todos adim] = personas/año
(convención: la cohorte anual de entrada a secundaria se representa
directamente como flujo anual) |
| Educación | matriculacion.preparatoria | personas/año | estudiantes.secundaria [personas] × tasa.transicion.preparatoria [1/año] × calidad.preparatoria × (1/(1+aislamiento.geografico)) [adim] = personas/año |
| Educación | desercion.X.nivel (4 flujos) | personas/año | 0.5 × estudiantes.nivel [personas] × tasa.desercion.X.nivel [1/año] = personas/año |
| Educación | graduados | personas/año | (estudiantes.preparatoria [personas] × (1-deserción) [adim]) / años.duracion.preparatoria [años] = personas/año |
| Educación | salida.acervo.graduados | personas/año | acervo.graduados [personas] × (suma de tasas de emigración + 1/duración.adultos.mayores) [1/año] = personas/año |
| Social | crecimiento.consumo | L p/c/año² | coef.crecimiento.consumo [L p/c/año²] × (razón adimensional de salud.mental.vulnerable, disponibilidad y normalización) = L p/c/año²,
integrado sobre el stock consumo.alcohol [L p/c/año] |
| Social | reduccion.consumo | L p/c/año² | coef.reduccion.consumo [L p/c/año²] × (razón adimensional consumo/acceso normalizada) × (1+tasa.asistencia.prevencion [adim]) = L p/c/año² |
| Infraestructura | crecimiento.neto.asistencia | (personas/día)/año | tasa.crecimiento.centro [1/año] × (percepcion-theta) [adim] × asistencia.al.centro [personas/día] × (1-asistencia/capacidad.maxima) [adim] = (personas/día)/año |
| Infraestructura | deterioro.capacidad.electrica | (kWh/año)/año | capacidad.electrica [kWh/año] × tasa.deterioro.infraestructura [1/año] = (kWh/año)/año |
| Infraestructura | cambio.percepcion | índice/año | (atractividad.centro - percepcion.calidad.centro) [adim] / tiempo.ajuste.percepcion [años] = 1/año,
multiplicando un índice adimensional |
| Político | inicio.tramite.ejidal | personas/año | personas.sin.certificado [personas] × tasa.inicio.tramite.anual [1/año] = personas/año |
| Político | rechazo.tramite.ejidal | personas/año | personas.en.espera [personas] × tasa.rechazo.tramite.anual [1/año] × carga.administrativa [adim] = personas/año |
| Político | resolucion.tramite.ejidal | personas/año | min(personas.en.espera [personas]/tiempo.tramite.anual [años], capacidad.institucional [personas/año]) × fraccion.con.lista.sucesion [adim] / retraso.efectivo [adim] = personas/año |
| Político | muertes.de.ejidatarios | personas/año | ejidatarios [personas] × tasa.mortalidad.ejidatarios.anual [1/año] = personas/año |
| Político | poblacion.intestada | personas/año | muertes.de.ejidatarios [personas/año] × fraccion.sin.lista.sucesion [adim] = personas/año |
| Político | enajenacion.ejidal | personas/año | tasa.matrimonios.anuales [personas/año] × tasa.enajenacion.anual [adim] = personas/año |
Una parte central de la consistencia dimensional del modelo es que todas las variables que funcionan como “índices” o “proporciones” (rango 0-1) se construyen exclusivamente a partir de razones entre cantidades de la misma unidad, o como promedios ponderados de otros índices [0-1] con pesos que suman 1. La siguiente tabla documenta los casos relevantes.
| Auxiliar | Unidad | Construcción | Verificación |
|---|---|---|---|
| fraccion.femenina | adimensional [0-1] | 1/(1+proporcion.masculino.femenino) |
razón hombres/mujer (adim) → adim |
| poblacion.edad.fertil | mujeres | (jóvenes+adultos.jóvenes+adultos) [personas] × fraccion.femenina [adim] |
personas × adim = personas |
| presion.cuidados | adimensional [0-1] | trabajo.cuidados / (trabajo.cuidados + punto.inflexion.cuidados) |
ambos términos en “mujeres-equivalente” → razón adim |
| participacion.femenina | adimensional [0-1] | mujeres.activas / (mujeres.activas+mujeres.inactivas) |
mujeres/mujeres = adim |
| proporcion.con.prepa | adimensional [0-1] | acervo.graduados [personas] / poblacion.adulta.total [personas] |
personas/personas = adim |
| machismo | adimensional [0-1] | (1-proporcion.con.prepa) [adim] × sensibilidad.machismo [adim] |
adim × adim = adim |
| tasa.asistencia.prevencion (Puente 7) | adimensional [0-1] | asistencia.al.centro [personas/día] / poblacion.susceptible.alcohol [personas] |
razón de poblaciones, acotada a 1 — unidad tratada como adim por convención del modelo (ambas magnitudes representan “personas alcanzadas”) |
| disponibilidad.luz.energia, disponibilidad.pc.energia | adimensional [0-1] | capacidad.electrica [kWh/año] / demanda.X [kWh/año] |
kWh/kWh = adim |
| disponibilidad.pc.social | adimensional [0-1] | num.computadoras [unidades] / usuarios.que.usan.pc [personas/día] |
razón unidades/personas tratada como adim por convención (cuello de botella físico) |
| atractividad.centro | adimensional [0-1] | peso.calidad.luz×disp.luz + peso.calidad.pc×disp.pc + peso.calidad.starlink×starlink.activo,
con 0.10+0.25+0.65=1.00 |
suma ponderada de índices [0-1] con pesos que suman 1 → [0-1] |
| fraccion.uso.centro | adimensional [0-1] | asistencia.al.centro [personas/día] / capacidad.maxima.centro [personas/día] |
personas/día ÷ personas/día = adim |
| Subsistema | Parámetros y unidad |
|---|---|
| Demografía | tasa.fertilidad [hijos/(mujer·año)];
duracion.grupo.* [años];
proporcion.masculino.femenino [hombres/mujer, adim];
tasa.emigracion.* [1/año] |
| Economía Femenina | tasa.contratacion.femenina,
tasa.despidos.femeninos,
tasa.emprendimiento.femenino,
tasa.salida.natural.laboral [1/año];
tasa.cuidados.* [mujeres-equiv./(persona o vivienda)];
numero.viviendas [viviendas];
punto.inflexion.cuidados [mujeres-equiv.];
expectativas.base, incremento.*,
eficacia.* [adim, 0-1] |
| Social | consumo.alcohol.referencia,
consumo.alcohol.minimo [L p/c/año];
estres.economico, acceso.salud.mental* [adim,
0-1]; coef.* [coeficientes de calibración, adimensionales o
en unidades compuestas L p/c/año / L p/c/año = adim, según la razón en
la que participan] |
| Educación | calidad.*, acceso.secundaria,
prop.ingreso.secundaria,
tasa.transicion.preparatoria [adim, 0-1];
aislamiento.geografico,
distancia.a.preparatoria [adim, normalizados];
tasa.base.abandono.*, tasa.minima.desercion.*
[1/año]; sensibilidad.* [adim];
involucramiento.tutores, plan.de.vida [escala
1-5]; factor.cuidados.* [adim];
años.duracion.preparatoria [años] |
| Machismo | sensibilidad.machismo [adim, 0-1] |
| Infraestructura | focos.total.instalados,
focos.base.encendidos [focos];
consumo.por.foco, consumo.por.pc
[kWh/(unidad·hora)]; horas.iluminacion.*,
horas.uso.pc [horas/día];
proporcion.usuarios.pc [adim];
dias.operacion.anuales [días/año];
capacidad.maxima.centro [personas/día];
num.computadoras [unidades];
tiempo.ajuste.percepcion [años];
theta.percepcion [adim, 0-1]; alpha.uso,
alpha.horas [adim]; tasa.crecimiento.centro
[1/año]; peso.calidad.* [adim, suman 1];
starlink.activo [binario];
tasa.deterioro.infraestructura [1/año] |
| Político | capacidad.institucional [personas/año];
tasa.inicio.tramite.anual,
tasa.rechazo.tramite.anual,
tasa.mortalidad.ejidatarios.anual,
tasa.enajenacion.anual, porcentaje.que.se.casa
[1/año o adim según el flujo]; fraccion.con.lista.sucesion,
fraccion.sin.lista.sucesion [adim, 0-1];
tiempo.tramite.anual [años];
retraso.reestructuracion [adim] |
La revisión sistemática de las 19 ecuaciones diferenciales y sus ~70
variables auxiliares confirma que el modelo es dimensionalmente
consistente bajo dos convenciones explícitas, ambas estándar en
modelos de dinámica de sistemas aplicados a poblaciones pequeñas:
primero, los flujos demográficos, educativos y políticos que se calculan
directamente sobre un stock de personas (sin dividir entre una duración)
se interpretan como flujos anuales por construcción, ya que cada cohorte
se actualiza una vez por año dentro del paso de integración mensual;
segundo, los índices de percepción, atractividad, machismo y
disponibilidad se construyen siempre como razones entre cantidades de la
misma unidad o como combinaciones convexas (pesos que suman 1) de
índices ya adimensionales en el rango [0-1], lo que garantiza que
percepcion.calidad.centro,
atractividad.centro, machismo,
disponibilidad.pc, presion.cuidados y
tasa.asistencia.prevencion permanezcan siempre en [0-1] y
sean comparables entre sí y contra el umbral
theta.percepcion=0.50. No se identificaron operaciones que
sumen o resten cantidades de unidades distintas (por ejemplo, personas +
litros, o kWh + índices) en ninguna de las 19 ecuaciones del modelo.
parameters <- c(
# ══════════════════ DEMOGRAFÍA ══════════════════
# Fuente: CONAPO Conciliación Demográfica 1990-2040, municipio Mier y Noriega.
tasa.fertilidad = 0.069, # Hijos/mujer/año, mujeres 15-59. PROM_HNV municipal ÷ 44 años fértiles.
duracion.grupo.ninos = 10, # Años de permanencia en el grupo 0-9.
duracion.grupo.preadolescentes = 5, # Años de permanencia en el grupo 10-14.
duracion.grupo.jovenes = 5, # Años de permanencia en el grupo 15-19.
duracion.grupo.adultos.jovenes = 5, # Años de permanencia en el grupo 20-24.
duracion.grupo.adultos = 35, # Años de permanencia en el grupo 25-59.
duracion.grupo.adultos.mayores = 25, # Años de permanencia en el grupo 60+.
proporcion.masculino.femenino = 1.0316,# Hombres por mujer. CONAPO 2026: 4138H/4011M.
tasa.emigracion.ninos = 0.014, # Emigración anual grupo 0-9. CONAPO 2026-2040.
tasa.emigracion.preadolescentes = 0.029, # Emigración anual grupo 10-14. CONAPO 2026-2040.
tasa.emigracion.jovenes = 0.045, # Emigración anual grupo 15-19. CONAPO 2026-2040.
tasa.emigracion.adultos.jovenes = 0.063, # Emigración anual grupo 20-24, la más alta (primer empleo). CONAPO 2026-2040.
tasa.emigracion.adultos = 0.020, # Emigración anual grupo 25-59. CONAPO 2026-2040.
tasa.emigracion.adultos.mayores = 0.003, # Emigración anual grupo 60+. CONAPO 2026-2040.
# ══════════════════ ECONOMÍA FEMENINA ══════════════════
# Fuente: Diagnóstico de campo PSN 2024, ENDIREH 2021 NL, ENUT 2019.
tasa.contratacion.femenina = 0.007, # Fracción del pool laboral contratada por año.
tasa.despidos.femeninos = 0.026, # Fracción de mujeres activas que sale del empleo por año (base, sin presión de cuidados).
tasa.emprendimiento.femenino = 0.01, # Fracción del pool laboral que emprende por año. Reducido por falta de infraestructura de apoyo rural.
expectativas.base = 0.5725, # Expectativas base de empleo [0-1], modulan el emprendimiento.
tasa.cuidados.infante = 0.41, # Participación en cuidado infantil por niño [ENUT 2019].
tasa.cuidados.tercera.edad = 0.061, # Participación en cuidado de adultos mayores por persona [ENUT 2019].
tasa.cuidados.hogar = 0.55, # Participación en mantenimiento del hogar por vivienda [ENUT 2019].
numero.viviendas = 122, # Viviendas habitadas en la localidad. INEGI Censo 2020.
punto.inflexion.cuidados = 110, # Punto de inflexión [mujeres-equiv.] de la función logística de presión de cuidados; calibrado para presión inicial ≈ 0.52.
tasa.salida.natural.laboral = 1/35, # Salida natural del pool laboral femenino por envejecimiento (1/duración del grupo adulto), aplica igual a activas e inactivas.
incremento.contratacion = 0, # Incremento porcentual sobre tasa.contratacion.femenina por política de PSN. 0 = escenario base.
incremento.emprendimiento = 0, # Incremento porcentual sobre tasa.emprendimiento.femenino por política de PSN. 0 = escenario base.
eficacia.redistribucion = 0, # Fracción de la presión de cuidados absorbida por programas de redistribución de trabajo doméstico. 0 = escenario base.
eficacia.cooperativas = 0, # Fracción adicional de la presión de cuidados absorbida por cooperativas de cuidado comunitario. 0 = escenario base.
# ══════════════════ SOCIAL ══════════════════
# Fuente: formulación del equipo social, adaptada a machismo endógeno y Puente 7.
estres.economico = 0.72, # Estrés económico estructural de la comunidad [0-1], exógeno. Equipo social.
acceso.salud.mental = 0.11, # Acceso a servicios de salud mental [0-1], exógeno. Equipo social.
acceso.salud.mental.referencia.social = 0.11, # Valor de referencia de acceso a salud mental, igual al exógeno (constante en el tiempo).
consumo.alcohol.referencia = 6.0, # Consumo de alcohol de referencia [L p/c/año], igual al valor inicial del stock; ancla las razones de normalización del equipo social.
consumo.alcohol.minimo = 2.0, # Piso mínimo estructural de consumo [L p/c/año]; salvaguarda numérica añadida a la formulación del equipo social.
machismo.referencia.social = 0.685, # Machismo de referencia usado por el equipo social para calibrar el denominador de violencia.intrafamiliar; se conserva literal aunque machismo ahora es endógeno.
coef.regulacion.consumo = 0.27, # Coeficiente base de regulación endógena del consumo (equipo social), valor en consumo = consumo.alcohol.referencia.
coef.disponibilidad.alcohol = 0.19, # Coeficiente base de disponibilidad de alcohol en el entorno (equipo social).
coef.normalizacion.consumo = 0.725, # Coeficiente base de normalización del consumo (equipo social).
coef.violencia.intrafamiliar = 0.385, # Coeficiente base de violencia intrafamiliar (equipo social).
coef.salud.mental.vulnerable = 0.42, # Coeficiente base de salud mental vulnerable (equipo social).
coef.crecimiento.consumo = 0.135, # Coeficiente base de crecimiento del consumo (equipo social).
coef.reduccion.consumo = 0.078, # Coeficiente base de reducción del consumo (equipo social).
# ══════════════════ EDUCACIÓN ══════════════════
# Fuente: Diagnóstico PSN 2024, SIGED, La Escuela es Nuestra; tasa.transicion.preparatoria,
# tasa.base.abandono.preparatoria y factores de cuidados actualizados por el equipo educación.
calidad.secundaria = 0.5829, # Índice de calidad educativa de secundaria [0-1]. PSN 2024.
calidad.preparatoria = 0.5566, # Índice de calidad educativa de preparatoria [0-1]. PSN 2024.
acceso.secundaria = 0.55, # Acceso geográfico/institucional a secundaria [0-1].
prop.ingreso.secundaria = 0.45, # Proporción de preadolescentes que ingresan a secundaria [0-1].
tasa.transicion.preparatoria = 0.38, # Transición secundaria→preparatoria. Equipo educación: 18 alumnos de prepa de Cerros Blancos / 48 de secundaria.
aislamiento.geografico = 21/60, # Aislamiento geográfico de la preparatoria: 21 km al plantel más cercano / 60 km de referencia regional.
tasa.base.abandono.secundaria = 0.112, # Tasa base de abandono de secundaria [fracción/año]. Formato 911.
tasa.base.abandono.preparatoria = 0.20, # Tasa base de abandono de preparatoria [fracción/año]. Actualizado por el equipo educación, Formato 911.
años.duracion.preparatoria = 3, # Duración promedio de la preparatoria [años]; divide el flujo de egreso para no sobreestimar graduados.
tasa.minima.desercion.secundaria = 0.01, # Piso mínimo estructural de deserción en secundaria [fracción/año].
tasa.minima.desercion.preparatoria = 0.015, # Piso mínimo estructural de deserción en preparatoria [fracción/año].
sensibilidad.alcohol.desercion.secundaria = 0.30, # Sensibilidad de la deserción masculina de secundaria al consumo de alcohol.
sensibilidad.cuidados.desercion.secundaria = 0.30, # Sensibilidad de la deserción femenina de secundaria a la presión de cuidados.
sensibilidad.alcohol.desercion.prepa = 0.06, # Sensibilidad de la deserción masculina de prepa al consumo de alcohol.
sensibilidad.cuidados.desercion.prepa = 0.042, # Sensibilidad de la deserción femenina de prepa a la presión de cuidados.
sensibilidad.distancia.desercion = 0.30, # Sensibilidad de la deserción en prepa a la distancia geográfica (ambos géneros).
distancia.a.preparatoria = 1.0, # Distancia normalizada a la preparatoria [adimensional], 1 = distancia de referencia (21 km).
involucramiento.tutores = 2.71, # Índice de involucramiento de tutores [escala 1-5]. Encuesta a familias, PSN 2024.
plan.de.vida = 2.64, # Índice de plan de vida del estudiante [escala 1-5]. Encuesta a familias, PSN 2024.
factor.cuidados.secundaria = 0.77, # Multiplicador de cuidados sobre deserción femenina de secundaria. ENUT 2024, niñas 12-14 años rurales. Equipo educación.
factor.cuidados.preparatoria = 0.78, # Multiplicador de cuidados sobre deserción femenina de preparatoria. ENUT 2024, niñas 15-18 años rurales. Equipo educación.
# ══════════════════ MACHISMO (auxiliar endógena) ══════════════════
sensibilidad.machismo = 0.568, # Sensibilidad del machismo a la proporción con prepa; calibrado para machismo(t=0) ≈ 0.568 con casi ningún graduado.
# ══════════════════ INFRAESTRUCTURA ══════════════════
# Fuente: inventario de campo PSN 2024.
focos.total.instalados = 106, # Focos instalados en el centro comunitario.
focos.base.encendidos = 15, # Focos encendidos con asistencia mínima.
consumo.por.foco = 0.010, # Consumo eléctrico por foco-hora [kWh].
horas.iluminacion.base = 2, # Horas de iluminación con asistencia mínima.
horas.iluminacion.maxima = 12, # Horas de iluminación con asistencia máxima.
proporcion.usuarios.pc = 0.15, # Proporción base de asistentes que usan PC.
horas.uso.pc = 1.0, # Horas base de uso de PC por usuario.
consumo.por.pc = 0.065, # Consumo eléctrico por hora-PC [kWh].
dias.operacion.anuales = 160, # Días de operación del centro por año.
capacidad.maxima.centro = 45, # Aforo máximo del centro [personas/día].
num.computadoras = 4, # Computadoras físicas disponibles.
tiempo.ajuste.percepcion = 1.0, # Tiempo de ajuste de la percepción hacia la atractividad real [años].
theta.percepcion = 0.50, # Umbral de percepción para crecimiento sostenido de asistencia [0-1].
alpha.uso = 1.50, # Elasticidad de la fracción de usuarios de PC a la percepción de calidad.
alpha.horas = 2.00, # Elasticidad de las horas de uso de PC a la percepción de calidad.
tasa.crecimiento.centro = 1.20, # Velocidad de respuesta de la asistencia a la percepción [1/año].
peso.calidad.luz = 0.10, # Peso de la disponibilidad de luz en la atractividad del centro.
peso.calidad.computadoras = 0.25, # Peso de la disponibilidad de PCs en la atractividad del centro.
peso.calidad.starlink = 0.65, # Peso de Starlink en la atractividad del centro; domina la atractividad cuando está activo.
starlink.activo = 0, # Indicador binario de activación de Starlink. 0 = escenario base.
tasa.deterioro.infraestructura = 0.015, # Tasa de deterioro anual de la capacidad eléctrica instalada [fracción/año].
# ══════════════════ POLÍTICO ══════════════════
# Fuente: datos ejido Cerros Blancos, equipo político PSN.
capacidad.institucional = 3, # Trámites ejidales resueltos por año, capacidad institucional.
tasa.inicio.tramite.anual = 0.20, # Fracción de personas sin certificado que inicia trámite por año.
tasa.rechazo.tramite.anual = 0.18, # Fracción base de trámites en espera que se rechazan por año.
tasa.mortalidad.ejidatarios.anual = 0.05, # Fracción de ejidatarios que fallece por año.
tasa.enajenacion.anual = 0.72, # Fracción de matrimonios que generan enajenación ejidal.
porcentaje.que.se.casa = 0.138,# Fracción de quienes cumplen 20 años que se casa ese año.
fraccion.sin.lista.sucesion = 0.80, # Fracción de ejidatarios fallecidos sin lista de sucesión (genera personas sin certificado).
fraccion.con.lista.sucesion = 0.20, # Fracción de trámites en espera con documentación completa, resoluble.
tiempo.tramite.anual = 1.0, # Tiempo de referencia para resolución de trámites [años].
retraso.reestructuracion = 1.2 # Factor de retraso institucional aplicado solo en el primer semestre (t<0.5).
)
InitialConditions <- c(
# DEMOGRAFÍA [personas] — CONAPO 2026 × factor de escala localidad/municipio (531/7788 = 0.0682)
poblacion.ninos = 111, # Grupo 0-9 años.
poblacion.preadolescentes = 56, # Grupo 10-14 años.
poblacion.jovenes = 51, # Grupo 15-19 años.
poblacion.adultos.jovenes = 41, # Grupo 20-24 años.
poblacion.adultos = 200, # Grupo 25-59 años, principal sostén económico y de cuidados.
poblacion.adultos.mayores = 96, # Grupo 60+ años.
# ECONOMÍA FEMENINA [personas] — Pool total = (jóvenes+adultos.jóvenes+adultos) × fracción femenina ≈ 144.
poblacion.femenina.laboral = 144, # Pool laboral femenino total (15-59 años).
mujeres.inactivas = 108, # Mujeres del pool sin actividad económica remunerada.
mujeres.activas = 36, # Mujeres del pool económicamente activas; participación inicial 36/144 = 25%, consistente con PSN 2024.
# EDUCACIÓN [personas]
estudiantes.secundaria = 48, # Matrícula observada de secundaria. Formato 911 / PSN 2024.
estudiantes.preparatoria = 18, # Matrícula de prepa de alumnos de Cerros Blancos. Visita de campo: 17 alumnos de último grado, 12 de Cerros Blancos (≈6 mujeres/6 hombres) × 3 años. Equipo educación.
# ACERVO DE GRADUADOS [personas]
acervo.graduados = 38, # Estimado sobre 337 adultos jóvenes+adultos+adultos mayores, ≈ rezago educativo del 88.6% sin postbásica (PSN 2024).
# SOCIAL
consumo.alcohol = 6.0, # Consumo de alcohol per cápita inicial [L p/c/año]. ENCODAT 2016-2017 zona rural noreste, ajustado al alza por rezago educativo local.
# INFRAESTRUCTURA — datos de campo PSN 2024
asistencia.al.centro = 10, # Asistencia promedio diaria al centro comunitario [personas/día]. Observación directa PSN 2024.
capacidad.electrica = 2000, # Capacidad eléctrica instalada [kWh/año]. Inventario PSN 2024.
percepcion.calidad.centro = 0.45, # Percepción de calidad del centro [0-1]; por debajo de theta.percepcion=0.50, percepción aún no converge a la atractividad real (0.35) sin Starlink.
# POLÍTICO — datos ejido Cerros Blancos, equipo político PSN
personas.sin.certificado = 20, # Personas sin certificado de derechos ejidales.
personas.en.espera = 2, # Personas con trámite de certificación en proceso.
ejidatarios = 28 # Ejidatarios certificados.
)
library(deSolve)
library(ggplot2)
library(tidyr)
library(dplyr)
library(gridExtra)
tiempos <- seq(0, 24, by = 1/12)
resultados <- as.data.frame(
ode(y = InitialConditions,
times = tiempos,
func = modelo_MN,
parms = parameters,
method = "rk4")
)
resultados$anio <- 2026 + resultados$time
cat("=== VERIFICACIÓN DE TRAYECTORIA ===\n")
## === VERIFICACIÓN DE TRAYECTORIA ===
cat("Población total 2026: ", round(resultados$poblacion.total[1]), "personas\n")
## Población total 2026: 555 personas
cat("Población total 2050: ", round(tail(resultados$poblacion.total, 1)), "personas\n")
## Población total 2050: 413 personas
cat("Consumo alcohol 2026: ", round(resultados$consumo.alcohol[1], 2), "L p/c\n")
## Consumo alcohol 2026: 6 L p/c
cat("Consumo alcohol 2050: ", round(tail(resultados$consumo.alcohol, 1), 2), "L p/c\n")
## Consumo alcohol 2050: 9.33 L p/c
cat("Machismo 2026: ", round(resultados$machismo[1], 3), "\n")
## Machismo 2026: 0.504
cat("Machismo 2050: ", round(tail(resultados$machismo, 1), 3), "\n")
## Machismo 2050: 0.551
cat("Participación femenina 2026: ", round(resultados$participacion.femenina[1], 3), "\n")
## Participación femenina 2026: 0.25
cat("Participación femenina 2050: ", round(tail(resultados$participacion.femenina, 1), 3), "\n")
## Participación femenina 2050: 0.206
cat("Estudiantes prepa 2026: ", round(resultados$estudiantes.preparatoria[1], 2), "personas\n")
## Estudiantes prepa 2026: 18 personas
cat("Estudiantes prepa 2050: ", round(tail(resultados$estudiantes.preparatoria, 1), 2), "personas\n")
## Estudiantes prepa 2050: 3.4 personas
cat("Asistencia al centro 2026: ", round(resultados$asistencia.al.centro[1], 1), "personas/día\n")
## Asistencia al centro 2026: 10 personas/día
cat("Asistencia al centro 2050: ", round(tail(resultados$asistencia.al.centro, 1), 1), "personas/día\n")
## Asistencia al centro 2050: 0.2 personas/día
cat("Percepción calidad 2026: ", round(resultados$percepcion.calidad.centro[1], 3), "\n")
## Percepción calidad 2026: 0.45
cat("Percepción calidad 2050: ", round(tail(resultados$percepcion.calidad.centro, 1), 3),"\n")
## Percepción calidad 2050: 0.35
cat("Tasa prevención (Puente 7) 2026:", round(resultados$tasa.asistencia.prevencion[1], 4), "\n")
## Tasa prevención (Puente 7) 2026: 0.0342
cat("Tasa prevención (Puente 7) 2050:", round(tail(resultados$tasa.asistencia.prevencion, 1), 4), "\n")
## Tasa prevención (Puente 7) 2050: 0.001
cat("Capacidad eléctrica 2026: ", round(resultados$capacidad.electrica[1]), "kWh/año\n")
## Capacidad eléctrica 2026: 2000 kWh/año
cat("Capacidad eléctrica 2050: ", round(tail(resultados$capacidad.electrica, 1)), "kWh/año\n")
## Capacidad eléctrica 2050: 1395 kWh/año
cat("Ejidatarios 2026: ", round(resultados$ejidatarios[1], 1), "personas\n")
## Ejidatarios 2026: 28 personas
cat("Ejidatarios 2050: ", round(tail(resultados$ejidatarios, 1), 1), "personas\n")
## Ejidatarios 2050: 16.8 personas
cat("Graduados prepa 2026: ", round(resultados$graduados[1], 3), "personas/año\n")
## Graduados prepa 2026: 3.467 personas/año
cat("Graduados prepa 2050: ", round(tail(resultados$graduados, 1), 3))
## Graduados prepa 2050: 0.634
paleta <- c(
"#db6923", "#202020", "#e8a87c", "#8B1A1A",
"#4a4a4a", "#c0392b", "#f0c27f", "#2c2c2c"
)
tema_cerros <- theme_minimal(base_size = 11) +
theme(
plot.title = element_text(face = "bold", size = 12, color = "#202020"),
plot.subtitle = element_text(size = 9, color = "#4a4a4a"),
legend.position = "bottom",
legend.title = element_blank(),
panel.grid.minor = element_blank(),
panel.grid.major = element_line(color = "#eeeeee"),
axis.title = element_text(size = 9, color = "#4a4a4a"),
axis.text = element_text(size = 8),
legend.text = element_text(size = 8),
plot.caption = element_text(size = 7, color = "#888888")
)
g_demo <- resultados %>%
select(anio, poblacion.ninos, poblacion.preadolescentes, poblacion.jovenes,
poblacion.adultos.jovenes, poblacion.adultos, poblacion.adultos.mayores) %>%
pivot_longer(-anio, names_to = "Grupo", values_to = "Personas") %>%
mutate(Grupo = recode(Grupo,
"poblacion.ninos" = "0-9 años",
"poblacion.preadolescentes" = "10-14 años",
"poblacion.jovenes" = "15-19 años",
"poblacion.adultos.jovenes" = "20-24 años",
"poblacion.adultos" = "25-59 años",
"poblacion.adultos.mayores" = "60+ años"
)) %>%
ggplot(aes(anio, Personas, color = Grupo)) +
geom_line(linewidth = 1.1) +
scale_color_manual(values = paleta) +
labs(title = "Estructura poblacional por grupo de edad",
subtitle = "Emigración diferenciada por grupo — CONAPO 2026-2040",
x = "Año", y = "Personas") +
tema_cerros
g_total <- ggplot(resultados, aes(anio, poblacion.total)) +
geom_line(color = "#db6923", linewidth = 1.3) +
labs(title = "Población total",
subtitle = "Tendencia agregada 2026-2050",
x = "Año", y = "Personas") +
tema_cerros
grid.arrange(g_demo, g_total, ncol = 2,
top = "Demografía — Subsistema 1")
La población total cae de 555 a 413 personas (-25.6%) en 24 años. Pero el mecanismo detrás de esto no es simplemente “la gente se va” — es una combinación de envejecimiento y emigración diferenciada que se retroalimenta.
El motor principal son las tasas de emigración diferenciadas
por edad: los adultos jóvenes (20-24 años) emigran al
6.3% anual, más del doble que el resto de los grupos.
Como cada cohorte tarda años en madurar hacia el siguiente grupo
(flujo.X.a.Y = stock/duración), cada año que un
grupo pierde población por emigración, ese hueco se propaga hacia
adelante: menos jóvenes hoy significa menos adultos jóvenes en
5 años, menos adultos en 10, y así sucesivamente.
Al mismo tiempo, la tasa de fertilidad (0.069
hijos/mujer-año) se aplica sobre una población en edad fértil que se
está reduciendo — los
poblacion.jovenes + poblacion.adultos.jovenes + poblacion.adultos
caen, así que nacimientos cae con ellos. El resultado es
una pirámide que se invierte: los niños caen de 111 a
70.6 (-36%), mientras los adultos mayores crecen de 96
a 107.5 (+12%), porque su tasa de emigración es la más baja (0.3%) y
siguen recibiendo el flujo de quienes envejecen desde el grupo
adulto.
g_pool <- resultados %>%
select(anio, poblacion.femenina.laboral, mujeres.activas, mujeres.inactivas) %>%
pivot_longer(-anio, names_to = "Stock", values_to = "Mujeres") %>%
mutate(Stock = recode(Stock,
"poblacion.femenina.laboral" = "Pool laboral total",
"mujeres.activas" = "Económicamente activas",
"mujeres.inactivas" = "Inactivas"
)) %>%
ggplot(aes(anio, Mujeres, color = Stock)) +
geom_line(linewidth = 1.2) +
scale_color_manual(values = c("#db6923", "#202020", "#e8a87c")) +
labs(title = "Pool laboral femenino y sus stocks",
subtitle = "El pool es el denominador correcto de participación",
x = "Año", y = "Mujeres") +
tema_cerros
g_participacion <- ggplot(resultados, aes(anio, participacion.femenina)) +
geom_line(color = "#db6923", linewidth = 1.3) +
labs(title = "Participación femenina en el mercado laboral",
subtitle = "Mujeres activas / pool laboral total",
x = "Año", y = "Índice [0-1]") +
tema_cerros
g_presion <- resultados %>%
select(anio, presion.cuidados) %>%
pivot_longer(-anio, names_to = "Variable", values_to = "Valor") %>%
mutate(Variable = recode(Variable,
"presion.cuidados" = "Presión de cuidados"
)) %>%
ggplot(aes(anio, Valor, color = Variable)) +
geom_line(linewidth = 1.2) +
scale_color_manual(values = c("#202020", "#db6923")) +
labs(title = "Presión de cuidados",
subtitle = "Índice logístico [0-1]; Presión de Cuidados",
x = "Año", y = "Índice [0-1]") +
tema_cerros
g_flujos_eco <- resultados %>%
select(anio, contrataciones, emprendimiento, mujeres.que.dejan.actividad) %>%
pivot_longer(-anio, names_to = "Flujo", values_to = "Mujeres") %>%
mutate(Flujo = recode(Flujo,
"contrataciones" = "Contrataciones",
"emprendimiento" = "Emprendimiento",
"mujeres.que.dejan.actividad" = "Abandonan actividad"
)) %>%
ggplot(aes(anio, Mujeres, color = Flujo)) +
geom_line(linewidth = 1.1) +
scale_color_manual(values = c("#db6923", "#202020", "#8B1A1A")) +
labs(title = "Flujos internos del mercado laboral femenino",
subtitle = "Entradas vs salidas anuales [mujeres/año]",
x = "Año", y = "Mujeres/año") +
tema_cerros
grid.arrange(g_pool, g_participacion, g_presion, g_flujos_eco,
ncol = 2, nrow = 2,
top = "ECONOMÍA FEMENINA — Subsistema 2")
La participación femenina cae de 25% a 20.6%. El
mecanismo aquí es un desbalance estructural entre el flujo de
entrada al pool laboral y los flujos de salida, no una decisión
de las mujeres de “salir” del mercado.
La entrada al pool
(entrada.pool = flujo.preadolescentes.a.jovenes × fracción.femenina)
depende directamente de cuántas niñas cumplen 15 años cada año — y como
vimos en la sección B, ese flujo se reduce con el
tiempo porque las cohortes de preadolescentes son cada vez más
pequeñas.
Mientras tanto, las salidas naturales
(tasa.salida.natural.laboral = 1/35, aplicada tanto a
activas como a inactivas) son constantes en proporción al stock. Y la
presión de cuidados (presion.cuidados) se
mantiene casi clavada en ~0.48-0.52 durante todo el
periodo — porque es una función logística de
trabajo.cuidados, que combina niños (que bajan) con adultos
mayores (que suben): el envejecimiento demográfico sustituye un
tipo de carga de cuidados por otro, y el índice agregado no
cede.
Con una presión de cuidados estable, la
tasa.salida.laboral = tasa.despidos.femeninos × (1+presion.cuidados.efectiva)
también se mantiene estable — pero como el pool total se
encoge (menos entradas que antes), la proporción de activas
dentro de un pool cada vez más pequeño tiende a bajar
lentamente hacia el equilibrio entre flujos de entrada/salida
que ya no favorece la acumulación de activas.
g_alcohol <- ggplot(resultados, aes(anio, consumo.alcohol)) +
geom_line(color = "#db6923", linewidth = 1.4) +
labs(title = "Consumo de alcohol per cápita",
subtitle = "Litros de alcohol puro por persona por año",
x = "Año", y = "L p/c/año",
caption = "Base: ENCODAT 2016-2017 zona rural noreste") +
tema_cerros
g_violencia <- resultados %>%
select(anio, violencia.intrafamiliar, machismo, salud.mental.vulnerable) %>%
pivot_longer(-anio, names_to = "Variable", values_to = "Valor") %>%
mutate(Variable = recode(Variable,
"violencia.intrafamiliar" = "Violencia intrafamiliar",
"machismo" = "Machismo estructural",
"salud.mental.vulnerable" = "Salud mental vulnerable"
)) %>%
ggplot(aes(anio, Valor, color = Variable)) +
geom_line(linewidth = 1.2) +
scale_color_manual(values = c("#db6923", "#202020", "#8B1A1A")) +
labs(title = "Violencia, machismo y salud mental",
subtitle = "Machismo (endógeno, vía % con prepa) amplifica violencia intrafamiliar",
x = "Año", y = "Índice") +
tema_cerros
g_flujos_social <- resultados %>%
select(anio, crecimiento.consumo, reduccion.consumo) %>%
pivot_longer(-anio, names_to = "Flujo", values_to = "Valor") %>%
mutate(Flujo = recode(Flujo,
"crecimiento.consumo" = "Crecimiento",
"reduccion.consumo" = "Reducción"
)) %>%
ggplot(aes(anio, Valor, color = Flujo)) +
geom_line(linewidth = 1.2) +
scale_color_manual(values = c("#db6923", "#202020")) +
labs(title = "Flujos del consumo de alcohol",
subtitle = "Crecimiento (salud mental/disponibilidad) vs reducción (acceso a salud mental + Puente 7)",
x = "Año", y = "L p/c/año²") +
tema_cerros
g_prevencion <- resultados %>%
select(anio, tasa.asistencia.prevencion, regulacion.consumo.endogena) %>%
pivot_longer(-anio, names_to = "Variable", values_to = "Valor") %>%
mutate(Variable = recode(Variable,
"tasa.asistencia.prevencion" = "Tasa de prevención (Puente 7)",
"regulacion.consumo.endogena" = "Autorregulación social del consumo"
)) %>%
ggplot(aes(anio, Valor, color = Variable)) +
geom_line(linewidth = 1.2) +
scale_color_manual(values = c("#8B1A1A", "#202020")) +
labs(title = "Prevención y autorregulación social",
subtitle = "Puente 7 (asistencia al centro) refuerza la reducción del consumo",
x = "Año", y = "Índice") +
tema_cerros
grid.arrange(g_alcohol, g_violencia, g_flujos_social, g_prevencion,
ncol = 2, nrow = 2,
top = "SOCIAL — Subsistema 3")
El consumo de alcohol per cápita sube de 6.0 a 9.33 litros por
persona al año (+55.5%) — el incremento porcentual más grande
de todo el modelo. Y esto sucede porque el subsistema social tiene
dos ciclos de retroalimentación positiva que se refuerzan
mutuamente, sin ningún mecanismo que los frene.
Primer ciclo — autorreferencia del consumo consigo
mismo.
regulacion.consumo.endogena = 0.27 × √(consumo/6) crece con
la raíz cuadrada del consumo — más lento que el consumo mismo. Pero
disponibilidad.alcohol = 0.19 × (consumo/regulación) / (6/0.27)
usa esa diferencia de velocidades: como el consumo crece más rápido que
su propia regulación, la razón consumo/regulación
aumenta, y con ella la disponibilidad. Luego
normalizacion.consumo multiplica disponibilidad × consumo
otra vez — así que el efecto se compone dos veces:
normalizacion.consumo pasa de 0.725 a 1.405,
prácticamente duplicándose.
Segundo ciclo — violencia y machismo.
violencia.intrafamiliar depende de machismo
(que como vimos en la sección E, sube de 0.504 a 0.551) y del propio
crecimiento.consumo. Más machismo → más violencia
(0.30→0.48); más violencia → más salud.mental.vulnerable
(0.41→0.62); más salud mental vulnerable → más
crecimiento.consumo — cerrando el
ciclo.
¿Y la reducción? reduccion.consumo
depende de acceso.salud.mental (fijo, exógeno) y de
tasa.asistencia.prevencion — que colapsa de 0.034 a
0.00095 porque, como en la sección F, el centro comunitario se
vacía. Sin ese refuerzo, reduccion.consumo apenas crece de
0.081 a 0.121 — mucho menos que el crecimiento, que casi se
cuadruplica de 0.133 a 0.483. El sistema social, en ausencia de
intervención, no tiene ningún mecanismo que compita con estos
dos ciclos reforzantes.
g_matricula <- resultados %>%
select(anio, estudiantes.secundaria, estudiantes.preparatoria) %>%
pivot_longer(-anio, names_to = "Nivel", values_to = "Estudiantes") %>%
mutate(Nivel = recode(Nivel,
"estudiantes.secundaria" = "Secundaria",
"estudiantes.preparatoria" = "Preparatoria"
)) %>%
ggplot(aes(anio, Estudiantes, color = Nivel)) +
geom_line(linewidth = 1.2) +
scale_color_manual(values = c("#db6923", "#202020")) +
labs(title = "Matrícula escolar por nivel",
subtitle = "Stocks de estudiantes 2026-2050 (prepa inicia en 18, datos de campo actualizados)",
x = "Año", y = "Estudiantes") +
tema_cerros
g_desercion <- resultados %>%
select(anio, desercion.masculina.secundaria, desercion.femenina.secundaria,
desercion.masculina.preparatoria, desercion.femenina.preparatoria) %>%
pivot_longer(-anio, names_to = "Flujo", values_to = "Estudiantes") %>%
mutate(Flujo = recode(Flujo,
"desercion.masculina.secundaria" = "Masc. secundaria",
"desercion.femenina.secundaria" = "Fem. secundaria",
"desercion.masculina.preparatoria" = "Masc. preparatoria",
"desercion.femenina.preparatoria" = "Fem. preparatoria"
)) %>%
ggplot(aes(anio, Estudiantes, color = Flujo)) +
geom_line(linewidth = 1.1) +
scale_color_manual(values = paleta) +
labs(title = "Flujos de deserción por género y nivel",
subtitle = "Alcohol/distancia → masculina | Cuidados (ENUT 2024) → femenina",
x = "Año", y = "Estudiantes/año") +
tema_cerros
# Graduados [personas/año, escala ~0.5-1.5] vs proporción con prepa [0-1] en
# doble eje: el factor de escala lleva proporcion.con.prepa al rango visual
# de graduados para que ambas curvas sean legibles en el mismo panel.
factor.escala.acervo <- max(resultados$graduados) / max(resultados$proporcion.con.prepa)
g_acervo <- ggplot(resultados) +
geom_line(aes(anio, graduados, color = "Graduados prepa [personas/año]"),
linewidth = 1.2) +
geom_line(aes(anio, proporcion.con.prepa * factor.escala.acervo,
color = "Proporción con prepa [0-1]"),
linewidth = 1.2, linetype = "dashed") +
scale_y_continuous(
name = "Graduados [personas/año]",
sec.axis = sec_axis(~ . / factor.escala.acervo,
name = "Proporción con preparatoria [0-1]")
) +
scale_color_manual(values = c(
"Graduados prepa [personas/año]" = "#db6923",
"Proporción con prepa [0-1]" = "#202020"
)) +
labs(title = "Graduados y acervo de escolaridad",
subtitle = "El acervo acumulado alimenta el cambio cultural endógeno (machismo)",
x = "Año") +
tema_cerros +
theme(axis.title.y.left = element_text(color = "#db6923"),
axis.title.y.right = element_text(color = "#202020"))
# Machismo [0-1] vs proporción con prepa [0-1]: ambas variables ya están en
# la misma escala, pero se grafican en doble eje para mantener consistencia
# visual con el panel anterior y enfatizar su relación inversa.
g_machismo <- ggplot(resultados) +
geom_line(aes(anio, machismo, color = "Machismo estructural"),
linewidth = 1.2) +
geom_line(aes(anio, proporcion.con.prepa, color = "Proporción con preparatoria"),
linewidth = 1.2, linetype = "dashed") +
scale_y_continuous(
name = "Machismo estructural [0-1]",
sec.axis = sec_axis(~ ., name = "Proporción con preparatoria [0-1]")
) +
scale_color_manual(values = c(
"Machismo estructural" = "#202020",
"Proporción con preparatoria" = "#db6923"
)) +
labs(title = "Machismo y escolaridad acumulada",
subtitle = "Machismo depende exclusivamente de la proporción con preparatoria",
x = "Año") +
tema_cerros +
theme(axis.title.y.left = element_text(color = "#202020"),
axis.title.y.right = element_text(color = "#db6923"))
grid.arrange(g_matricula, g_desercion, g_acervo, g_machismo,
ncol = 2, nrow = 2,
top = "EDUCACIÓN Y MACHISMO — Subsistema 4")
Aquí ocurre la dinámica más drástica del modelo: la
proporcion.con.prepa cae de 0.113 a 0.029,
y el machismo sube de 0.504 a 0.551 —
justo lo contrario de lo que el diseño original buscaba (que más
graduados redujeran el machismo con el tiempo).
El mecanismo empieza en la matrícula.
matriculacion.preparatoria = estudiantes.secundaria × 0.38 × calidad × geo
— y estudiantes.secundaria se desploma de 48 a 13 porque
(a) la población de preadolescentes que alimenta secundaria cae (sección
B), y (b) las tasas de deserción son altísimas: con
tasa.base.abandono.preparatoria = 0.20 más las
sensibilidades de alcohol/distancia, y multiplicado por
(1+factor.cuidados.preparatoria) = 1.78 para mujeres, la
deserción femenina en prepa supera el 45% anual desde
el inicio.
Con una matrícula de entrada cada vez más pequeña y tasas de salida
tan altas, estudiantes.preparatoria se desploma de 18 a
3.4 — y
graduados = (estudiantes.preparatoria × (1-deserción)) / 3
cae de 3.47 a 0.63 personas/año, una caída del 82%.
Aquí viene la parte clave: acervo.graduados tiene una
salida
(salida.acervo.graduados = acervo × (emigración de adultos jóvenes+adultos+adultos mayores + 1/duración.adultos.mayores))
que es proporcionalmente constante (~25-26% del acervo
cada año), pero una entrada (graduados)
que se desploma. El resultado: el acervo se vacía de 38 a
8.2 — la salida supera por mucho a la entrada
durante todo el horizonte.
Como proporcion.con.prepa = acervo / (población adulta),
y el acervo cae mucho más rápido que la población adulta total (que
también cae, pero más lento por el envejecimiento), la
proporción se desploma. Y como
machismo = (1 - proporcion.con.prepa) × 0.568, cuando
proporción tiende a 0, machismo tiende asintóticamente a
0.568 — su valor “techo”. El sistema converge hacia el
escenario de mayor machismo posible, no hacia uno de cambio
cultural.
# =============================================================================
# BLOQUE 5 — INFRAESTRUCTURA
# =============================================================================
g_asistencia <- ggplot(resultados, aes(anio, asistencia.al.centro)) +
geom_line(color = "#db6923", linewidth = 1.3) +
labs(title = "Asistencia al centro comunitario",
subtitle = "Crecimiento logístico con umbral — satura en 45 personas/día",
x = "Año", y = "Personas/día") +
tema_cerros
g_electrica <- ggplot(resultados, aes(anio, capacidad.electrica)) +
geom_line(color = "#202020", linewidth = 1.3) +
labs(title = "Capacidad eléctrica instalada",
subtitle = "Deterioro exponencial sin inversión de reposición",
x = "Año", y = "kWh/año") +
tema_cerros
g_deficit_atractividad <- ggplot(resultados) +
geom_line(aes(anio, deficit.electrico, color = "Déficit eléctrico [kWh/año]"),
linewidth = 1.2) +
geom_line(aes(anio, atractividad.centro * max(deficit.electrico, 1),
color = "Atractividad del centro [0-1]"),
linewidth = 1.2, linetype = "dashed") +
scale_y_continuous(
name = "Déficit eléctrico [kWh/año]",
sec.axis = sec_axis(
~ . / max(resultados$deficit.electrico, 1),
name = "Índice de atractividad [0-1]"
)
) +
scale_color_manual(values = c(
"Déficit eléctrico [kWh/año]" = "#8B1A1A",
"Atractividad del centro [0-1]" = "#db6923"
)) +
labs(title = "Déficit eléctrico e índice de atractividad",
subtitle = "El déficit erosiona la atractividad y frena la asistencia",
x = "Año") +
tema_cerros +
theme(axis.title.y.right = element_text(color = "#db6923"),
axis.title.y.left = element_text(color = "#8B1A1A"))
grid.arrange(g_asistencia, g_electrica, g_deficit_atractividad, ncol = 3,
top = "INFRAESTRUCTURA — Subsistema 5")
La asistencia al centro cae de 10 a 0.19 personas/día —
y como mencionaste, esto encaja con la realidad
post-inundaciones del centro. Pero vale la pena entender
por qué el modelo produce esto matemáticamente, porque revela
algo importante sobre el diseño del sistema.
Todo gira alrededor de theta.percepcion = 0.50, el
umbral de crecimiento. La
atractividad.centro = 0.10×disponibilidad.luz + 0.25×disponibilidad.pc + 0.65×starlink.activo.
En el escenario base, starlink.activo=0, y
disponibilidad.luz y
disponibilidad.computadoras se mantienen en 1.0 durante
TODA la simulación — la capacidad eléctrica (aunque se
deteriora de 2000 a 1395 kWh/año) nunca llega a ser
insuficiente, porque la demanda también cae junto con la
asistencia. Así que
atractividad.centro = 0.10×1 + 0.25×1 + 0.65×0 = 0.35 —
un valor constante, fijo desde el primer mes.
La percepcion.calidad.centro converge hacia ese 0.35 con
un retardo de 1 año (tiempo.ajuste.percepcion=1) — y una
vez que converge, se queda ahí, en 0.35, para
siempre.
Y aquí está el punto crítico:
crecimiento.neto.asistencia = tasa.crecimiento.centro × (percepcion - theta) × asistencia × (1 - asistencia/capacidad.maxima).
Con percepcion - theta = 0.35 - 0.50 = -0.15
constante y negativo, este término es siempre
negativo, proporcional a la asistencia actual. Esto es
matemáticamente un decaimiento exponencial hacia cero
(con freno logístico que se vuelve irrelevante cuando la asistencia ya
es baja). La asistencia nunca llega exactamente a 0, pero se acerca
asintóticamente — de 10 a 0.19 en 24 años.
La lectura estructural es esta: el centro no decae porque algo se rompa progresivamente — decae porque desde el día 1 está por debajo del umbral que activaría su propio crecimiento, y el modelo simplemente expresa esa condición inicial de forma acumulada en el tiempo. Esto es justo lo que tu comentario sobre las inundaciones valida: el centro ya nace “por debajo del umbral” en la realidad, y el modelo lo refleja con precisión.
g_ejidal <- resultados %>%
select(anio, personas.sin.certificado, personas.en.espera, ejidatarios) %>%
pivot_longer(-anio, names_to = "Stock", values_to = "Personas") %>%
mutate(Stock = recode(Stock,
"personas.sin.certificado" = "Sin certificado",
"personas.en.espera" = "En espera de trámite",
"ejidatarios" = "Ejidatarios certificados"
)) %>%
ggplot(aes(anio, Personas, color = Stock)) +
geom_line(linewidth = 1.2) +
scale_color_manual(values = c("#db6923", "#202020", "#8B1A1A")) +
labs(title = "Stocks del sistema ejidal",
subtitle = "Evolución de los tres estados del proceso de certificación",
x = "Año", y = "Personas") +
tema_cerros
g_matrimonios <- ggplot(resultados, aes(anio, tasa.matrimonios.anuales)) +
geom_line(color = "#202020", linewidth = 1.3) +
labs(title = "Matrimonios anuales (Puente 6)",
subtitle = "Flujo demográfico que genera enajenaciones ejidales",
x = "Año", y = "Personas/año") +
tema_cerros
grid.arrange(g_ejidal, g_matrimonios, ncol = 2,
top = "POLÍTICO — Subsistema 6")
Los ejidatarios certificados caen de 28 a 16.8, las personas sin certificado suben de 20 a 36, y las personas en espera de trámite se multiplican casi por 5 (de 2 a 10.4). El mecanismo aquí es un cuello de botella institucional que no escala con la demanda.
La entrada al sistema de trámites
(inicio.tramite.ejidal = personas.sin.certificado × 0.20)
crece junto con el stock de personas sin certificado — empieza en 4/año
y termina cerca de 7.2/año. Además,
personas.sin.certificado recibe entradas constantes por
enajenacion.ejidal (matrimonios) y
poblacion.intestada (muertes sin sucesión, el 80% de las
muertes de ejidatarios).
Pero la salida
(resolucion.tramite.ejidal = min(personas.en.espera/1, capacidad.institucional=3) × 0.20 / retraso)
está topada en 3 trámites/año, y de esos solo el
20% tiene documentación completa
(fraccion.con.lista.sucesion). Es decir, la
resolución máxima posible es ~0.6 personas/año — sin importar
cuánto crezca la demanda.
Con entradas creciendo hacia 7+/año y salidas topadas en 0.6/año,
personas.en.espera se acumula sin freno
real: la única válvula es
rechazo.tramite.ejidal = personas.en.espera × 0.18 × carga.administrativa,
donde carga.administrativa = espera/3 — esto crece de forma
cuadrática con la espera misma, así que eventualmente el rechazo absorbe
parte de la presión, pero a costa de devolver esas personas al
stock de “sin certificado”, perpetuando el ciclo.
Mientras tanto,
muertes.de.ejidatarios = ejidatarios × 0.05 siempre supera
a resolucion.tramite.ejidal (≈0.6-1.4 muertes/año vs ≈0.6
resoluciones/año desde el inicio), así que el stock de
ejidatarios certificados solo puede decrecer — no hay forma
estructural de que crezca en el escenario base.
La corrida inercial del macromodelo integrado revela que El Refugio de Cerros Blancos se encuentra, bajo el escenario base, atrapado en lo que puede describirse como una trampa de desarrollo autorreforzada: ningún subsistema mejora por sí mismo en el horizonte 2026-2050, y los pocos vínculos bidireccionales que existen entre subsistemas operan en la dirección que perpetúa el estancamiento en lugar de revertirlo.
El punto de partida es demográfico. La emigración diferenciada por edad, especialmente la salida del 6.3% anual de adultos jóvenes en busca de primer empleo, va vaciando progresivamente las cohortes que sostienen al resto del sistema. La población total cae 25.6% en 24 años, pero más importante que la magnitud es la forma: la pirámide poblacional se invierte, con los niños cayendo 36% mientras los adultos mayores crecen 12%. Esta inversión demográfica no es un fenómeno aislado, es la precondición que alimenta el deterioro de los demás subsistemas, porque reduce simultáneamente la base de estudiantes que entran al sistema educativo y la población en edad fértil que sostendría a las próximas generaciones.
El núcleo del problema estructural, sin embargo, está en el ciclo educación-machismo-social, el único bucle de retroalimentación bidireccional entre subsistemas del modelo. La matrícula de preparatoria, alimentada por una base demográfica decreciente y golpeada por tasas de deserción femenina que superan el 45% anual (impulsadas por la presión de cuidados, que el envejecimiento poblacional mantiene clavada en ~0.50 en lugar de aliviarla), produce cada vez menos graduados. Como la salida del acervo de graduados por emigración y fallecimiento es proporcionalmente constante (~25% anual) mientras la entrada se desploma, el acervo se vacía de 38 a 8.2 personas, y con él la proporción de adultos con preparatoria cae de 0.113 a 0.029. Dado que el machismo estructural depende inversamente de esta proporción, el sistema converge hacia su valor techo de 0.568, el escenario de mayor machismo posible. Este es, quizás, el hallazgo más importante del modelo: el diseño original buscaba que la escolaridad acumulada redujera el machismo con el tiempo, pero la dinámica demográfica y educativa combinadas producen exactamente lo contrario.
Ese machismo creciente alimenta directamente al subsistema social, donde se encuentra el segundo motor de la trampa: dos ciclos de retroalimentación positiva (la autorreferencia del consumo de alcohol consigo mismo a través de disponibilidad y normalización, y el ciclo violencia-salud mental-crecimiento del consumo, ahora amplificado por el machismo creciente) elevan el consumo de alcohol 55.5%, de 6.0 a 9.33 litros per cápita al año. Este aumento, a su vez, retroalimenta hacia educación: mayor consumo de alcohol eleva la deserción masculina, cerrando el ciclo y reforzando aún más el vaciamiento del acervo de graduados descrito arriba.
El único mecanismo del modelo que podría haber atenuado este ciclo, el Puente 7 (la asistencia preventiva derivada del centro comunitario hacia la reducción del consumo de alcohol), colapsa junto con el subsistema de infraestructura. La asistencia al centro cae de 10 a 0.19 personas/día porque, desde el primer mes de simulación, la percepción de calidad del centro (anclada en una atractividad real constante de 0.35, sin Starlink) está por debajo del umbral de 0.50 que activaría su propio crecimiento. Esto produce un decaimiento estructural, no progresivo, que resulta consistente con la realidad observada en campo tras las inundaciones que dañaron el centro comunitario. La consecuencia sistémica es que la tasa de prevención del Puente 7 se desploma de 0.034 a 0.00095, dejando al subsistema social sin ningún contrapeso externo frente a sus dos ciclos reforzantes internos.
Finalmente, el subsistema ejidal, aunque desconectado como receptor terminal sin retroalimentación hacia el resto del modelo, refleja con claridad la misma lógica de cuello de botella institucional que no escala con la demanda: la capacidad de resolución de trámites está topada en aproximadamente 0.6 personas/año, mientras la demanda crece hacia 7.2/año y las muertes de ejidatarios certificados (que siempre superan a las resoluciones) garantizan que el stock de ejidatarios certificados solo pueda decrecer, de 28 a 16.8.
En conjunto, el escenario base describe un sistema donde cada
subsistema individual sigue una trayectoria de deterioro explicable por
su propia estructura interna, pero donde el único bucle de
retroalimentación activo entre subsistemas (educación↔︎social, vía
machismo y consumo de alcohol) no introduce ningún mecanismo corrector,
sino que amplifica el deterioro mutuo. La intervención
de Starlink, al elevar peso.calidad.starlink y por tanto la
atractividad del centro por encima del umbral theta.percepcion=0.50, es
la única palanca del modelo capaz de revertir el colapso del Puente 7 y,
con ello, introducir el primer mecanismo corrector hacia el ciclo
social-educativo; sin embargo, como se discutió en el análisis del
subsistema de educación, la conectividad por sí sola no resuelve
el rezago educativo ni el ciclo de machismo, que dependen de
manera más directa de la dinámica de matrícula, deserción y acervo de
graduados descrita arriba. Esto sugiere que cualquier estrategia de
intervención efectiva para Cerros Blancos deberá combinar la
reactivación del centro comunitario (vía Puente 7) con intervenciones
dirigidas directamente al subsistema educativo, ya que actuar sobre un
solo punto del sistema no es suficiente para revertir una trampa que
opera, precisamente, a través de la interacción entre ambos.
Para el desarrollo de los apartados de simulación de futuros probables e implementación de políticas, se utilizó el submodelo específico de educación, el cual fue adaptado para operar de manera aislada respecto a la arquitectura global. Esta adecuación permitió conservar la lógica interna del sistema educativo y analizar de forma independiente el comportamiento de sus variables de estado, flujos y factores asociados. A partir de esta versión autónoma del submodelo, fue posible someter su estructura a distintos escenarios de incertidumbre, evaluar su sensibilidad frente a cambios en variables exógenas y, posteriormente, incorporar intervenciones dirigidas a modificar aquellos componentes sobre los que existe capacidad de decisión.
Esta decisión respondió a la necesidad de simplificar el proceso de simulación y facilitar la interpretación de los resultados, sin alterar la funcionalidad ni las relaciones fundamentales del modelo educativo. Al trabajar el submodelo de manera aislada, fue posible identificar con mayor claridad los efectos de las variables exógenas y de las políticas propuestas, evitando que las interacciones con otros sectores dificultaran el análisis específico de la dinámica escolar.
Como se observa en la Figura 3, el Diagrama de Flujos y Acumulaciones (Stock and Flow Diagram, SFD) representa la estructura del submodelo específico de educación y las principales relaciones que determinan su comportamiento. El sistema se encuentra conformado por los stocks correspondientes al número de estudiantes de secundaria y preparatoria, los cuales se modifican a través de los flujos de matriculación, deserción, egreso y graduación. Asimismo, el diagrama incorpora los factores que influyen sobre estos procesos, entre ellos la pobreza, la cobertura de becas, el matrimonio adolescente, el trabajo de cuidados y la migración. Esta representación permite observar de forma integral cómo las condiciones sociales y educativas afectan la permanencia de los estudiantes y la evolución de la matrícula durante el periodo analizado.
Nota. Elaboración propia.
Nota. Elaboración propia.
A partir de esta estructura se construyó el modelo base en R mediante la librería deSolve, el cual traduce las relaciones presentadas en el SFD en un sistema de ecuaciones diferenciales. El modelo establece las condiciones iniciales de los stocks, los parámetros que determinan el comportamiento del sistema y las ecuaciones correspondientes a cada flujo, permitiendo simular la evolución de la educación secundaria y preparatoria entre 2026 y 2036. Esta formulación constituye el punto de referencia para los análisis posteriores, debido a que será utilizada tanto en la generación de futuros probables bajo distintas condiciones de incertidumbre como en la incorporación y evaluación de las dos propuestas de política.
| Variable | Descripción | Valor | Fuente |
|---|---|---|---|
| Estudiantes totales en secundaria | Número inicial de estudiantes inscritos en los tres grados del nivel de secundaria en la comunidad. | 48 estudiantes | Formato 911 |
| Estudiantes totales en preparatoria | Número inicial estimado de estudiantes inscritos en los tres grados del nivel de preparatoria pertenecientes a la comunidad. | 18 estudiantes | Visita de campo al Refugio de los Cerros Blancos |
| Tasa de crecimiento poblacional | Porcentaje anual de crecimiento de la población utilizado para proyectar la población en edad de cursar secundaria durante el periodo de simulación. | 2.3% | Data México |
| Población en edad de cursar secundaria | Número de habitantes de entre 10 y 14 años considerados como población potencial para ingresar a secundaria. | 75 personas | ITER 2020 |
| Tasa anual de matriculación en secundaria | Proporción anual de la población en edad escolar que ingresa a secundaria. Se obtiene de dividir los 48 estudiantes matriculados entre una población potencial de 75 y distribuir el resultado entre los tres grados escolares. | 21.33% | Elaboración propia con datos del Formato 911 e ITER 2020 |
| Tasa inicial de deserción en secundaria | Proporción inicial de estudiantes de secundaria que abandonan sus estudios durante el periodo escolar. | 11.2% | Formato 911 |
| Tasa inicial de deserción en preparatoria | Proporción inicial de estudiantes de preparatoria que abandonan sus estudios durante el periodo escolar. | 20% | Formato 911 |
| Proporción masculina | Proporción de hombres dentro de la población estudiantil, utilizada para distribuir los flujos de deserción por sexo. | 45.4% | ITER 2020 |
| Factor de cuidados en secundaria | Proporción de niñas de entre 12 y 14 años de localidades rurales que participan en actividades de trabajo doméstico y de cuidados, utilizada como factor adicional de deserción femenina. | 77% | ENUT 2024 |
| Tasa de transición a preparatoria | Proporción de estudiantes de secundaria que continúan sus estudios en preparatoria. Se estima a partir de la relación entre 18 estudiantes de preparatoria y 48 estudiantes de secundaria. | 38% | Elaboración propia con datos del Formato 911 y visita de campo |
| Factor de migración | Proporción utilizada para representar el efecto adicional de la migración sobre la deserción masculina en preparatoria. | 5.32% | CONAPO |
| Factor de cuidados en preparatoria | Proporción de jóvenes de entre 15 y 18 años de localidades rurales que participan en actividades de trabajo doméstico y de cuidados, utilizada como factor adicional de deserción femenina. | 78% | ENUT 2024 |
| Pobreza | Proporción de la población en situación de pobreza utilizada como factor de riesgo asociado con la deserción escolar. | 65.1% | CONEVAL |
| Cobertura de becas | Proporción de cobertura de los apoyos educativos respecto de la población de referencia. Se calcula dividiendo 150 becas entre 266 personas. | 56.39% | Elaboración propia con datos del modelo ampliado |
| Matrimonio adolescente | Proporción de adolescentes en situación de matrimonio o unión temprana, utilizada como factor de riesgo de deserción escolar. | 10.2% | Estimaciones del modelo de política |
Nota. Elaboración propia.
# Librerías
library(deSolve)
library(ggplot2)
library(dplyr)
library(scales)
library(ggrepel)
library(patchwork)
library(gridExtra)
InitialConditions <- c(
numero.estudiantes.secundaria = 48, # Stock inicial de estudiantes de secundaria (estudiantes). Formato 911
numero.estudiantes.preparatoria = 18 # Stock inicial de estudiantes de preparatoria (estudiantes). Visita de Campo al Refugio de los Cerros Blancos había 17 alumnos en último grado, 12 eran jóvenes y 5 mujeres. como nos importa la deserción a nivel adolescencia (deserción y no reinserción al sistema educativo), dejamos los 12, pero los 12 vienen de distintas comunidades (no sólo de Cerros Blancos), por lo que estimamos que la mitad es de la comunidad (6 alumnos), que, multiplicado por los 3 años de prepa, nos da un total de 18 alumnos en el sistema.
)
# Horizonte de simulación de 2026 a 2036 con intervalos de un año
times <- seq(2026, 2036, by = 1)
# Función principal del modelo dinámico
model_base <- function(t, state, parameters) {
# Integra los stocks y parámetros para utilizarlos dentro del modelo
with(as.list(c(state, parameters)), {
# riesgo asociado con carencias y matrimonio adolescente
# Variable auxiliar: índice de riesgo acumulado de deserción (adimensional)
riesgo.desercion <- (
pobreza * (1 - becas) +
matrimonio.adolescente
) / 2 * ((t - 2026) / 10)
# las tasas de deserción no pueden superar 1
# Variable auxiliar: proporción anual de deserción en secundaria (0 a 1)
tasa.desercion.secundaria <- min(
1,
tasa.desercion.secundaria.inicial *
(1 + riesgo.desercion)
)
# Variable auxiliar: proporción anual de deserción en preparatoria (0 a 1)
tasa.desercion.preparatoria <- min(
1,
tasa.desercion.preparatoria.inicial *
(1 + riesgo.desercion)
)
# Variable auxiliar: población en edad de secundaria en cada año (personas)
poblacion.edad.secundaria.t <- poblacion.edad.secundaria *
(1 + tasa.crecimiento.poblacion)^(t - 2026)
# La eficiencia terminal del estado es de 77.9 (INEGI).
# En el modelo se usa una permanencia promedio de tres años.
# Flujo de salida de secundaria por egreso (estudiantes/año)
egresados.secundaria <-
numero.estudiantes.secundaria / 3
# flujos
# Flujo de entrada a secundaria por matriculación (estudiantes/año)
matriculacion.secundaria <- poblacion.edad.secundaria.t *
tasa.matriculacion
# Flujo de salida por deserción masculina en secundaria (estudiantes/año)
desercion.secundaria.masculina <-
numero.estudiantes.secundaria *
proporcion.masculina *
tasa.desercion.secundaria
# Flujo de salida por deserción femenina en secundaria (estudiantes/año)
desercion.secundaria.femenina <-
numero.estudiantes.secundaria *
(1 - proporcion.masculina) *
tasa.desercion.secundaria *
(1 + factor.cuidados.secundaria)
# Flujo de entrada a preparatoria desde secundaria (estudiantes/año)
matriculacion.preparatoria <-
egresados.secundaria *
tasa.transicion.preparatoria
# Flujo de salida por deserción masculina en preparatoria (estudiantes/año)
desercion.preparatoria.masculina <-
numero.estudiantes.preparatoria *
proporcion.masculina *
tasa.desercion.preparatoria *
(1 + factor.migracion)
# Flujo de salida por deserción femenina en preparatoria (estudiantes/año)
desercion.preparatoria.femenina <-
numero.estudiantes.preparatoria *
(1 - proporcion.masculina) *
tasa.desercion.preparatoria *
(1 + factor.cuidados.preparatoria)
# Flujo total de deserción en secundaria (estudiantes/año)
desercion.secundaria <-
desercion.secundaria.masculina +
desercion.secundaria.femenina
# Flujo total de deserción en preparatoria (estudiantes/año)
desercion.preparatoria <-
desercion.preparatoria.masculina +
desercion.preparatoria.femenina
# Flujo de salida de preparatoria por graduación (estudiantes/año)
graduados <-
numero.estudiantes.preparatoria / 3
# Flujo total de deserción del sistema educativo (estudiantes/año)
desercion.total <-
desercion.secundaria +
desercion.preparatoria
# indicador
# Indicador: proporción anual de estudiantes que desertan (0 a 1)
tasa.agregada.desercion <- desercion.total /
(
numero.estudiantes.secundaria +
numero.estudiantes.preparatoria
)
# stocks
# Cambio anual del stock de estudiantes de secundaria (estudiantes/año)
dnumero.estudiantes.secundaria <-
matriculacion.secundaria -
desercion.secundaria -
egresados.secundaria
# Cambio anual del stock de estudiantes de preparatoria (estudiantes/año)
dnumero.estudiantes.preparatoria <-
matriculacion.preparatoria -
desercion.preparatoria -
graduados
# Devuelve las variaciones de los stocks y las variables de seguimiento
list(
# Vector de cambios de los stocks (estudiantes/año)
c(
dnumero.estudiantes.secundaria,
dnumero.estudiantes.preparatoria
),
# Flujo de matriculación en secundaria (estudiantes/año)
matriculacion.secundaria =
matriculacion.secundaria,
# Flujo de matriculación en preparatoria (estudiantes/año)
matriculacion.preparatoria =
matriculacion.preparatoria,
# Flujo de deserción en secundaria (estudiantes/año)
desercion.secundaria =
desercion.secundaria,
# Flujo de deserción en preparatoria (estudiantes/año)
desercion.preparatoria =
desercion.preparatoria,
# Flujo de graduación de preparatoria (estudiantes/año)
graduados =
graduados,
# Flujo total de deserción (estudiantes/año)
desercion.total =
desercion.total,
# Tasa anual de deserción en secundaria (proporción)
tasa.desercion.secundaria =
tasa.desercion.secundaria,
# Tasa anual de deserción en preparatoria (proporción)
tasa.desercion.preparatoria =
tasa.desercion.preparatoria,
# Tasa agregada anual de deserción (proporción)
tasa.agregada.desercion =
tasa.agregada.desercion
)
})
}
# Parámetros y variables exógenas del escenario base
parameters <- c(
tasa.crecimiento.poblacion = 0.023, # Parámetro exógeno: crecimiento anual de la población (proporción/año). Data México
poblacion.edad.secundaria = 75,
# Variable exógena: población inicial en edad de secundaria (personas)
# población 10-14 según el ITER 2020
tasa.matriculacion = 0.64 / 3,
# Parámetro: proporción anual de población que ingresa a secundaria
# Si hay 75 pero solo 48 matriculados, la tasa de matriculación es 48/75 = 0.64. pero lo dividimos entre 3 porque hay 48 matriculados en los tres años de secundaria
tasa.desercion.secundaria.inicial = 0.112,
# Parámetro: tasa inicial anual de deserción en secundaria (proporción)
tasa.desercion.preparatoria.inicial = 0.20,
# Parámetro: tasa inicial anual de deserción en preparatoria (proporción)
# Formato 911; tasa de deserción observada al inicio del periodo
proporcion.masculina = 0.454,
# Parámetro exógeno: proporción masculina de la población estudiantil (0 a 1)
# ITER distibución poblacional de Cerros blancos
factor.cuidados.secundaria = 0.77,
# Variable exógena: factor de incremento de la deserción femenina por cuidados (proporción)
# Se calculó la proporción de niñas de 12-14 años que contribuyen al trabajo de cuidados a partir de la base de datos de la ENUT 2024, tomando únicamente aquellas observaciones para localidades rurales.
tasa.transicion.preparatoria = 0.38,
# Parámetro: proporción de egresados de secundaria que ingresan a preparatoria
# de 48 pasa a 18 => 18/48 = 0.38
factor.migracion = 0.0532,
# Variable exógena: factor de incremento de la deserción masculina por migración (proporción)
# CONAPO
factor.cuidados.preparatoria = 0.78,
# Variable exógena: factor de incremento de la deserción femenina por cuidados (proporción)
# Se calculó la proporción de niñas de 15-18 años que contribuyen al trabajo de cuidados a partir de la base de datos de la ENUT 2024, tomando únicamente aquellas observaciones para localidades rurales.
pobreza = 0.651,
# Variable exógena: proporción de población en situación de pobreza (0 a 1)
# dato utilizado en el modelo ampliado; CONEVAL.
becas = min(1, 150 / 266),
# Variable exógena: proporción de cobertura de becas (0 a 1)
# cobertura de becas utilizada en el modelo ampliado
matrimonio.adolescente = 0.102
# Variable exógena: proporción asociada al matrimonio adolescente (0 a 1)
# dato utilizado en el modelo ampliado; estimaciones del modelo de política
)
# Ejecuta la simulación del modelo y almacena los resultados
out_base <- ode(
y = InitialConditions,
times = times,
func = model_base,
parms = parameters,
method = "rk4"
)
plot(out_base, col = "blue")
Una vez establecido el modelo base, se desarrolló un análisis de incertidumbre con el propósito de examinar cómo responde el sistema educativo ante variaciones simultáneas en las condiciones externas que influyen sobre la deserción escolar. A diferencia del escenario base, que utiliza valores puntuales para cada parámetro, este análisis considera un conjunto amplio de combinaciones posibles, permitiendo explorar trayectorias alternativas y someter la estructura del submodelo a distintas pruebas de estrés.
Las variables seleccionadas fueron las tasas iniciales de deserción en secundaria y preparatoria, la pobreza, la cobertura de becas y el matrimonio adolescente. Su elección responde a que funcionan como parámetros exógenos dentro del submodelo y modifican directamente el riesgo de deserción o su nivel inicial. Las tasas de deserción representan las condiciones educativas observadas al comienzo del periodo; la pobreza y el matrimonio adolescente incrementan las presiones que pueden dificultar la permanencia escolar, mientras que las becas actúan como un factor de protección al reducir el efecto de las carencias económicas.
Para representar la incertidumbre se generaron 1,000 combinaciones aleatorias de parámetros, distribuidas entre tres escenarios contrastantes: 334 corridas optimistas, 333 pesimistas y 333 de alta volatilidad. En cada corrida, las variables adoptan valores extraídos de una distribución uniforme dentro de los intervalos definidos para su escenario, lo que evita representar cada futuro mediante una sola combinación determinista.
Se establecieron 1,000 corridas debido a que el análisis tiene un propósito exploratorio de incertidumbre y sensibilidad, no de estimación estadística de una población. Este número permite generar una diversidad amplia de combinaciones simultáneas entre las cinco variables exógenas, observar la dispersión de las trayectorias y comparar de manera equilibrada los tres escenarios definidos, sin imponer una carga computacional innecesaria. Las simulaciones se distribuyeron prácticamente en partes iguales —334 optimistas, 333 pesimistas y 333 de alta volatilidad— para evitar que alguno de los escenarios tuviera un peso desproporcionado en el análisis. Asimismo, el uso de una semilla fija garantiza que las 1,000 combinaciones sean reproducibles.
Los rangos se construyeron tomando como referencia los valores del modelo base. En el escenario optimista, los parámetros de riesgo se mantienen entre valores inferiores y el punto de referencia, mientras que la cobertura de becas puede alcanzar niveles superiores. En el escenario pesimista ocurre lo contrario: las tasas de deserción, la pobreza y el matrimonio adolescente aumentan, al mismo tiempo que disminuye la cobertura de becas. Finalmente, el escenario de alta volatilidad utiliza intervalos más amplios que incorporan tanto condiciones favorables como desfavorables, con la finalidad de evaluar la respuesta del sistema ante cambios externos de mayor magnitud. En este caso, la volatilidad se interpreta como una mayor amplitud de los valores posibles entre las distintas corridas y no como una modificación anual de los parámetros dentro de una misma simulación.
| Variable | Optimista | Pesimista | Alta volatilidad |
|---|---|---|---|
| Tasa inicial de deserción en secundaria | 0.08–0.112 | 0.112–0.16 | 0.07–0.18 |
| Tasa inicial de deserción en preparatoria | 0.14–0.20 | 0.20–0.28 | 0.12–0.32 |
| Pobreza | 0.50–0.651 | 0.651–0.80 | 0.45–0.85 |
| Becas | 0.564–0.80 | 0.35–0.564 | 0.25–0.90 |
| Matrimonio adolescente | 0.04–0.102 | 0.102–0.18 | 0.03–0.20 |
Nota. Elaboración propia.
La Tabla 2 presenta los límites utilizados para cada variable. Estos intervalos no deben interpretarse como predicciones exactas, sino como supuestos de prueba construidos alrededor del escenario base para explorar la sensibilidad del modelo. Su función es delimitar futuros plausibles y contrastantes que permitan identificar si pequeñas o amplias variaciones en las condiciones externas generan cambios significativos en la deserción escolar.
set.seed(123)
n.optimista <- 334
n.pesimista <- 333
n.volatilidad <- 333
Xs.optimista <- data.frame(
escenario = "Optimista",
tasa.desercion.secundaria.inicial = runif(
n.optimista, 0.08, 0.112
),
tasa.desercion.preparatoria.inicial = runif(
n.optimista, 0.14, 0.20
),
pobreza = runif(
n.optimista, 0.50, 0.651
),
becas = runif(
n.optimista, 150 / 266, 0.80
),
matrimonio.adolescente = runif(
n.optimista, 0.04, 0.102
)
)
Xs.pesimista <- data.frame(
escenario = "Pesimista",
tasa.desercion.secundaria.inicial = runif(
n.pesimista, 0.112, 0.16
),
tasa.desercion.preparatoria.inicial = runif(
n.pesimista, 0.20, 0.28
),
pobreza = runif(
n.pesimista, 0.651, 0.80
),
becas = runif(
n.pesimista, 0.35, 150 / 266
),
matrimonio.adolescente = runif(
n.pesimista, 0.102, 0.18
)
)
Xs.volatilidad <- data.frame(
escenario = "Alta volatilidad",
tasa.desercion.secundaria.inicial = runif(
n.volatilidad, 0.07, 0.18
),
tasa.desercion.preparatoria.inicial = runif(
n.volatilidad, 0.12, 0.32
),
pobreza = runif(
n.volatilidad, 0.45, 0.85
),
becas = runif(
n.volatilidad, 0.25, 0.90
),
matrimonio.adolescente = runif(
n.volatilidad, 0.03, 0.20
)
)
Xs <- rbind(
Xs.optimista,
Xs.pesimista,
Xs.volatilidad
)
Xs$Run.ID <- seq_len(nrow(Xs))
Xs$escenario <- factor(
Xs$escenario,
levels = c(
"Optimista",
"Pesimista",
"Alta volatilidad"
)
)
nrow(Xs)
## [1] 1000
table(Xs$escenario)
##
## Optimista Pesimista Alta volatilidad
## 334 333 333
Después de generar las combinaciones, los tres escenarios se integraron en una sola base de datos. A cada corrida se le asignó un identificador único denominado Run.ID, el cual permite vincular los valores de entrada con los resultados obtenidos. Asimismo, los escenarios se ordenaron como una variable categórica y se verificó que la distribución final correspondiera a las 1,000 simulaciones establecidas.
Posteriormente, el modelo base fue ejecutado para cada combinación, conservando sus condiciones iniciales y relaciones matemáticas, pero sustituyendo los valores de las variables inciertas. Cada simulación fue vinculada con un identificador y con el escenario correspondiente, lo que permitió integrar todos los resultados en una sola base para su comparación.
out_all <- vector(
mode = "list",
length = nrow(Xs)
)
for (i in seq_len(nrow(Xs))) {
parameters.Xs <- parameters
parameters.Xs[
"tasa.desercion.secundaria.inicial"
] <- Xs$tasa.desercion.secundaria.inicial[i]
parameters.Xs[
"tasa.desercion.preparatoria.inicial"
] <- Xs$tasa.desercion.preparatoria.inicial[i]
parameters.Xs["pobreza"] <- Xs$pobreza[i]
parameters.Xs["becas"] <- Xs$becas[i]
parameters.Xs["matrimonio.adolescente"] <-
Xs$matrimonio.adolescente[i]
out_i <- ode(
y = InitialConditions,
times = times,
func = model_base,
parms = parameters.Xs,
method = "rk4"
)
out_i <- data.frame(out_i)
out_i$Run.ID <- Xs$Run.ID[i]
out_i$escenario <- as.character(Xs$escenario[i])
out_i$tasa.desercion.secundaria.inicial <-
Xs$tasa.desercion.secundaria.inicial[i]
out_i$tasa.desercion.preparatoria.inicial <-
Xs$tasa.desercion.preparatoria.inicial[i]
out_i$pobreza <- Xs$pobreza[i]
out_i$becas <- Xs$becas[i]
out_i$matrimonio.adolescente <-
Xs$matrimonio.adolescente[i]
out_all[[i]] <- out_i
}
out_all <- do.call("rbind", out_all)
out_all$escenario <- factor(
out_all$escenario,
levels = c(
"Optimista",
"Pesimista",
"Alta volatilidad"
)
)
dim(out_all)
## [1] 11000 19
grafica_sensibilidad <- function(
datos,
variable,
titulo,
leyenda,
invertir = FALSE
) {
p <- ggplot(
datos,
aes(
x = time,
y = desercion.total,
group = Run.ID,
colour = .data[[variable]]
)
) +
geom_line(
alpha = 0.35,
linewidth = 0.45
) +
labs(
title = titulo,
x = "Año",
y = "Estudiantes que desertan",
colour = leyenda
) +
theme_minimal()
if (invertir) {
p <- p + scale_color_gradient(
low = "red",
high = "green"
)
} else {
p <- p + scale_color_gradient(
low = "green",
high = "red"
)
}
return(p)
}
grafica_sensibilidad_stock <- function(
datos,
stock,
variable,
titulo,
leyenda,
invertir = FALSE
) {
p <- ggplot(
datos,
aes(
x = time,
y = .data[[stock]],
group = Run.ID,
colour = .data[[variable]]
)
) +
geom_line(alpha = 0.35, linewidth = 0.45) +
labs(
title = titulo,
x = "Año",
y = "Número de estudiantes",
colour = leyenda
) +
theme_minimal()
if (invertir) {
p <- p + scale_color_gradient(
low = "red",
high = "green"
)
} else {
p <- p + scale_color_gradient(
low = "green",
high = "red"
)
}
return(p)
}
p.general <- ggplot(
out_all,
aes(
x = time,
y = desercion.total,
group = Run.ID,
colour = escenario
)
) +
geom_line(
alpha = 0.12,
linewidth = 0.35
) +
stat_summary(
aes(
group = escenario,
colour = escenario
),
fun = mean,
geom = "line",
linewidth = 1.4
) +
scale_color_manual(
values = c(
"Optimista" = "green3",
"Pesimista" = "red",
"Alta volatilidad" = "darkred"
)
) +
labs(
title = "Deserción escolar bajo 1,000 futuros probables",
subtitle = "Comparación de escenarios multivariados",
x = "Año",
y = "Estudiantes que desertan",
colour = "Escenario"
) +
theme_minimal()
p.general
En la gráfica se presentan 1,000 futuros probables construidos a partir de variaciones simultáneas en las condiciones externas que influyen sobre la deserción escolar. Aunque existe una dispersión amplia entre las corridas, los tres escenarios comparten una trayectoria general: el número de estudiantes que abandona la escuela disminuye con rapidez durante los primeros años, alcanza su punto más bajo alrededor de 2031 y posteriormente comienza a incrementarse de forma moderada. Esta coincidencia indica que la forma general del comportamiento es relativamente estable, mientras que la magnitud del problema depende de las condiciones que se materialicen.
El escenario optimista se mantiene en la parte inferior de la gráfica y presenta los menores niveles de deserción durante todo el periodo, con valores que se concentran aproximadamente entre 8 y 9 estudiantes hacia el final de la simulación. En cambio, el escenario pesimista registra los resultados más desfavorables y concluye cerca de 11 estudiantes desertores por año. El escenario de alta volatilidad se ubica entre ambos, pero sus corridas muestran una dispersión considerable, lo que refleja que cambios bruscos o poco predecibles en las variables exógenas pueden acercar al sistema tanto a resultados moderados como a situaciones de mayor abandono.
El análisis también permite identificar un punto relevante para la toma de decisiones: la reducción inicial de la deserción no garantiza que la tendencia se mantenga de manera indefinida. A partir de 2031, los tres grupos comienzan a mostrar un repunte, especialmente bajo condiciones pesimistas. Por ello, el reto no consiste únicamente en alcanzar una disminución temporal, sino en sostenerla frente a posibles aumentos de la pobreza, menor cobertura de becas, mayores tasas iniciales de abandono u otros factores externos. En este sentido, la separación persistente entre escenarios confirma que el futuro educativo de la comunidad es sensible al contexto y que las acciones preventivas deben anticiparse al deterioro de estas condiciones.
Bajo el escenario optimista, las simulaciones conservan una trayectoria bastante definida: la deserción disminuye con rapidez entre 2026 y 2031, cuando alcanza su nivel mínimo, y después registra un repunte moderado. La concentración de la mayoría de las corridas alrededor de una misma forma indica que el modelo mantiene un comportamiento relativamente estable aun cuando las variables exógenas cambian simultáneamente dentro de rangos favorables. Sin embargo, la recuperación posterior a 2031 muestra que el sistema no es completamente resiliente, ya que las condiciones positivas reducen la magnitud del abandono, pero no eliminan las presiones que vuelven a impulsarlo en el largo plazo.
La mayor separación entre trayectorias se relaciona con las tasas iniciales de deserción en secundaria y preparatoria: cuanto más alto es su valor, mayor permanece el abandono durante todo el horizonte. La pobreza y el matrimonio adolescente también elevan la deserción, aunque su efecto dentro de este escenario es menos pronunciado. En sentido contrario, una mayor cobertura de becas desplaza las corridas hacia niveles inferiores y funciona como un factor de protección. Esto sugiere que, incluso en un entorno favorable, los resultados dependen principalmente de las condiciones escolares de partida, mientras que las becas pueden contener parte del efecto de las vulnerabilidades socioeconómicas.
datos.optimista <- subset(
out_all,
escenario == "Optimista"
)
p.optimista.general <- ggplot(
datos.optimista,
aes(
x = time,
y = desercion.total,
group = Run.ID
)
) +
geom_line(
colour = "green3",
alpha = 0.25,
linewidth = 0.40
) +
stat_summary(
aes(group = 1),
fun = mean,
geom = "line",
colour = "darkgreen",
linewidth = 1.4
) +
labs(
title = "Escenario optimista",
x = "Año",
y = "Estudiantes que desertan"
) +
theme_minimal()
p.optimista.1 <- grafica_sensibilidad(
datos.optimista,
"tasa.desercion.secundaria.inicial",
"Optimista: deserción inicial en secundaria",
"Tasa inicial"
)
p.optimista.2 <- grafica_sensibilidad(
datos.optimista,
"tasa.desercion.preparatoria.inicial",
"Optimista: deserción inicial en preparatoria",
"Tasa inicial"
)
p.optimista.3 <- grafica_sensibilidad(
datos.optimista,
"pobreza",
"Optimista: sensibilidad a la pobreza",
"Pobreza"
)
p.optimista.4 <- grafica_sensibilidad(
datos.optimista,
"becas",
"Optimista: sensibilidad a las becas",
"Cobertura",
invertir = TRUE
)
p.optimista.5 <- grafica_sensibilidad(
datos.optimista,
"matrimonio.adolescente",
"Optimista: matrimonio adolescente",
"Proporción"
)
p.optimista.general
grid.arrange(
p.optimista.1,
p.optimista.2,
p.optimista.3,
p.optimista.4,
p.optimista.5,
ncol = 2
)
En el escenario optimista, la deserción disminuye con rapidez durante los primeros años, alcanza su punto mínimo alrededor de 2031 y después presenta un repunte moderado. La línea central resume este comportamiento, mientras que la dispersión de las corridas muestra que, incluso bajo condiciones favorables, existe incertidumbre sobre la cantidad exacta de estudiantes que podrían abandonar sus estudios. Sin embargo, la forma general se mantiene en casi todas las simulaciones, lo que indica cierta estabilidad de la estructura del modelo.
La lectura por colores muestra que las tasas iniciales de deserción son las variables que generan la separación más clara. En secundaria y preparatoria, las líneas verdes representan tasas iniciales más bajas y se concentran en la parte inferior, mientras que las líneas rojas corresponden a valores más altos y producen una mayor deserción durante todo el periodo. Esto significa que una condición inicial desfavorable deja un efecto persistente: aun cuando el entorno posterior sea optimista, comenzar con niveles elevados de abandono dificulta alcanzar los mejores resultados.
En las demás variables, la relación existe, aunque es menos marcada. Para la pobreza, los valores altos, representados en rojo, tienden a ubicarse entre las trayectorias con mayor deserción, mientras que los niveles bajos, en verde, se asocian con resultados más favorables. En la cobertura de becas la escala funciona en sentido contrario: el verde representa una cobertura mayor y se relaciona con una menor deserción, mientras que el rojo indica una cobertura reducida y resultados más adversos. En el caso del matrimonio adolescente, las proporciones altas aparecen en rojo y tienden a elevar el abandono, mientras que las proporciones bajas, en verde, lo reducen. No obstante, la superposición de colores en estas tres gráficas indica que su efecto individual es más débil o puede verse compensado por la combinación simultánea con otras variables.
# Secundaria
os1 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.secundaria",
"tasa.desercion.secundaria.inicial",
"Optimista: estudiantes de secundaria y tasa de deserción",
"Tasa inicial"
)
os2 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.secundaria",
"pobreza",
"Optimista: estudiantes de secundaria y pobreza",
"Pobreza"
)
os3 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.secundaria",
"becas",
"Optimista: estudiantes de secundaria y becas",
"Cobertura",
invertir = TRUE
)
os4 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.secundaria",
"matrimonio.adolescente",
"Optimista: estudiantes de secundaria y matrimonio adolescente",
"Proporción"
)
grid.arrange(os1, os2, os3, os4, ncol = 2)
# Preparatoria
op1 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.preparatoria",
"tasa.desercion.preparatoria.inicial",
"Optimista: estudiantes de preparatoria y tasa de deserción",
"Tasa inicial"
)
op2 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.preparatoria",
"pobreza",
"Optimista: estudiantes de preparatoria y pobreza",
"Pobreza"
)
op3 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.preparatoria",
"becas",
"Optimista: estudiantes de preparatoria y becas",
"Cobertura",
invertir = TRUE
)
op4 <- grafica_sensibilidad_stock(
datos.optimista,
"numero.estudiantes.preparatoria",
"matrimonio.adolescente",
"Optimista: estudiantes de preparatoria y matrimonio adolescente",
"Proporción"
)
grid.arrange(op1, op2, op3, op4, ncol = 2)
En secundaria, el stock disminuye hasta aproximadamente 2031 y después comienza a recuperarse. La relación más visible vuelve a presentarse en la tasa inicial de deserción: las trayectorias verdes, asociadas con tasas menores, conservan un mayor número de estudiantes, mientras que las rojas, correspondientes a tasas más altas, permanecen en la parte inferior. Hacia el final del periodo, esta diferencia puede representar varios estudiantes, lo cual resulta relevante dado el reducido tamaño de la comunidad escolar.
El mismo sentido se observa en los otros factores. Una menor pobreza, identificada con tonos verdes, favorece un stock estudiantil más alto, mientras que los tonos rojos, asociados con mayor pobreza, tienden a mostrar menos alumnos. En la gráfica de becas, las líneas verdes representan una cobertura más amplia y se ubican generalmente entre los resultados más favorables; las rojas corresponden a una cobertura menor y a una permanencia más baja. De forma similar, una menor proporción de matrimonio adolescente, en verde, permite conservar más estudiantes que los valores altos representados en rojo. La mezcla parcial de colores confirma que estas variables influyen, pero ninguna determina por sí sola la trayectoria cuando las demás también están cambiando.
La preparatoria presenta una mayor vulnerabilidad, ya que el número de estudiantes cae de 18 a un intervalo aproximado de entre 7 y 9 y apenas logra estabilizarse. En la gráfica de la tasa inicial, los valores altos en rojo producen los stocks más bajos, mientras que las tasas menores en verde permiten mantener un mayor número de alumnos. Para pobreza y matrimonio adolescente se conserva la misma relación: valores altos en rojo reducen el stock y valores bajos en verde mejoran la permanencia. En cambio, para las becas, los tonos verdes representan una cobertura elevada y se asocian con más estudiantes, mientras que los rojos indican menor cobertura y resultados inferiores. Aun así, la cercanía entre las trayectorias de estas últimas variables sugiere que la preparatoria no depende de un único factor, sino de la combinación entre las condiciones socioeconómicas y los niveles iniciales de abandono.
datos.pesimista <- subset(
out_all,
escenario == "Pesimista"
)
p.pesimista.general <- ggplot(
datos.pesimista,
aes(
x = time,
y = desercion.total,
group = Run.ID
)
) +
geom_line(
colour = "red",
alpha = 0.25,
linewidth = 0.40
) +
stat_summary(
aes(group = 1),
fun = mean,
geom = "line",
colour = "red4",
linewidth = 1.4
) +
labs(
title = "Escenario pesimista",
x = "Año",
y = "Estudiantes que desertan"
) +
theme_minimal()
p.pesimista.1 <- grafica_sensibilidad(
datos.pesimista,
"tasa.desercion.secundaria.inicial",
"Pesimista: deserción inicial en secundaria",
"Tasa inicial"
)
p.pesimista.2 <- grafica_sensibilidad(
datos.pesimista,
"tasa.desercion.preparatoria.inicial",
"Pesimista: deserción inicial en preparatoria",
"Tasa inicial"
)
p.pesimista.3 <- grafica_sensibilidad(
datos.pesimista,
"pobreza",
"Pesimista: sensibilidad a la pobreza",
"Pobreza"
)
p.pesimista.4 <- grafica_sensibilidad(
datos.pesimista,
"becas",
"Pesimista: sensibilidad a las becas",
"Cobertura",
invertir = TRUE
)
p.pesimista.5 <- grafica_sensibilidad(
datos.pesimista,
"matrimonio.adolescente",
"Pesimista: matrimonio adolescente",
"Proporción"
)
p.pesimista.general
grid.arrange(
p.pesimista.1,
p.pesimista.2,
p.pesimista.3,
p.pesimista.4,
p.pesimista.5,
ncol = 2
)
En el escenario pesimista, la deserción agregada sigue la misma forma general observada en los otros futuros probables, pero desplazada hacia niveles claramente más altos. La trayectoria central inicia cerca de 15.5 estudiantes que desertan, desciende de manera importante hasta alrededor de 2031 y después vuelve a aumentar gradualmente. Esto sugiere que, aun cuando el sistema tiene una inercia que lo lleva a reducir la deserción en los primeros años, bajo condiciones externas desfavorables esa mejora es limitada y termina revirtiéndose parcialmente. En otras palabras, la estructura del modelo no colapsa de inmediato, pero sí se vuelve más frágil frente a un entorno adverso.
La lectura por colores deja ver con claridad que las tasas iniciales de deserción, tanto en secundaria como en preparatoria, son las variables que más ordenan las trayectorias. En ambas subgráficas, las líneas verdes —que representan valores iniciales más bajos dentro del rango pesimista— se ubican sistemáticamente en la parte inferior, mientras que las líneas rojas —valores iniciales más altos— producen mayor deserción durante todo el horizonte. Esto indica que una mala condición de partida amplifica la vulnerabilidad del sistema: si el abandono ya arranca en niveles elevados, incluso pequeñas mejoras posteriores no son suficientes para cerrar la brecha.
En las demás variables el patrón también es consistente, aunque menos marcado. En pobreza, los tonos rojos corresponden a niveles más altos y se asocian con más estudiantes desertores, mientras que los verdes muestran resultados relativamente menos adversos. En cobertura de becas ocurre lo contrario: el verde representa mayor cobertura y se concentra en las trayectorias de menor deserción, en tanto que el rojo, asociado con una cobertura más baja, empuja la deserción hacia arriba. Algo similar sucede con el matrimonio adolescente: las proporciones más altas, en rojo, tienden a elevar el abandono, mientras que las menores, en verde, lo moderan. Aun así, la superposición parcial entre curvas sugiere que ninguna de estas variables actúa sola; su efecto depende de cómo se combina con las demás dentro del escenario pesimista.
# Secundaria
ps1 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.secundaria",
"tasa.desercion.secundaria.inicial",
"Pesimista: estudiantes de secundaria y tasa de deserción",
"Tasa inicial"
)
ps2 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.secundaria",
"pobreza",
"Pesimista: estudiantes de secundaria y pobreza",
"Pobreza"
)
ps3 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.secundaria",
"becas",
"Pesimista: estudiantes de secundaria y becas",
"Cobertura",
invertir = TRUE
)
ps4 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.secundaria",
"matrimonio.adolescente",
"Pesimista: estudiantes de secundaria y matrimonio adolescente",
"Proporción"
)
grid.arrange(ps1, ps2, ps3, ps4, ncol = 2)
# Preparatoria
pp1 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.preparatoria",
"tasa.desercion.preparatoria.inicial",
"Pesimista: estudiantes de preparatoria y tasa de deserción",
"Tasa inicial"
)
pp2 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.preparatoria",
"pobreza",
"Pesimista: estudiantes de preparatoria y pobreza",
"Pobreza"
)
pp3 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.preparatoria",
"becas",
"Pesimista: estudiantes de preparatoria y becas",
"Cobertura",
invertir = TRUE
)
pp4 <- grafica_sensibilidad_stock(
datos.pesimista,
"numero.estudiantes.preparatoria",
"matrimonio.adolescente",
"Pesimista: estudiantes de preparatoria y matrimonio adolescente",
"Proporción"
)
grid.arrange(pp1, pp2, pp3, pp4, ncol = 2)
En secundaria, el número de estudiantes cae con fuerza entre 2026 y 2031 y luego muestra apenas una recuperación moderada. La subgráfica más clara es la de la tasa inicial de deserción: cuando esta es baja (verde), el sistema logra conservar más alumnos; cuando es alta (rojo), el stock se mantiene en los niveles más reducidos. El mismo sentido aparece en las otras variables: una menor pobreza favorece una mayor permanencia, una mayor cobertura de becas ayuda a sostener el stock, y una menor proporción de matrimonio adolescente también mejora los resultados. Sin embargo, la recuperación final sigue siendo limitada, lo que revela que en un contexto pesimista la secundaria retiene cierta capacidad de ajuste, pero no suficiente para compensar plenamente las pérdidas iniciales.
La preparatoria muestra un comportamiento todavía más delicado. El stock desciende de 18 estudiantes a un rango cercano de entre 5 y 7 al final del periodo, sin una recuperación visible como la de secundaria. Otra vez, la tasa inicial de deserción en preparatoria organiza con mucha claridad los resultados: valores altos en rojo llevan a los stocks más bajos, mientras que valores menores en verde permiten conservar algo más de alumnado. La pobreza y el matrimonio adolescente siguen la misma lógica —mayores valores empeoran la permanencia—, mientras que en becas el efecto protector del color verde vuelve a notarse. En conjunto, estas gráficas muestran que, bajo condiciones pesimistas, la preparatoria es el nivel más vulnerable del sistema: no sólo pierde estudiantes con rapidez, sino que además responde con mayor sensibilidad a combinaciones adversas de las variables exógenas.
datos.volatilidad <- subset(
out_all,
escenario == "Alta volatilidad"
)
p.volatilidad.general <- ggplot(
datos.volatilidad,
aes(
x = time,
y = desercion.total,
group = Run.ID
)
) +
geom_line(
colour = "darkred",
alpha = 0.25,
linewidth = 0.40
) +
stat_summary(
aes(group = 1),
fun = mean,
geom = "line",
colour = "red4",
linewidth = 1.4
) +
labs(
title = "Escenario de alta volatilidad",
x = "Año",
y = "Estudiantes que desertan"
) +
theme_minimal()
p.volatilidad.1 <- grafica_sensibilidad(
datos.volatilidad,
"tasa.desercion.secundaria.inicial",
"Alta volatilidad: deserción inicial en secundaria",
"Tasa inicial"
)
p.volatilidad.2 <- grafica_sensibilidad(
datos.volatilidad,
"tasa.desercion.preparatoria.inicial",
"Alta volatilidad: deserción inicial en preparatoria",
"Tasa inicial"
)
p.volatilidad.3 <- grafica_sensibilidad(
datos.volatilidad,
"pobreza",
"Alta volatilidad: sensibilidad a la pobreza",
"Pobreza"
)
p.volatilidad.4 <- grafica_sensibilidad(
datos.volatilidad,
"becas",
"Alta volatilidad: sensibilidad a las becas",
"Cobertura",
invertir = TRUE
)
p.volatilidad.5 <- grafica_sensibilidad(
datos.volatilidad,
"matrimonio.adolescente",
"Alta volatilidad: matrimonio adolescente",
"Proporción"
)
p.volatilidad.general
grid.arrange(
p.volatilidad.1,
p.volatilidad.2,
p.volatilidad.3,
p.volatilidad.4,
p.volatilidad.5,
ncol = 2
)
En el escenario de alta volatilidad, la forma general de la deserción agregada se mantiene —una caída inicial, un mínimo alrededor de 2031 y un repunte posterior—, pero lo que cambia de manera importante es la amplitud de los resultados posibles. Desde el inicio se observa una dispersión mucho mayor que en los escenarios optimista y pesimista, lo que significa que pequeñas variaciones simultáneas en las condiciones externas pueden empujar al sistema hacia trayectorias bastante distintas. Esto sugiere que la estructura del modelo conserva cierto patrón de comportamiento, pero pierde estabilidad cuando el entorno se vuelve más inestable; es decir, la comunidad no enfrenta un único futuro probable, sino un abanico amplio de resultados posibles.
La lectura por colores confirma que las tasas iniciales de deserción siguen siendo las variables más influyentes. Tanto en secundaria como en preparatoria, las líneas verdes —que representan valores iniciales más bajos— se concentran en la parte inferior de la gráfica, mientras que las líneas rojas —valores más altos— producen niveles claramente mayores de deserción durante todo el horizonte. La separación es especialmente visible en los primeros años, lo que indica que el punto de partida condiciona fuertemente la trayectoria posterior. En otras palabras, cuando el sistema arranca con niveles altos de abandono, la volatilidad del entorno amplifica ese problema en lugar de corregirlo.
En las demás variables también aparece una dirección clara del efecto, aunque con más superposición. En pobreza, los valores altos, representados en rojo, se asocian con mayores niveles de deserción, mientras que los valores más bajos, en verde, tienden a reducirla. En cobertura de becas ocurre lo contrario: las líneas verdes, correspondientes a una mayor cobertura, se ubican entre las trayectorias más favorables, mientras que las rojas, asociadas con menor cobertura, elevan el abandono. Algo similar sucede con el matrimonio adolescente: una mayor proporción, en rojo, empuja la deserción hacia arriba, y una menor proporción, en verde, la contiene. Sin embargo, la mezcla entre colores muestra que, en un contexto volátil, estas variables no actúan de manera aislada; su efecto depende de cómo interactúan entre sí y con los niveles iniciales de deserción.
# Secundaria
vs1 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.secundaria",
"tasa.desercion.secundaria.inicial",
"Alta volatilidad: estudiantes de secundaria y tasa de deserción",
"Tasa inicial"
)
vs2 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.secundaria",
"pobreza",
"Alta volatilidad: estudiantes de secundaria y pobreza",
"Pobreza"
)
vs3 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.secundaria",
"becas",
"Alta volatilidad: estudiantes de secundaria y becas",
"Cobertura",
invertir = TRUE
)
vs4 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.secundaria",
"matrimonio.adolescente",
"Alta volatilidad: secundaria y matrimonio adolescente",
"Proporción"
)
grid.arrange(vs1, vs2, vs3, vs4, ncol = 2)
# Preparatoria
vp1 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.preparatoria",
"tasa.desercion.preparatoria.inicial",
"Alta volatilidad: preparatoria y tasa de deserción",
"Tasa inicial"
)
vp2 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.preparatoria",
"pobreza",
"Alta volatilidad: estudiantes de preparatoria y pobreza",
"Pobreza"
)
vp3 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.preparatoria",
"becas",
"Alta volatilidad: estudiantes de preparatoria y becas",
"Cobertura",
invertir = TRUE
)
vp4 <- grafica_sensibilidad_stock(
datos.volatilidad,
"numero.estudiantes.preparatoria",
"matrimonio.adolescente",
"Alta volatilidad: preparatoria y matrimonio adolescente",
"Proporción"
)
grid.arrange(vp1, vp2, vp3, vp4, ncol = 2)
En secundaria, el número de estudiantes cae con fuerza en los primeros años, toca un mínimo hacia 2031 y luego presenta una recuperación parcial. A diferencia del escenario optimista, aquí la dispersión es bastante más amplia, lo que revela una mayor sensibilidad del stock ante cambios externos. La subgráfica más clara vuelve a ser la de tasa inicial de deserción: cuando esta es baja (verde), el sistema logra sostener más estudiantes, mientras que valores altos (rojo) producen los stocks más bajos. La pobreza sigue el mismo patrón: niveles altos en rojo se relacionan con menos alumnos, y niveles bajos en verde con una permanencia mayor. En becas, una cobertura amplia —verde— ayuda a conservar más estudiantes, mientras que una cobertura menor —rojo— reduce el stock. Finalmente, una menor proporción de matrimonio adolescente también favorece trayectorias más altas, mientras que proporciones mayores las empujan hacia abajo.
La preparatoria es, otra vez, el nivel más frágil del sistema, pero en alta volatilidad esa fragilidad se vuelve todavía más evidente. El stock final puede moverse en un rango mucho más amplio que en los otros escenarios, lo que indica que la continuidad escolar en este nivel depende fuertemente de las condiciones externas. La variable que más ordena las trayectorias es la tasa inicial de deserción en preparatoria: con valores bajos, en verde, el número de estudiantes se mantiene relativamente más alto; con valores altos, en rojo, las curvas descienden hasta los niveles más reducidos. La pobreza alta y el matrimonio adolescente alto también disminuyen el stock, mientras que una mayor cobertura de becas ayuda a sostenerlo. En conjunto, estas gráficas muestran que el escenario de alta volatilidad no necesariamente produce siempre el peor promedio, pero sí el mayor grado de incertidumbre; por ello, pone en evidencia que la estructura actual del modelo es menos resiliente cuando el entorno cambia de forma brusca e impredecible.
Las gráficas de sensibilidad muestran la evolución de la deserción escolar bajo 1,000 futuros probables distribuidos en tres escenarios: optimista, pesimista y de alta volatilidad. Cada línea representa una simulación posible, mientras que las líneas promedio permiten comparar el comportamiento esperado de cada escenario.
Los resultados indican que el modelo es sensible a las variaciones simultáneas en factores como la pobreza, el acceso a becas, el matrimonio adolescente y las tasas iniciales de deserción. En el escenario optimista, la deserción tiende a mantenerse en niveles más bajos y presenta una menor dispersión entre simulaciones, lo que sugiere una mayor estabilidad del sistema ante cambios en el entorno. En contraste, el escenario pesimista muestra niveles de deserción significativamente más altos y una trayectoria creciente, reflejando una mayor vulnerabilidad cuando las condiciones socioeconómicas empeoran.
El escenario de alta volatilidad presenta la mayor dispersión de resultados, evidenciando que pequeñas variaciones en los parámetros pueden generar diferencias importantes en los niveles futuros de deserción. Esto indica que existe incertidumbre considerable en el sistema y que algunos factores externos pueden amplificar los problemas educativos si no se implementan mecanismos de mitigación.
La estructura del modelo puede considerarse moderadamente resiliente, ya que mantiene un comportamiento estable bajo condiciones favorables; sin embargo, también muestra vulnerabilidad significativa frente al aumento de la pobreza, la reducción de apoyos educativos y otros factores de riesgo. Por ello, las políticas de intervención deben enfocarse en fortalecer los elementos protectores (como programas de permanencia escolar) para reducir la sensibilidad del sistema ante escenarios adversos y aumentar su capacidad de adaptación frente a la incertidumbre.
A partir de las vulnerabilidades identificadas en el análisis de incertidumbre, se diseñaron dos intervenciones de escala local orientadas a fortalecer la permanencia y continuidad educativa. Debido a que no se cuenta con una evaluación previa de estas políticas en la comunidad, los porcentajes incorporados al modelo representan estimaciones de impacto consideradas pertinentes para analizar su comportamiento potencial. En todos los casos, las modificaciones se aplican directamente sobre los flujos del sistema y se calculan respecto a los valores del escenario base.
La primera política propone implementar un esquema de consejería socioemocional dirigido a atender problemas personales, familiares y sociales que pueden afectar la permanencia de los estudiantes. La intervención contempla sesiones individuales y grupales, la articulación de redes de apoyo dentro y fuera de la institución y el aprovechamiento de la infraestructura digital para ofrecer acompañamiento remoto cuando la atención presencial no sea posible.
Dentro del modelo, la política incrementa en 10 % el flujo de matriculación a preparatoria, debido a que el acompañamiento puede ayudar a los estudiantes a enfrentar obstáculos que dificultan la continuidad entre ambos niveles educativos. De igual manera, se supone una reducción de 10 % en la deserción de secundaria y de 15 % en la deserción de preparatoria. El efecto es mayor en este último nivel porque los jóvenes enfrentan presiones adicionales relacionadas con el trabajo, la migración, las responsabilidades familiares y la decisión de continuar estudiando.
Finalmente, el flujo de graduados aumenta 15 % respecto al escenario base. Este supuesto representa el efecto acumulado de una mayor permanencia y del acompañamiento durante la trayectoria educativa, el cual puede facilitar que los estudiantes concluyan el nivel medio superior. De esta manera, la política actúa tanto sobre la reducción del abandono como sobre la continuidad y finalización de los estudios.
# Política 1.
InitialConditions <- c(
numero.estudiantes.secundaria = 48, # Stock inicial de estudiantes de secundaria (estudiantes). Formato 911
numero.estudiantes.preparatoria = 18 # Stock inicial de estudiantes de preparatoria (estudiantes). Estimación a partir de la visita de campo
)
# Horizonte de simulación de 2026 a 2036 con intervalos de un año
times <- seq(2026, 2036, by = 1)
# Función del modelo con la Política 1 de consejería
model_p1 <- function(t, state, parameters) {
# Integra los stocks y parámetros para utilizarlos dentro del modelo
with(as.list(c(state, parameters)), {
# riesgo asociado con carencias y matrimonio adolescente
# Variable auxiliar: índice de riesgo acumulado de deserción (adimensional)
riesgo.desercion <- (
pobreza * (1 - becas) +
matrimonio.adolescente
) / 2 * ((t - 2026) / 10)
# las tasas de deserción no pueden superar 1
# Variable auxiliar: proporción anual de deserción en secundaria (0 a 1)
tasa.desercion.secundaria <- min(
1,
tasa.desercion.secundaria.inicial *
(1 + riesgo.desercion)
)
# Variable auxiliar: proporción anual de deserción en preparatoria (0 a 1)
tasa.desercion.preparatoria <- min(
1,
tasa.desercion.preparatoria.inicial *
(1 + riesgo.desercion)
)
# Variable auxiliar: población en edad de secundaria en cada año (personas)
poblacion.edad.secundaria.t <-
poblacion.edad.secundaria *
(1 + tasa.crecimiento.poblacion)^(t - 2026)
# La eficiencia terminal del estado es de 77.9% (INEGI).
# Sin embargo, la eficiencia terminal y la tasa anual de graduación
# no son exactamente lo mismo, por lo que se utiliza una permanencia
# promedio de tres años.
# Flujo de salida de secundaria por egreso (estudiantes/año)
egresados.secundaria <-
numero.estudiantes.secundaria / 3
# flujos
# Flujo de entrada a secundaria por matriculación (estudiantes/año)
matriculacion.secundaria <-
poblacion.edad.secundaria.t *
tasa.matriculacion
# Flujo de salida por deserción masculina en secundaria (estudiantes/año)
desercion.secundaria.masculina <-
numero.estudiantes.secundaria *
proporcion.masculina *
tasa.desercion.secundaria
# Flujo de salida por deserción femenina en secundaria (estudiantes/año)
desercion.secundaria.femenina <-
numero.estudiantes.secundaria *
(1 - proporcion.masculina) *
tasa.desercion.secundaria *
(1 + factor.cuidados.secundaria)
# Flujo de entrada a preparatoria con el efecto de la Política 1 (estudiantes/año)
matriculacion.preparatoria <-
egresados.secundaria *
tasa.transicion.preparatoria *
(
1 +
politica.consejeria *
aumento.transicion.preparatoria
)
# esto es de P1: aumento de la transición de secundaria a preparatoria
# Flujo de salida por deserción masculina en preparatoria (estudiantes/año)
desercion.preparatoria.masculina <-
numero.estudiantes.preparatoria *
proporcion.masculina *
tasa.desercion.preparatoria *
(1 + factor.migracion)
# Flujo de salida por deserción femenina en preparatoria (estudiantes/año)
desercion.preparatoria.femenina <-
numero.estudiantes.preparatoria *
(1 - proporcion.masculina) *
tasa.desercion.preparatoria *
(1 + factor.cuidados.preparatoria)
# Flujo total de deserción en secundaria con la Política 1 (estudiantes/año)
desercion.secundaria <-
(
desercion.secundaria.masculina +
desercion.secundaria.femenina
) *
(
1 -
politica.consejeria *
reduccion.desercion.secundaria
)
# esto es de P1: reducción de la deserción en secundaria
# Flujo total de deserción en preparatoria con la Política 1 (estudiantes/año)
desercion.preparatoria <-
(
desercion.preparatoria.masculina +
desercion.preparatoria.femenina
) *
(
1 -
politica.consejeria *
reduccion.desercion.preparatoria
)
# esto es de P1: reducción de la deserción en preparatoria
# Flujo de salida por graduación con el efecto de la Política 1 (estudiantes/año)
graduados <-
numero.estudiantes.preparatoria / 3 *
(
1 +
politica.consejeria *
aumento.graduados
)
# esto es de P1: aumento del flujo de graduados
# Flujo total de deserción del sistema educativo (estudiantes/año)
desercion.total <-
desercion.secundaria +
desercion.preparatoria
# indicador
# Indicador: proporción anual de estudiantes que desertan (0 a 1)
tasa.agregada.desercion <-
desercion.total /
(
numero.estudiantes.secundaria +
numero.estudiantes.preparatoria
)
# stocks
# Cambio anual del stock de estudiantes de secundaria (estudiantes/año)
dnumero.estudiantes.secundaria <-
matriculacion.secundaria -
desercion.secundaria -
egresados.secundaria
# Cambio anual del stock de estudiantes de preparatoria (estudiantes/año)
dnumero.estudiantes.preparatoria <-
matriculacion.preparatoria -
desercion.preparatoria -
graduados
# Devuelve los cambios de los stocks y las variables de seguimiento
list(
# Vector de cambios de los stocks (estudiantes/año)
c(
dnumero.estudiantes.secundaria,
dnumero.estudiantes.preparatoria
),
# Flujo de matriculación en secundaria (estudiantes/año)
matriculacion.secundaria =
matriculacion.secundaria,
# Flujo de matriculación en preparatoria (estudiantes/año)
matriculacion.preparatoria =
matriculacion.preparatoria,
# Flujo de deserción en secundaria (estudiantes/año)
desercion.secundaria =
desercion.secundaria,
# Flujo de deserción en preparatoria (estudiantes/año)
desercion.preparatoria =
desercion.preparatoria,
# Flujo de graduación de preparatoria (estudiantes/año)
graduados =
graduados,
# Flujo total de deserción (estudiantes/año)
desercion.total =
desercion.total,
# Tasa anual de deserción en secundaria (proporción)
tasa.desercion.secundaria =
tasa.desercion.secundaria,
# Tasa anual de deserción en preparatoria (proporción)
tasa.desercion.preparatoria =
tasa.desercion.preparatoria,
# Tasa agregada anual de deserción (proporción)
tasa.agregada.desercion =
tasa.agregada.desercion
)
})
}
# Parámetros, variables exógenas y efectos de la Política 1
parameters_p1 <- c(
tasa.crecimiento.poblacion = 0.023, # Parámetro exógeno: crecimiento anual de la población (proporción/año). Data México
poblacion.edad.secundaria = 75,
# Variable exógena: población inicial en edad de secundaria (personas)
# población 10-14 según el ITER 2020
tasa.matriculacion = 0.64 / 3,
# Parámetro: proporción anual de población que ingresa a secundaria
# Si hay 75 pero solo 48 matriculados, la tasa de matriculación es 48/75 = 0.64. pero lo dividimos entre 3 porque hay 48 matriculados en los tres años de secundaria
tasa.desercion.secundaria.inicial = 0.112,
# Parámetro: tasa inicial anual de deserción en secundaria (proporción)
tasa.desercion.preparatoria.inicial = 0.20,
# Parámetro: tasa inicial anual de deserción en preparatoria (proporción)
# Formato 911; tasa de deserción observada al inicio del periodo
proporcion.masculina = 0.454,
# Parámetro exógeno: proporción masculina de la población estudiantil (0 a 1)
# ITER distibución poblacional de Cerros blancos
factor.cuidados.secundaria = 0.77,
# Variable exógena: factor de incremento de la deserción femenina por cuidados (proporción)
# Se calculó la proporción de niñas de 12-14 años que contribuyen al trabajo de cuidados a partir de la base de datos de la ENUT 2024, tomando únicamente aquellas observaciones para localidades rurales.
tasa.transicion.preparatoria = 0.38,
# Parámetro: proporción de egresados de secundaria que ingresan a preparatoria
# de 48 pasa a 18 => 18/48 = 0.38
factor.migracion = 0.0532,
# Variable exógena: factor de incremento de la deserción masculina por migración (proporción)
# CONAPO
factor.cuidados.preparatoria = 0.78,
# Variable exógena: factor de incremento de la deserción femenina por cuidados (proporción)
# Se calculó la proporción de niñas de 15-18 años que contribuyen al trabajo de cuidados a partir de la base de datos de la ENUT 2024, tomando únicamente aquellas observaciones para localidades rurales.
pobreza = 0.651,
# Variable exógena: proporción de población en situación de pobreza (0 a 1)
# dato utilizado en el modelo ampliado; CONEVAL.
becas = min(1, 150 / 266),
# Variable exógena: proporción de cobertura de becas (0 a 1)
# cobertura de becas utilizada en el modelo ampliado
matrimonio.adolescente = 0.102,
# Variable exógena: proporción asociada al matrimonio adolescente (0 a 1)
# dato utilizado en el modelo ampliado; estimaciones del modelo de política
politica.consejeria = 1,
# Interruptor de la Política 1 (adimensional)
# esto es de P1: 0 = inactiva; 1 = activa
aumento.transicion.preparatoria = 0.10,
# Parámetro de política: incremento proporcional de la transición (0 a 1)
# esto es de P1: aumento de 10% en la transición a preparatoria
reduccion.desercion.secundaria = 0.10,
# Parámetro de política: reducción proporcional de la deserción (0 a 1)
# esto es de P1: reducción de 10% en la deserción secundaria
reduccion.desercion.preparatoria = 0.15,
# Parámetro de política: reducción proporcional de la deserción (0 a 1)
# esto es de P1: reducción de 15% en la deserción preparatoria
aumento.graduados = 0.15
# Parámetro de política: incremento proporcional de graduados (0 a 1)
# esto es de P1: aumento de 15% en graduados
)
out_p1 <- ode(
y = InitialConditions,
times = times,
func = model_p1,
parms = parameters_p1,
method = "rk4"
)
plot(out_p1, col = "blue")
La segunda política consiste en la implementación de juegos de rol educativos orientados a vincular la formación académica con las metas personales, las oportunidades laborales y las condiciones futuras de vida. Mediante simulaciones de situaciones reales, los estudiantes pueden explorar las consecuencias de distintas decisiones, construir un plan de vida y comprender con mayor claridad los beneficios de continuar sus estudios. La intervención también contempla la participación de profesores y familias, con el propósito de fortalecer las redes de apoyo que rodean al estudiante.
En el modelo, esta política incrementa en 15 % el flujo de matriculación a preparatoria, debido a que una mayor claridad sobre las oportunidades asociadas con la educación puede fortalecer la motivación para continuar estudiando después de concluir la secundaria. Asimismo, se incorpora una reducción de 5 % en la deserción de secundaria y de 10 % en la deserción de preparatoria. Estos efectos se mantienen en niveles moderados porque la intervención no atiende directamente todas las causas estructurales del abandono, como la pobreza, la migración o las responsabilidades de cuidados, sino que actúa principalmente sobre la motivación, el plan de vida y la valoración de la continuidad educativa.
La mayor reducción en preparatoria responde a que, en este nivel, los estudiantes enfrentan decisiones más inmediatas relacionadas con el ingreso al mercado laboral, la migración y la conclusión de su trayectoria escolar. De igual manera, el flujo de graduados aumenta 30 % respecto al escenario base, como representación de un mayor compromiso con la finalización de los estudios derivado de la construcción de expectativas y objetivos personales. Los porcentajes establecidos constituyen supuestos de política utilizados para la simulación y deben interpretarse como efectos potenciales sujetos a evaluación, no como impactos causales previamente comprobados.
# Política 2.
InitialConditions <- c(
# Stock inicial de estudiantes de secundaria (estudiantes)
numero.estudiantes.secundaria = 48, # Formato 911
# Stock inicial de estudiantes de preparatoria (estudiantes)
numero.estudiantes.preparatoria = 18 # Estimación a partir de la visita de campo
)
# Horizonte de simulación de 2026 a 2036 con intervalos de un año
times <- seq(2026, 2036, by = 1)
# Función del modelo con la Política 2 de juegos de rol
model_p2 <- function(t, state, parameters) {
# Integra los stocks y parámetros para utilizarlos dentro del modelo
with(as.list(c(state, parameters)), {
# riesgo asociado con carencias y matrimonio adolescente
# Variable auxiliar: índice acumulado de riesgo de deserción (adimensional)
riesgo.desercion <- (
pobreza * (1 - becas) +
matrimonio.adolescente
) / 2 * ((t - 2026) / 10)
# las tasas de deserción no pueden superar 1
# Variable auxiliar: proporción anual de deserción en secundaria (0 a 1)
tasa.desercion.secundaria <- min(
1,
tasa.desercion.secundaria.inicial *
(1 + riesgo.desercion)*(1-efecto.juegos.rol)#se agrega el efecto que tienen los juegos de rol en la reducción de la deserción
)
# Variable auxiliar: proporción anual de deserción en preparatoria (0 a 1)
tasa.desercion.preparatoria <- min(
1,
tasa.desercion.preparatoria.inicial *
(1 + riesgo.desercion)*(1-efecto.juegos.rol)#se agrega el efecto que tienen los juegos de rol en la reducción de la deserción
)
# Variable auxiliar: población en edad de secundaria en cada año (personas)
poblacion.edad.secundaria.t <- poblacion.edad.secundaria *
(1 + tasa.crecimiento.poblacion)^(t - 2026)
# La eficiencia terminal del estado es de 77.9% (INEGI).
# Sin embargo, la eficiencia terminal y la tasa anual de graduación
# no son exactamente lo mismo, por lo que se utiliza una permanencia
# promedio de tres años.
# Flujo de salida de secundaria por egreso (estudiantes/año)
egresados.secundaria <-
numero.estudiantes.secundaria / 3
# flujos
# Flujo de entrada a secundaria por matriculación (estudiantes/año)
matriculacion.secundaria <-
poblacion.edad.secundaria.t *
tasa.matriculacion
# Flujo de salida por deserción masculina en secundaria (estudiantes/año)
desercion.secundaria.masculina <-
numero.estudiantes.secundaria *
proporcion.masculina *
tasa.desercion.secundaria
# Flujo de salida por deserción femenina en secundaria (estudiantes/año)
desercion.secundaria.femenina <-
numero.estudiantes.secundaria *
(1 - proporcion.masculina) *
tasa.desercion.secundaria *
(1 + factor.cuidados.secundaria)
# Flujo de entrada a preparatoria con el efecto de la Política 2 (estudiantes/año)
matriculacion.preparatoria <-
egresados.secundaria *
tasa.transicion.preparatoria *
(
1 +
politica.juegos.rol *
aumento.transicion.preparatoria
)
# esto es de P2: aumento de 15% en la transición a preparatoria
# Flujo de salida por deserción masculina en preparatoria (estudiantes/año)
desercion.preparatoria.masculina <-
numero.estudiantes.preparatoria *
proporcion.masculina *
tasa.desercion.preparatoria *
(1 + factor.migracion)
# Flujo de salida por deserción femenina en preparatoria (estudiantes/año)
desercion.preparatoria.femenina <-
numero.estudiantes.preparatoria *
(1 - proporcion.masculina) *
tasa.desercion.preparatoria *
(1 + factor.cuidados.preparatoria)
# Flujo total de deserción en secundaria (estudiantes/año)
desercion.secundaria <-
desercion.secundaria.masculina +
desercion.secundaria.femenina
# Flujo total de deserción en preparatoria (estudiantes/año)
desercion.preparatoria <-
desercion.preparatoria.masculina +
desercion.preparatoria.femenina
# Flujo de graduación con el efecto de la Política 2 (estudiantes/año)
graduados <-
numero.estudiantes.preparatoria / 3 *
(
1 +
politica.juegos.rol *
aumento.graduados
)
# esto es de P2: aumento de 30% en el flujo de graduados
# Flujo total de deserción del sistema educativo (estudiantes/año)
desercion.total <-
desercion.secundaria +
desercion.preparatoria
# indicador
# Indicador: proporción anual de estudiantes que desertan (0 a 1)
tasa.agregada.desercion <- desercion.total /
(
numero.estudiantes.secundaria +
numero.estudiantes.preparatoria
)
# stocks
# Cambio anual del stock de estudiantes de secundaria (estudiantes/año)
dnumero.estudiantes.secundaria <-
matriculacion.secundaria -
desercion.secundaria -
egresados.secundaria
# Cambio anual del stock de estudiantes de preparatoria (estudiantes/año)
dnumero.estudiantes.preparatoria <-
matriculacion.preparatoria -
desercion.preparatoria -
graduados
# Devuelve los cambios de los stocks y las variables de seguimiento
list(
# Vector de cambios de los stocks (estudiantes/año)
c(
dnumero.estudiantes.secundaria,
dnumero.estudiantes.preparatoria
),
# Flujo de matriculación en secundaria (estudiantes/año)
matriculacion.secundaria =
matriculacion.secundaria,
# Flujo de matriculación en preparatoria (estudiantes/año)
matriculacion.preparatoria =
matriculacion.preparatoria,
# Flujo de deserción en secundaria (estudiantes/año)
desercion.secundaria =
desercion.secundaria,
# Flujo de deserción en preparatoria (estudiantes/año)
desercion.preparatoria =
desercion.preparatoria,
# Flujo de graduación de preparatoria (estudiantes/año)
graduados =
graduados,
# Flujo total de deserción (estudiantes/año)
desercion.total =
desercion.total,
# Tasa anual de deserción en secundaria (proporción)
tasa.desercion.secundaria =
tasa.desercion.secundaria,
# Tasa anual de deserción en preparatoria (proporción)
tasa.desercion.preparatoria =
tasa.desercion.preparatoria,
# Tasa agregada anual de deserción (proporción)
tasa.agregada.desercion =
tasa.agregada.desercion
)
})
}
# Parámetros, variables exógenas y efectos de la Política 2
parameters_p2 <- c(
tasa.crecimiento.poblacion = 0.023, # Parámetro exógeno: crecimiento anual de la población (proporción/año). Data México
poblacion.edad.secundaria = 75,
# Variable exógena: población inicial en edad de secundaria (personas)
# población de 10 a 14 años según ITER 2020
tasa.matriculacion = 0.64 / 3,
# Parámetro: proporción anual de población que ingresa a secundaria
# proporción matriculada dividida entre los tres años de secundaria
tasa.desercion.secundaria.inicial = 0.112,
# Parámetro: tasa inicial anual de deserción en secundaria (proporción)
# SEP
tasa.desercion.preparatoria.inicial = 0.20,
# Parámetro: tasa inicial anual de deserción en preparatoria (proporción)
# Formato 911
proporcion.masculina = 0.454,
# Parámetro exógeno: proporción masculina de la población estudiantil (0 a 1)
# distribución poblacional de Cerros Blancos según ITER
factor.cuidados.secundaria = 0.77,
# Variable exógena: factor de incremento de la deserción femenina (proporción)
# proporción estimada a partir de la ENUT 2024
tasa.transicion.preparatoria = 0.38,
# Parámetro: proporción de egresados que ingresan a preparatoria (0 a 1)
# 18 estudiantes de preparatoria entre 48 de secundaria
factor.migracion = 0.0532,
# Variable exógena: factor de incremento de la deserción masculina (proporción)
# CONAPO
factor.cuidados.preparatoria = 0.78,
# Variable exógena: factor de incremento de la deserción femenina (proporción)
# proporción estimada a partir de la ENUT 2024
pobreza = 0.651,
# Variable exógena: proporción de población en situación de pobreza (0 a 1)
# CONEVAL
becas = min(1, 150 / 266),
# Variable exógena: proporción de cobertura de becas (0 a 1)
# cobertura estimada de becas
matrimonio.adolescente = 0.102,
# Variable exógena: proporción asociada al matrimonio adolescente (0 a 1)
# estimación utilizada en el modelo
politica.juegos.rol = 1,
# Interruptor de la Política 2 (adimensional)
# esto es de P2: 0 = inactiva; 1 = activa
aumento.transicion.preparatoria = 0.15,
# Parámetro de política: aumento proporcional de la transición (0 a 1)
# esto es de P2: aumento de 15% en la transición a preparatoria
aumento.graduados = 0.30,
# Parámetro de política: aumento proporcional de graduados (0 a 1)
# esto es de P2: aumento de 30% en graduados
efecto.juegos.rol=0.05
#Parámetro del efecto de los juegos de rol que forman parte de la intervención
#estimación a partir de revisión de literatura
)
out_p2 <- ode(
y = InitialConditions,
times = times,
func = model_p2,
parms = parameters_p2,
method = "rk4"
)
plot(out_p2, col = "blue")
El escenario combinado incorpora de manera simultánea los efectos de la consejería socioemocional y de la educación interactiva para el futuro. Su propósito es evaluar si la atención conjunta de los obstáculos personales y familiares, junto con el fortalecimiento de la motivación y del plan de vida, produce mejores resultados que la implementación aislada de cada intervención.
El flujo de matriculación a preparatoria aumenta 25 % respecto al modelo base, resultado de integrar el incremento de 10 % correspondiente a la Política 1 y el de 15 % de la Política 2. Este efecto representa la complementariedad entre el acompañamiento socioemocional, que reduce barreras para la continuidad escolar, y la educación interactiva, que fortalece las expectativas educativas y la valoración de los beneficios de continuar estudiando.
La deserción en secundaria disminuye 15 %, al combinar la reducción de 10 % atribuida a la consejería socioemocional con el 5 % correspondiente a la educación interactiva. De manera similar, la deserción en preparatoria se reduce 25 %, integrando el efecto de 15 % de la primera política y el de 10 % de la segunda. La mayor disminución en este nivel refleja la atención simultánea de las presiones emocionales, familiares y sociales, así como de las decisiones relacionadas con el trabajo, la migración y la conclusión de los estudios.
Por su parte, el flujo de graduados aumenta 45 % respecto al escenario base, resultado de sumar el incremento de 15 % de la Política 1 y el de 30 % de la Política 2. Para conservar una interpretación clara y evitar efectos compuestos adicionales, los impactos de ambas intervenciones se agregan de forma lineal y se calculan directamente sobre los valores originales del modelo base. Estos porcentajes constituyen supuestos de simulación orientados a explorar el desempeño potencial de una estrategia integral, por lo que no deben interpretarse como impactos causales comprobados.
# Política 3
InitialConditions <- c(
numero.estudiantes.secundaria = 48, # Stock inicial de estudiantes de secundaria (estudiantes). Formato 911
numero.estudiantes.preparatoria = 18 # Stock inicial de estudiantes de preparatoria (estudiantes). Estimación a partir de la visita de campo
)
# Horizonte de simulación de 2026 a 2036 con intervalos de un año
times <- seq(2026, 2036, by = 1)
# Función del modelo que combina las políticas P1 y P2
model_p3 <- function(t, state, parameters) {
# Integra los stocks y parámetros para utilizarlos dentro del modelo
with(as.list(c(state, parameters)), {
# riesgo asociado con carencias y matrimonio adolescente
# Variable auxiliar: índice acumulado de riesgo de deserción (adimensional)
riesgo.desercion <- (
pobreza * (1 - becas) +
matrimonio.adolescente
) / 2 * ((t - 2026) / 10)
# las tasas de deserción no pueden superar 1
# Variable auxiliar: proporción anual de deserción en secundaria (0 a 1)
tasa.desercion.secundaria <- min(
1,
tasa.desercion.secundaria.inicial *
(1 + riesgo.desercion)
)
# Variable auxiliar: proporción anual de deserción en preparatoria (0 a 1)
tasa.desercion.preparatoria <- min(
1,
tasa.desercion.preparatoria.inicial *
(1 + riesgo.desercion)
)
# Variable auxiliar: población en edad de secundaria en cada año (personas)
poblacion.edad.secundaria.t <-
poblacion.edad.secundaria *
(1 + tasa.crecimiento.poblacion)^(t - 2026)
# La eficiencia terminal del estado es de 77.9% (INEGI).
# Sin embargo, la eficiencia terminal y la tasa anual de graduación
# no son exactamente lo mismo, por lo que se utiliza una permanencia
# promedio de tres años.
# Flujo de salida de secundaria por egreso (estudiantes/año)
egresados.secundaria <-
numero.estudiantes.secundaria / 3
# flujos
# Flujo de entrada a secundaria por matriculación (estudiantes/año)
matriculacion.secundaria <-
poblacion.edad.secundaria.t *
tasa.matriculacion
# Flujo de salida por deserción masculina en secundaria (estudiantes/año)
desercion.secundaria.masculina <-
numero.estudiantes.secundaria *
proporcion.masculina *
tasa.desercion.secundaria
# Flujo de salida por deserción femenina en secundaria (estudiantes/año)
desercion.secundaria.femenina <-
numero.estudiantes.secundaria *
(1 - proporcion.masculina) *
tasa.desercion.secundaria *
(1 + factor.cuidados.secundaria)
# Flujo de entrada a preparatoria con los efectos de P1 y P2
# (estudiantes/año)
matriculacion.preparatoria <-
egresados.secundaria *
tasa.transicion.preparatoria *
(
1 +
politica.consejeria *
aumento.transicion.preparatoria.p1 +
politica.juegos.rol *
aumento.transicion.preparatoria.p2
)
# esto es de P1: aumento de 10% en la transición a preparatoria
# esto es de P2: aumento de 15% en la transición a preparatoria
# efecto combinado: aumento de 25% respecto al escenario base
# Flujo de salida por deserción masculina en preparatoria
# (estudiantes/año)
desercion.preparatoria.masculina <-
numero.estudiantes.preparatoria *
proporcion.masculina *
tasa.desercion.preparatoria *
(1 + factor.migracion)
# Flujo de salida por deserción femenina en preparatoria
# (estudiantes/año)
desercion.preparatoria.femenina <-
numero.estudiantes.preparatoria *
(1 - proporcion.masculina) *
tasa.desercion.preparatoria *
(1 + factor.cuidados.preparatoria)
# Flujo total de deserción en secundaria con los efectos de P1 y P2
# (estudiantes/año)
desercion.secundaria <-
(
desercion.secundaria.masculina +
desercion.secundaria.femenina
) *
(
1 -
politica.consejeria *
reduccion.desercion.secundaria.p1 -
politica.juegos.rol *
reduccion.desercion.secundaria.p2*efecto.juegos.rol
)
# esto es de P1: reducción de 10% en la deserción secundaria
# esto es de P2: reducción de 5% en la deserción secundaria
# efecto combinado: reducción de 15% respecto al escenario base
# Flujo total de deserción en preparatoria con los efectos de P1 y P2
# (estudiantes/año)
desercion.preparatoria <-
(
desercion.preparatoria.masculina +
desercion.preparatoria.femenina
) *
(
1 -
politica.consejeria *
reduccion.desercion.preparatoria.p1 -
politica.juegos.rol *
reduccion.desercion.preparatoria.p2*efecto.juegos.rol
)
# esto es de P1: reducción de 15% en la deserción preparatoria
# esto es de P2: reducción de 10% en la deserción preparatoria
# efecto combinado: reducción de 25% respecto al escenario base
# Flujo de graduación con los efectos de P1 y P2 (estudiantes/año)
graduados <-
numero.estudiantes.preparatoria / 3 *
(
1 +
politica.consejeria *
aumento.graduados.p1 +
politica.juegos.rol *
aumento.graduados.p2
)
# esto es de P1: aumento de 15% en graduados
# esto es de P2: aumento de 30% en graduados
# efecto combinado: aumento de 45% respecto al escenario base
# Flujo total de deserción del sistema educativo (estudiantes/año)
desercion.total <-
desercion.secundaria +
desercion.preparatoria
# indicador
# Indicador: proporción anual de estudiantes que desertan (0 a 1)
tasa.agregada.desercion <-
desercion.total /
(
numero.estudiantes.secundaria +
numero.estudiantes.preparatoria
)
# stocks
# Cambio anual del stock de estudiantes de secundaria (estudiantes/año)
dnumero.estudiantes.secundaria <-
matriculacion.secundaria -
desercion.secundaria -
egresados.secundaria
# Cambio anual del stock de estudiantes de preparatoria (estudiantes/año)
dnumero.estudiantes.preparatoria <-
matriculacion.preparatoria -
desercion.preparatoria -
graduados
# Devuelve los cambios de los stocks y las variables de seguimiento
list(
# Vector de cambios de los stocks (estudiantes/año)
c(
dnumero.estudiantes.secundaria,
dnumero.estudiantes.preparatoria
),
# Flujo de matriculación en secundaria (estudiantes/año)
matriculacion.secundaria =
matriculacion.secundaria,
# Flujo de matriculación en preparatoria (estudiantes/año)
matriculacion.preparatoria =
matriculacion.preparatoria,
# Flujo de deserción en secundaria (estudiantes/año)
desercion.secundaria =
desercion.secundaria,
# Flujo de deserción en preparatoria (estudiantes/año)
desercion.preparatoria =
desercion.preparatoria,
# Flujo de graduación de preparatoria (estudiantes/año)
graduados =
graduados,
# Flujo total de deserción (estudiantes/año)
desercion.total =
desercion.total,
# Tasa anual de deserción en secundaria antes de las políticas
tasa.desercion.secundaria =
tasa.desercion.secundaria,
# Tasa anual de deserción en preparatoria antes de las políticas
tasa.desercion.preparatoria =
tasa.desercion.preparatoria,
# Tasa agregada anual de deserción después de las políticas
tasa.agregada.desercion =
tasa.agregada.desercion
)
})
}
# Parámetros, variables exógenas y efectos combinados de P1 y P2
parameters_p3 <- c(
tasa.crecimiento.poblacion = 0.023,
# Parámetro exógeno: crecimiento anual de la población
# (proporción/año). Data México
poblacion.edad.secundaria = 75,
# Variable exógena: población inicial en edad de secundaria (personas)
# población de 10 a 14 años según ITER 2020
tasa.matriculacion = 0.64 / 3,
# Parámetro: proporción anual de población que ingresa a secundaria
# proporción matriculada dividida entre los tres años de secundaria
tasa.desercion.secundaria.inicial = 0.112,
# Parámetro: tasa inicial anual de deserción en secundaria (proporción)
# SEP
tasa.desercion.preparatoria.inicial = 0.20,
# Parámetro: tasa inicial anual de deserción en preparatoria (proporción)
# Formato 911
proporcion.masculina = 0.454,
# Parámetro exógeno: proporción masculina de la población estudiantil
# distribución poblacional de Cerros Blancos según ITER
factor.cuidados.secundaria = 0.77,
# Variable exógena: factor de incremento de la deserción femenina
# proporción estimada a partir de la ENUT 2024
tasa.transicion.preparatoria = 0.38,
# Parámetro: proporción de egresados que ingresan a preparatoria
# 18 estudiantes de preparatoria entre 48 de secundaria
factor.migracion = 0.0532,
# Variable exógena: factor de incremento de la deserción masculina
# CONAPO
factor.cuidados.preparatoria = 0.78,
# Variable exógena: factor de incremento de la deserción femenina
# proporción estimada a partir de la ENUT 2024
pobreza = 0.651,
# Variable exógena: proporción de población en situación de pobreza
# CONEVAL
becas = min(1, 150 / 266),
# Variable exógena: proporción de cobertura de becas
# cobertura estimada de becas
matrimonio.adolescente = 0.102,
# Variable exógena: proporción asociada al matrimonio adolescente
# estimación utilizada en el modelo
politica.consejeria = 1,
# Interruptor de la Política 1 (adimensional)
# esto es de P1: 0 = inactiva; 1 = activa
politica.juegos.rol = 1,
# Interruptor de la Política 2 (adimensional)
# esto es de P2: 0 = inactiva; 1 = activa
efecto.juegos.rol=0.05,
#Parámetro del efecto de los juegos de rol que forman parte de la intervención
#estimación a partir de revisión de literatura
aumento.transicion.preparatoria.p1 = 0.10,
# Parámetro de P1: aumento proporcional de la transición
# esto es de P1: aumento de 10% en la transición a preparatoria
aumento.transicion.preparatoria.p2 = 0.15,
# Parámetro de P2: aumento proporcional de la transición
# esto es de P2: aumento de 15% en la transición a preparatoria
reduccion.desercion.secundaria.p1 = 0.10,
# Parámetro de P1: reducción proporcional de la deserción secundaria
# esto es de P1: reducción de 10% en la deserción secundaria
reduccion.desercion.secundaria.p2 = 0.05,
# Parámetro de P2: reducción proporcional de la deserción secundaria
# esto es de P2: reducción de 5% en la deserción secundaria
reduccion.desercion.preparatoria.p1 = 0.15,
# Parámetro de P1: reducción proporcional de la deserción preparatoria
# esto es de P1: reducción de 15% en la deserción preparatoria
reduccion.desercion.preparatoria.p2 = 0.10,
# Parámetro de P2: reducción proporcional de la deserción preparatoria
# esto es de P2: reducción de 10% en la deserción preparatoria
aumento.graduados.p1 = 0.15,
# Parámetro de P1: aumento proporcional de graduados
# esto es de P1: aumento de 15% en graduados
aumento.graduados.p2 = 0.30
# Parámetro de P2: aumento proporcional de graduados
# esto es de P2: aumento de 30% en graduados
)
out_p3 <- ode(
y = InitialConditions,
times = times,
func = model_p3,
parms = parameters_p3,
method = "rk4"
)
plot(out_p3, col = "blue")
Una vez incorporadas las intervenciones al modelo, se realizaron simulaciones comparativas entre el escenario base, la consejería socioemocional, la educación interactiva para el futuro y el escenario combinado. Las gráficas multilínea permiten observar cómo cada alternativa modifica la evolución de los stocks y flujos principales del sistema, así como determinar si la aplicación conjunta de las políticas genera resultados superiores a su implementación individual.
resultados_base <- as.data.frame(out_base) |>
mutate(escenario = "Base")
resultados_p1 <- as.data.frame(out_p1) |>
mutate(escenario = "P1: Consejería")
resultados_p2 <- as.data.frame(out_p2) |>
mutate(escenario = "P2: Juegos de rol")
resultados_p3 <- as.data.frame(out_p3) |>
mutate(escenario = "P3: Políticas integradas")
resultados_comparados <- bind_rows(
resultados_base,
resultados_p1,
resultados_p2,
resultados_p3
) |>
mutate(
escenario = factor(
escenario,
levels = c(
"Base",
"P1: Consejería",
"P2: Juegos de rol",
"P3: Políticas integradas"
)
),
tasa.desercion.porcentaje =
tasa.agregada.desercion * 100
)
resultados_finales <- resultados_comparados |>
group_by(escenario) |>
slice_max(
order_by = time,
n = 1,
with_ties = FALSE
) |>
ungroup() |>
mutate(
escenario.corto = case_when(
escenario == "Base" ~ "Base",
escenario == "P1: Consejería" ~ "P1",
escenario == "P2: Juegos de rol" ~ "P2",
escenario == "P3: Políticas integradas" ~ "P3"
),
etiqueta.tasa = paste0(
escenario.corto,
": ",
number(
tasa.desercion.porcentaje,
accuracy = 0.1
),
"%"
),
etiqueta.desercion = paste0(
escenario.corto,
": ",
number(
desercion.total,
accuracy = 0.1
)
),
etiqueta.secundaria = paste0(
escenario.corto,
": ",
number(
numero.estudiantes.secundaria,
accuracy = 0.1
)
),
etiqueta.preparatoria = paste0(
escenario.corto,
": ",
number(
numero.estudiantes.preparatoria,
accuracy = 0.1
)
)
)
colores_escenarios <- c(
"Base" = "#333333",
"P1: Consejería" = "#0072B2",
"P2: Juegos de rol" = "#D55E00",
"P3: Políticas integradas" = "#009E73"
)
tipos_linea <- c(
"Base" = "solid",
"P1: Consejería" = "dashed",
"P2: Juegos de rol" = "dotted",
"P3: Políticas integradas" = "dotdash"
)
formas_puntos <- c(
"Base" = 21,
"P1: Consejería" = 24,
"P2: Juegos de rol" = 22,
"P3: Políticas integradas" = 23
)
tema_articulo <- theme_bw(base_size = 12) +
theme(
plot.title = element_text(
face = "bold",
size = 13
),
plot.subtitle = element_text(
size = 10,
colour = "grey30",
margin = margin(b = 8)
),
axis.title = element_text(
face = "bold",
size = 11
),
axis.text = element_text(
colour = "black",
size = 10
),
legend.position = "bottom",
legend.title = element_blank(),
legend.text = element_text(size = 9),
legend.key.width = grid::unit(1.7, "cm"),
panel.grid.minor = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_line(
colour = "grey88",
linewidth = 0.35
),
panel.border = element_rect(
colour = "black",
fill = NA,
linewidth = 0.6
),
plot.margin = margin(10, 20, 10, 10)
)
En la Gráfica 1 se observa que la tasa agregada de deserción aumenta gradualmente en los cuatro escenarios entre 2026 y 2036. El escenario base presenta los valores más altos durante todo el periodo: parte de aproximadamente 19.5% y alcanza 21.4% al final de la simulación. Esta trayectoria indica que, sin intervención, las condiciones estructurales del sistema continúan elevando el riesgo de abandono escolar. Aunque las políticas reducen el nivel de la tasa, ninguna logra revertir completamente su tendencia ascendente.
La Política 2 muestra ahora una mejora visible respecto al escenario base. Inicia alrededor de 18.5% y termina en 20.4%, lo que representa una reducción cercana a un punto porcentual en 2036. Esto sugiere que el fortalecimiento de la motivación, el plan de vida y las redes de apoyo también contribuye a contener el abandono, aunque su efecto es menor que el de la consejería socioemocional. La Política 1 alcanza aproximadamente 19.2% al final del periodo, 2.2 puntos porcentuales por debajo del escenario base, confirmando que la atención directa de los obstáculos personales y familiares tiene una influencia importante sobre la permanencia escolar.
La política integral registra la tasa más baja durante prácticamente toda la simulación y finaliza en aproximadamente 19.1%. Su diferencia frente a la consejería es reducida —cerca de 0.1 puntos porcentuales en 2036—, por lo que ambas presentan un desempeño muy similar en este indicador. No obstante, la política combinada conserva la reducción lograda por el acompañamiento socioemocional y añade los beneficios de la educación interactiva sobre otras etapas de la trayectoria educativa. Por ello, aun cuando su ventaja en la tasa agregada es moderada, continúa siendo la alternativa de mayor alcance al intervenir de manera simultánea sobre el abandono, la continuidad y la conclusión de los estudios.
grafica_tasa_desercion <- ggplot(
resultados_comparados,
aes(
x = time,
y = tasa.desercion.porcentaje,
color = escenario,
linetype = escenario,
shape = escenario
)
) +
geom_line(linewidth = 1.25) +
geom_point(
size = 3,
stroke = 1,
fill = "white"
) +
geom_label_repel(
data = resultados_finales,
aes(
x = time,
y = tasa.desercion.porcentaje,
label = etiqueta.tasa,
color = escenario
),
inherit.aes = FALSE,
nudge_x = 0.55,
direction = "y",
hjust = 0,
size = 3.2,
fill = "white",
label.size = 0.2,
segment.color = "grey60",
min.segment.length = 0,
max.overlaps = Inf,
show.legend = FALSE,
seed = 123
) +
scale_color_manual(values = colores_escenarios) +
scale_linetype_manual(values = tipos_linea) +
scale_shape_manual(values = formas_puntos) +
scale_x_continuous(
breaks = seq(2026, 2036, by = 2),
limits = c(2026, 2039)
) +
scale_y_continuous(
labels = label_number(
accuracy = 0.1,
suffix = "%"
),
expand = expansion(mult = c(0.05, 0.12))
) +
coord_cartesian(clip = "off") +
labs(
title = "Tasa agregada de deserción",
subtitle = "Comparación de los cuatro escenarios",
x = "Año",
y = "Tasa de deserción"
) +
tema_articulo
grafica_tasa_desercion
Nota. Elaboración propia.
En la Gráfica 2 se observa que la deserción total anual disminuye con rapidez durante los primeros años, alcanza su nivel mínimo alrededor de 2030-2031 y posteriormente comienza a crecer de forma moderada. En el escenario base, el flujo pasa de aproximadamente 12.9 estudiantes en 2026 a cerca de 8.6 en su punto más bajo, para terminar en 9.5 estudiantes en 2036. Esta reducción inicial debe interpretarse junto con la evolución de los stocks escolares, pues una menor cantidad absoluta de desertores también puede deberse a que hay menos estudiantes inscritos y no necesariamente a una disminución proporcional del riesgo de abandono.
A diferencia de la versión anterior, la Política 2 muestra ahora una mejora visible frente al escenario base. Inicia con alrededor de 12.2 estudiantes desertores, alcanza un mínimo cercano a 8.3 y concluye en 9.2 estudiantes por año. Su efecto sigue siendo más moderado que el de la consejería socioemocional, pero indica que el fortalecimiento del plan de vida, la motivación y las redes de apoyo también contribuye a contener el abandono. La Política 1 presenta una reducción mayor: parte de aproximadamente 11.3 estudiantes, desciende a poco más de 8 y finaliza en 8.9.
La política integral mantiene los niveles más bajos durante casi todo el horizonte, con un mínimo cercano a 8 estudiantes alrededor de 2031. En 2036 termina también en aproximadamente 8.9 estudiantes desertores por año, prácticamente al mismo nivel que la consejería, aunque conserva una ligera ventaja durante buena parte de la simulación. Por tanto, en este indicador ambas políticas muestran un desempeño final muy similar; sin embargo, la intervención integral continúa siendo la alternativa de mayor alcance porque combina la reducción del abandono con efectos adicionales sobre la transición y la conclusión de los estudios.
grafica_desercion_total <- ggplot(
resultados_comparados,
aes(
x = time,
y = desercion.total,
color = escenario,
linetype = escenario,
shape = escenario
)
) +
geom_line(linewidth = 1.25) +
geom_point(
size = 3,
stroke = 1,
fill = "white"
) +
geom_label_repel(
data = resultados_finales,
aes(
x = time,
y = desercion.total,
label = etiqueta.desercion,
color = escenario
),
inherit.aes = FALSE,
nudge_x = 0.55,
direction = "y",
hjust = 0,
size = 3.2,
fill = "white",
label.size = 0.2,
segment.color = "grey60",
min.segment.length = 0,
max.overlaps = Inf,
show.legend = FALSE,
seed = 123
) +
scale_color_manual(values = colores_escenarios) +
scale_linetype_manual(values = tipos_linea) +
scale_shape_manual(values = formas_puntos) +
scale_x_continuous(
breaks = seq(2026, 2036, by = 2),
limits = c(2026, 2039)
) +
scale_y_continuous(
labels = label_number(accuracy = 0.1),
expand = expansion(mult = c(0.05, 0.12))
) +
coord_cartesian(clip = "off") +
labs(
title = "Deserción total anual",
subtitle = "Suma de la deserción en secundaria y preparatoria",
x = "Año",
y = "Estudiantes por año"
) +
tema_articulo
grafica_desercion_total
Nota. Elaboración propia.
En la Gráfica 3 se observa una reducción importante del stock de estudiantes de secundaria durante los primeros años. Los cuatro escenarios parten de 48 alumnos en 2026 y alcanzan su nivel más bajo alrededor de 2031, debido a que inicialmente las salidas por deserción y egreso superan a la matriculación. Después de ese punto, las trayectorias comienzan a recuperarse de manera gradual, aunque ninguna logra regresar al nivel inicial al cierre de la simulación.
El escenario base presenta la mayor pérdida y termina con aproximadamente 37.3 estudiantes en 2036. La Política 2 muestra ahora una mejora moderada y alcanza cerca de 37.9 alumnos, lo que indica que sus efectos sobre la motivación, el plan de vida y las redes de apoyo también contribuyen a reducir la salida de estudiantes, aunque en menor medida que la consejería socioemocional. La Política 1 conserva alrededor de 38.6 estudiantes, es decir, 1.3 más que el escenario base.
La política integral obtiene el resultado más favorable, con aproximadamente 38.7 estudiantes al final del periodo. Su diferencia respecto a la consejería es pequeña —cerca de 0.1 estudiantes— y ambas trayectorias prácticamente coinciden durante buena parte de la simulación. Por ello, en secundaria el principal efecto sobre la permanencia proviene de la consejería; sin embargo, la alternativa integral mantiene esa mejora y agrega los beneficios de la Política 2 sobre las etapas posteriores de la trayectoria educativa.
grafica_estudiantes_secundaria <- ggplot(
resultados_comparados,
aes(
x = time,
y = numero.estudiantes.secundaria,
color = escenario,
linetype = escenario,
shape = escenario
)
) +
geom_line(linewidth = 1.25) +
geom_point(
size = 3,
stroke = 1,
fill = "white"
) +
geom_label_repel(
data = resultados_finales,
aes(
x = time,
y = numero.estudiantes.secundaria,
label = etiqueta.secundaria,
color = escenario
),
inherit.aes = FALSE,
nudge_x = 0.55,
direction = "y",
hjust = 0,
size = 3.2,
fill = "white",
label.size = 0.2,
segment.color = "grey60",
min.segment.length = 0,
max.overlaps = Inf,
show.legend = FALSE,
seed = 123
) +
scale_color_manual(values = colores_escenarios) +
scale_linetype_manual(values = tipos_linea) +
scale_shape_manual(values = formas_puntos) +
scale_x_continuous(
breaks = seq(2026, 2036, by = 2),
limits = c(2026, 2039)
) +
scale_y_continuous(
labels = label_number(accuracy = 0.1),
expand = expansion(mult = c(0.05, 0.12))
) +
coord_cartesian(clip = "off") +
labs(
title = "Estudiantes en secundaria",
subtitle = "Evolución del stock de estudiantes",
x = "Año",
y = "Estudiantes"
) +
tema_articulo
grafica_estudiantes_secundaria
Nota. Elaboración propia.
En la Gráfica 4 se observa una disminución pronunciada del número de estudiantes en preparatoria durante los primeros años. Los cuatro escenarios parten de 18 alumnos en 2026 y descienden rápidamente hasta aproximarse a una estabilización entre 2032 y 2034. En el escenario base, el stock termina en alrededor de 6.9 estudiantes, lo que muestra que las entradas provenientes de secundaria no logran compensar completamente las salidas por deserción y graduación.
Las tres políticas mejoran, en distinta magnitud, el resultado del escenario base. La Política 2 alcanza aproximadamente 7.2 estudiantes en 2036, por lo que su efecto sobre la transición y la motivación permite conservar una matrícula ligeramente mayor. La consejería socioemocional presenta el stock más alto, con cerca de 7.9 estudiantes, debido a que su reducción directa de la deserción favorece que más jóvenes permanezcan inscritos en preparatoria.
La política integral concluye con aproximadamente 7.8 estudiantes, apenas por debajo de la consejería. Esta diferencia no implica necesariamente un desempeño inferior, ya que el stock contabiliza únicamente a quienes continúan inscritos y disminuye tanto por abandono como por graduación. Al combinar una menor deserción con mayores niveles de transición y conclusión escolar, la política integral puede generar más salidas exitosas del sistema. Por ello, la consejería resulta ligeramente superior para conservar estudiantes dentro de preparatoria, mientras que la estrategia combinada debe valorarse junto con el número acumulado de graduados y los demás indicadores de la trayectoria educativa.
grafica_estudiantes_preparatoria <- ggplot(
resultados_comparados,
aes(
x = time,
y = numero.estudiantes.preparatoria,
color = escenario,
linetype = escenario,
shape = escenario
)
) +
geom_line(linewidth = 1.25) +
geom_point(
size = 3,
stroke = 1,
fill = "white"
) +
geom_label_repel(
data = resultados_finales,
aes(
x = time,
y = numero.estudiantes.preparatoria,
label = etiqueta.preparatoria,
color = escenario
),
inherit.aes = FALSE,
nudge_x = 0.55,
direction = "y",
hjust = 0,
size = 3.2,
fill = "white",
label.size = 0.2,
segment.color = "grey60",
min.segment.length = 0,
max.overlaps = Inf,
show.legend = FALSE,
seed = 123
) +
scale_color_manual(values = colores_escenarios) +
scale_linetype_manual(values = tipos_linea) +
scale_shape_manual(values = formas_puntos) +
scale_x_continuous(
breaks = seq(2026, 2036, by = 2),
limits = c(2026, 2039)
) +
scale_y_continuous(
labels = label_number(accuracy = 0.1),
expand = expansion(mult = c(0.05, 0.12))
) +
coord_cartesian(clip = "off") +
labs(
title = "Estudiantes en preparatoria",
subtitle = "Evolución del stock de estudiantes",
x = "Año",
y = "Estudiantes"
) +
tema_articulo
grafica_estudiantes_preparatoria
Nota. Elaboración propia.
En la Gráfica 5 se observa un crecimiento continuo del número acumulado de graduados en los cuatro escenarios. Sin embargo, la separación entre las trayectorias aumenta conforme avanza la simulación, lo que indica que los efectos de las intervenciones se acumulan a lo largo del tiempo. El escenario base presenta el crecimiento más lento: pasa de aproximadamente 6 graduados en 2026 a cerca de 35 en 2036, reflejando las limitaciones del sistema para sostener la transición, la permanencia y la conclusión de la preparatoria sin acciones adicionales.
Las políticas individuales mejoran este resultado mediante mecanismos diferentes. La consejería socioemocional alcanza alrededor de 43 graduados acumulados en 2036, al reducir los obstáculos que pueden llevar al abandono y favorecer la permanencia escolar. La educación interactiva para el futuro obtiene un resultado ligeramente mayor, cercano a 45 graduados, debido a su efecto sobre la motivación, el plan de vida y la decisión de concluir la preparatoria. La diferencia entre ambas es moderada, lo que confirma que atender las barreras socioemocionales y fortalecer las expectativas educativas son acciones complementarias.
La política integral presenta el mejor desempeño y alcanza aproximadamente 53 graduados acumulados al final del periodo. Esto representa cerca de 18 graduados adicionales respecto al escenario base y alrededor de 8 a 10 más que las políticas implementadas por separado. La ventaja creciente de esta trayectoria muestra que la combinación de acompañamiento socioemocional, redes de apoyo, motivación y construcción de un plan de vida genera un efecto acumulativo superior. Por ello, la intervención integral es la alternativa con mayor capacidad para convertir la permanencia escolar en conclusión efectiva de la educación media superior.
resultados_comparados <- resultados_comparados |>
group_by(escenario) |>
arrange(time, .by_group = TRUE) |>
mutate(
graduados.acumulados = cumsum(graduados)
) |>
ungroup()
grafica_graduados_acumulados <- ggplot(
resultados_comparados,
aes(
x = time,
y = graduados.acumulados,
color = escenario,
linetype = escenario,
shape = escenario
)
) +
geom_line(linewidth = 1.25) +
geom_point(
size = 3,
stroke = 1,
fill = "white"
) +
scale_color_manual(values = colores_escenarios) +
scale_linetype_manual(values = tipos_linea) +
scale_shape_manual(values = formas_puntos) +
scale_x_continuous(
breaks = seq(2026, 2036, by = 2)
) +
labs(
title = "Graduados de preparatoria",
subtitle = "Total de estudiantes que concluyen el nivel durante el periodo",
x = "Año",
y = "Graduados acumulados"
) +
tema_articulo
grafica_graduados_acumulados
Nota. Elaboración propia.
Los resultados muestran que las intervenciones actúan mediante mecanismos distintos y complementarios. La consejería socioemocional tiene el efecto más directo sobre la reducción del abandono y la permanencia escolar, al atender obstáculos personales, familiares y sociales. Por su parte, los juegos de rol educativos fortalecen la motivación, el plan de vida y las expectativas de continuidad, por lo que sus beneficios son más visibles en la transición y la conclusión de la preparatoria. Aunque aplicada de forma aislada presenta un efecto menor sobre la deserción, logra mejorar los resultados respecto al escenario base.
La política integral ofrece el desempeño más completo al considerar conjuntamente todos los indicadores. En 2036 registra la menor tasa agregada de deserción, con aproximadamente 19.1%, frente a 21.4% en el escenario base, y mantiene la deserción total anual cerca de 8.9 estudiantes. Asimismo, alcanza el mayor stock de secundaria, con alrededor de 38.7 alumnos, y cerca de 7.8 estudiantes en preparatoria, apenas por debajo de los 7.9 obtenidos mediante la consejería. Esta diferencia no representa necesariamente un resultado desfavorable, ya que el stock también disminuye cuando los estudiantes concluyen satisfactoriamente el nivel.
El beneficio más evidente de la estrategia combinada aparece en la graduación: la política integral alcanza aproximadamente 53 graduados acumulados, cerca de 18 más que el escenario base y entre 8 y 10 más que las intervenciones individuales. En consecuencia, no es la mejor alternativa por dominar de manera amplia todos los indicadores, sino porque conserva prácticamente los beneficios de la consejería sobre la permanencia y agrega los efectos de la educación interactiva sobre la continuidad y la conclusión escolar. Por ello, constituye la opción con mayor alcance para intervenir sobre toda la trayectoria educativa.
El modelo confirma que la deserción escolar en la comunidad no responde a una sola causa, sino a la interacción entre condiciones económicas, familiares y educativas. En el escenario base, el número de estudiantes en secundaria y preparatoria disminuye durante los primeros años, mientras la tasa agregada de deserción aumenta de forma gradual. Aunque la deserción anual en términos absolutos baja inicialmente, esto ocurre en parte porque también se reduce el tamaño de la población estudiantil; por ello, el problema no desaparece, sino que afecta a una proporción cada vez mayor de quienes permanecen dentro del sistema.
La dinámica observada es especialmente preocupante en preparatoria. Este nivel presenta la mayor pérdida de estudiantes y una capacidad limitada para recuperarse, debido a que la entrada desde secundaria no compensa completamente las salidas por deserción y graduación. Al mismo tiempo, el modelo muestra la importancia de interpretar los stocks y los flujos de manera conjunta: una reducción del número de estudiantes inscritos no siempre representa un resultado negativo, ya que también puede explicarse por un mayor número de jóvenes que concluye satisfactoriamente sus estudios.
El análisis de incertidumbre muestra que los resultados dependen fuertemente de las condiciones externas. Las tasas iniciales de deserción son las variables que más modifican el comportamiento del sistema, seguidas por la pobreza, la cobertura de becas y el matrimonio adolescente. Bajo un escenario optimista, la magnitud del problema disminuye, pero no desaparece; en el pesimista, las pérdidas son más profundas; y en alta volatilidad, el rango de resultados se amplía considerablemente. Esto revela que la estructura actual tiene cierta capacidad de adaptación, pero sigue siendo vulnerable, sobre todo en preparatoria.
Las políticas analizadas producen efectos distintos, pero complementarios. La consejería socioemocional es la intervención más efectiva para reducir directamente la deserción y conservar estudiantes dentro de secundaria y preparatoria. Por su parte, la educación interactiva para el futuro fortalece la transición y la graduación, aunque no disminuye por sí sola el abandono. La combinación de ambas genera el resultado más completo, al actuar de manera simultánea sobre la permanencia, la continuidad y la conclusión de la trayectoria escolar, alcanzando el mayor número acumulado de graduados durante el periodo.
La principal implicación es que una intervención aislada no sería suficiente. La estrategia más sólida consiste en implementar la política integral y acompañarla con acciones que reduzcan las condiciones estructurales de riesgo, especialmente mediante una mayor cobertura de becas, seguimiento temprano de estudiantes con riesgo de abandono y atención específica a las barreras familiares y económicas. La permanencia escolar requiere actuar antes de que la deserción ocurra y sostener el apoyo durante toda la transición entre niveles educativos.
Finalmente, los resultados deben interpretarse como una exploración de futuros posibles y no como una predicción exacta. Los impactos de las políticas fueron estimados para analizar su comportamiento potencial, por lo que su aplicación real requeriría validación, seguimiento y actualización con datos locales. Aun con esta limitación, el modelo permite identificar con claridad dónde se concentra la vulnerabilidad, qué variables condicionan con mayor fuerza el futuro educativo y por qué una respuesta integral ofrece mejores resultados que las acciones fragmentadas.
Tasa de graduación: https://www.economia.gob.mx/datamexico/es/profile/geo/mier-y-noriega?redirect=true&travelTime=schoolMean#education-and-employment
Factor Migración: http://omi.gob.mx/work/models/OMI/Resource/2802/IIMMexEEUU2020.pdf
Matrimonio adolescente: https://blog.derechosinfancia.org.mx/2022/05/16/matrimonio-y-union-temprana-en-ninas-y-mujeres-adolescentes-de-los-municipios-de-mexico/
Promedio de inscripción de jóvenes a preparatoria: https://planeacion.sep.gob.mx/Doc/Atlas_estados/nuevo_leon.pdf
Promedio de niños que abandonan la secundaria: https://planeacion.sep.gob.mx/Doc/Atlas_estados/nuevo_leon.pdf
Tasa de crecimiento poblacional: https://www.economia.gob.mx/datamexico/es/profile/geo/mier-y-noriega?redirect=true
Proporción Masculina: https://www.inegi.org.mx/programas/ccpv/2020/#datos_abiertos
Factor de cuidados en secundaria (Fuente: ENUT) y Factor de cuidados en preparatoria (Fuente: ENUT): https://www.inegi.org.mx/programas/enut/2024/#microdatos
Tasa inicial de deserción en secundaria (Fuente: Formato 911) y Tasa inicial de deserción en preparatoria (Fuente: Formato 911) https://siged.sep.gob.mx/SIGED/datos_abiertos.html