Archivo de la categoría: Reflexiones

Posts reflexivos

Matemáticas a Distancia: Una plataforma de aprendizaje

Por Leonardo Ignacio Martínez Sandoval

Introducción

Si has sido seguidor de El blog de Leo y has aprovechado el material de aprendizaje de matemáticas universitarias que tenemos, esta entrada te interesa.

Quizás desde hace años has visto cómo este espacio ha crecido bastante. De hecho, yo mismo lo he visto crecer de formas que no imaginaba al principio. Empezó como un blog personal, que luego se volvió algo así como un blog de «la vida de un matemático en formación», con pensamientos matemáticos varios y algunas anécdotas personales, de viajes y de la academia. Sin embargo, al ser uno de los primeros espacios digitales que empecé a mantener, lo convertí en el hogar de otros proyectos de gran alcance en los que he estado involucrado, por ejemplo el Concurso Universitario de Matemáticas Galois-Noether y el repositorio de videos de resolución de problemas. Y, más recientemente, de todo un ecosistema de notas de matemáticas para estudiantes universitarios. En esta entrada quiero hablar un poco más de lo segundo, y de su relación con un proyecto más amplio que se llama Matemáticas a Distancia.

Antes de comenzar, me gusta recordar que, aunque el sitio lleva mi nombre, mucho del contenido que encuentran aquí es en realidad el fruto del esfuerzo de muchas personas. Por favor, recuerden siempre revisar a los autores de cada entrada, pues este es un esfuerzo colectivo para generar material libre y de calidad. Bueno, sin decir más, quiero entonces empezarles a platicar acerca del proyecto que engloba todas notas de docencia que hemos trabajado aquí en el blog, de Matemáticas a Distancia.

¿Qué es Matemáticas a Distancia y cómo nació?

Matemáticas a Distancia es una iniciativa que se empezó a planear en 2020 en la Facultad de Ciencias de la UNAM. Cuando presenté mis papeles para concursar por una plaza de tiempo completo en la Facultad, puse en mi plan de docencia que sería bueno que los estudiantes tuvieran un portal «tipo Khan Academy«, pero con material para la Licenciatura en Matemáticas. En aquel momento, había varias ventajas fáciles de describir sobre tener algo así. Sin embargo, la pandemia que se desató ese año aceleró los planes de que dicho portal naciera. Al irnos a trabajar a casa, resultó importante tener material para compartir con mis estudiantes durante el tiempo de la emergencia. Y entonces surgieron las primeras notas tipo blog.

No fui el único al que se le ocurrió crear material para sus cursos. Muchos de mis colegas o bien ya contaban con algo de material, o bien la pandemia los orilló a crearlo. Así, entre varios profesores nos pusimos de acuerdo para solicitar un apoyo PAPIME de la UNAM, con el fin de trabajar en un proyecto mejor armado. El objetivo principal que compartimos desde ese entonces fue ofrecer un ecosistema digital unificado para la Licenciatura en Matemáticas. Desde el inicio hay tres principios fundamentales que perseguimos:

  • Que el material sea gratuito.
  • Que el material sea abierto.
  • Que el material sea de calidad.

Así, todo empezó como una respuesta a la necesidad de flexibilizar la educación. Pero desde entonces el proyecto ha crecido muchísimo. Tras el primer año abrimos nuestra página de internet en https://www.mdistancia.com. En años posteriores conseguimos más apoyo institucional para acercar a numerosos profesores y estudiantes para desarrollar más material. Además, hemos trabajado para que no se trate únicamente de subir archivos a la red, sino que haya también en el material cierto acompañamiento adicional, ya sea mediante la respuesta a comentarios de blog, interacciones en YouTube u ofreciendo cuestionarios para que quien revise el material pueda ir verificando su entendimiento.

Lo que tenemos para ti hoy

Actualmente, el portal ha consolidado una oferta muy robusta que el equipo ha ido puliendo con el tiempo. En la plataforma contamos con 27 COMALes (Curso Online de Matemáticas Abierto para licenciatura), que son cursos en línea que cubren la teoría completa de diversas asignaturas obligatorias y optativas de la licenciatura.

También tenemos material para las carreras de Actuaría y Ciencias de la Computación.

Además de los cursos largos, hacia 2023 surgió la idea de que contáramos con otros mini-cursos de habilidades complementarias. Introducimos esa funcionalidad en la plataforma y hemos creado 7 mini-COMALes, para poder desarrollar en una menor cantidad de tiempo alguna habilidad complementaria o profesionalizante:

  • Cimientos Matemáticos: Para contar con los fundamentos matemáticos correctos antes de empezar en la vía universitaria.
  • Computación Científica Introductoria con Python: Para una aproximación informal, pero útil a la programación, desde su utilidad en las matemáticas mismas.
  • Curso de LaTeX para Ciencias: Para conocer los fundamentos de trabajar en LaTeX y realizar colaboraciones matemáticas en Overleaf.
  • Geometría Interactiva: Para descubrir con software distintos resultados de geometría.
  • Introducción a Pandas en Python: Para un primer acercamiento al análisis de datos.
  • Los Elementos de Euclides: Para visualizar en video distintos resultados de la clásica obra de Euclides.
  • Notas de Apoyo para Teoría de Gráficas I: Para contar con una guía express para esta materia optativa de la licenciatura.

Todo este material es gratuito. Intentamos que sea compatible entre sí, en el sentido de que permita fácilmente saltar de una materia a otra.

Además, la última noticia es que el portal ya permite tener un aprendizaje más personalizado, pues desde febrero de 2026 ya es posible abrir una cuenta.

¿Por qué te conviene abrir una cuenta en Matemáticas a Distancia?

Si eres usuario frecuente de este blog, te darás cuenta de que aquí la experiencia es principalmente de lectura y quizás de interactuar mediante los comentarios. Sin embargo, hay algunas limitaciones en quedarse sólo en el blog:

  • Es difícil saber cuáles son todas las entradas de blog de aprendizaje de matemáticas que existen.
  • No es tan fácil recordar cuáles entradas ya has visto y cuáles no.
  • Para guardar tus entradas favoritas tienes que saturar los favoritos de tu navegador.

Al abrir una cuenta en Matemáticas a Distancia, lo cual es totalmente gratuito, podrás hacer lo siguiente:

  • Llevar un registro detallado de tus avances en cada curso para que sepas exactamente dónde te quedaste la última vez que estudiaste.
  • Encontrar en los COMALes correspondientes material auxiliar para cada nota.
  • Marcar materiales, notas o videos como favoritos para que los tengas a la mano en consultas rápidas.
  • Resolver los cuestionarios de autoevaluación integrados en los cursos y guardar tus puntuaciones para ver cómo vas mejorando.
  • Recibir actualizaciones directas sobre nuevos contenidos, guías de supervivencia académica o herramientas que integremos a la plataforma.
  • Estar al tanto de material que no está en formato notas de blog.

Conclusión

En fin, esta entrada era para hacerles saber de la existencia de Matemáticas a Distancia, pues es un proyecto grande que, en particular, abarca las notas de docencia de El blog de Leo. Si bien esto no incluye a todo el blog, me parece que una gran cantidad de los seguidores y personas que visitan este blog pueden beneficiarse de tener también ese otro portal en mente.

En general, me entusiasma mucho ver que el material que empezó como material de clase, ahora sirva a tantas personas en distintas partes del mundo hispanohablante. Esto siempre es inspiración para seguir trabajando tanto en El blog de Leo como en Matemáticas a Distancia, y para que el equipo siga ofreciendo material cada vez más útil y diverso.

Si ya conoces el blog, pero no Matemáticas a Distancia, te invito entonces a que explores el sitio en https://www.mdistancia.com. Explora un poco el Árbol de Recursos. Usa el Buscador. Intenta ver si hay algún COMAL o mini-COMAL que te interese seguir. Si te animas, abre una cuenta para poder llevar un registro del esfuerzo. Y si sí te animas, cuéntame también por acá en los comentarios qué tal fue la experiencia.

Diez años en la Olimpiada Internacional de Matemáicas

Por Leonardo Ignacio Martínez Sandoval

Hoy comenzó mi participación en la décima Olimpiada Internacional de Matemáticas en la que participo. Diez ediciones. Diez años. Diez países. Miles de chicos que he visto dar lo mejor de sí con el fin de aprender más y más de la resolución de problemas matemáticos. La verdad es algo que nunca me hubiera imaginado, sobre todo porque nunca participé en la competencia como concursante.Todas estas participaciones han estado llenas de experiencias increíbles:

  • 2011 Países Bajos: Mi primer año en la IMO. Participé como colíder. Fue la primera vez que fui a Europa.
  • 2012 Argentina: Mi primer año como líder del equipo mexicano. Se obtuvo la segunda medalla de oro para México en la competencia.
  • 2013 Colombia: Mi segundo año como líder del equipo. Se obtuvo la puntuación más alta y el mejor lugar que hemos obtenido históricamente en la competencia. Por primera vez quedamos en Top 20.
  • 2014 Sudáfrica: Tercer año como líder del equipo. Por primera vez hubo cuatro estudiantes que obtuvieron de plata para arriba. Fue la primera vez que fui a África.
  • 2015 Tailandia: Cuarto y último año como líder del equipo. Cerré con oro esa participación como líder de equipo, pues se consiguió entrar al top 20 (por segunda vez en la historia) y se consiguió la tercera medalla de oro para México (la última desde entonces).
  • 2016 Hong Kong: Primera vez que asisto al evento como Observador A, para pasar la batuta de líder. Fui designado como Chair de la Olimpiada Matemática de la Cuenca del Pacífico (APMO), ya que a México se designó como país organizador de la misma.
  • 2017 Brazil: Una nueva y excelente experiencia, ahora como evaluador (coordinador) en el evento. Me acuerdo mucho que ese año varios me pidieron una foto porque me ubicaban de El Blog de Leo. Segundo año de Chair de la APMO.
  • 2018 Rumanía: Segundo año como evaluador. Tercer año como Chair de la APMO.
  • 2019 Gran Bretaña: Esta IMO fue muy emotiva, pues fue el evento 60 de la competencia. Hubo juegos mecánicos el día de la premiación. Tercera vez como evaluador. Último año como Chair de la APMO y orgulloso de dejar para el futuro el portal http://www.apmo-official.org/ para recopilar la información histórica de la competencia.
  • 2020 Online, organizada por Rusia: La de ahora. Por supuesto, con la particularidad de que ahora todo es a distancia. Pero igual ha estado siendo muy divertido como evaluador: hay un cierto sistema que hay que aprender a usar, los archivos siguen llegando en muchos idiomas y las discusiones matemáticas son bastante interesantes.

Le agradezco muchísimo a la Olimpiada Mexicana de Matemáticas, que me impulsó a participar en estos primeros años. Y por supuesto, a los organizadores de muchas de las ediciones por la confianza que depositan en mi para ser evaluador.

Seis herramientas fundamentales para concursos matemáticos en tiempos de pandemia

Por Leonardo Ignacio Martínez Sandoval

La Olimpiada Mexicana de Matemáticas (OMM) se organiza en varios niveles: estatal, nacional y participación en concursos internacionales. Los estudiantes comienzan con la etapa estatal, en donde realizan varios exámenes y además se les prepara mediante entrenamientos. Después de repetir esto algunas veces, algunos estudiantes son elegidos para ir al Concurso Nacional de la OMM, para el cual se preparan adicionalmente.

A grandes rasgos, la forma en la que se organiza una olimpiada estatal se ve así:

En la parte de arriba se ve el flujo de los estudiantes. En la parte de abajo se ven varias actividades que realizan los comités estatales.

En esta época de la pandemia de COVID19, es muy importante encontrar alternativas para realizar muchas de estas actividades de manera digital. La idea de esta entrada de blog es ser un mini-curso introductorio a material y tecnologías de educación a distancia que pueden ser usadas para realizar estas actividades. Si bien está pensada originalmente como una entrada para ayudar a la organización de los concursos estatales de la OMM, el contenido puede:

  • Ser de utilidad incluso cuando salgamos de la pandemia, para tener más alcance.
  • Apoyar a otros concursos de otras ciencias, y otros países, a encontrar alternativas.

Para cada tecnología también hay un video, para ver cada uno de los recursos más en acción. El video introductorio es el siguiente.

Página de la Olimpiada Mexicana de Matemáticas

La página de la Olimpiada Mexicana de Matemáticas es uno de los mejores lugares para encontrar material de entrenamiento gratuito, de calidad, de acceso libre y con soluciones. Además, en esta página están disponibles en versión digital todos los números de la revista Tzaloa, que tiene otro tanto de material.

Otras cosas que se pueden encontrar en la página son los datos de contacto de los organizadores, resultados históricos de México en las olimpiadas internacionales y un sistema para pedir libros de la serie Cuadernos de Olimpiada.

La página de la OMM es http://www.ommenlinea.org. En el siguiente video se exploran con más detalle las distintas secciones.

El blog de Leo

El blog de Leo es precisamente esta página, en donde está esta entrada de blog. Forma parte de los recursos que propongo pues aquí en el blog hay también bastante material para preparar a olímpicos y entrenadores de la Olimpiada. Algunas secciones que pueden ser de utilidad son:

En el siguiente video se explora el blog más a detalle.

Facebook

La red social más popular es Facebook, y una de sus misiones es conectar a las personas. Se puede aprovechar todo el potencial que tienen sus herramientas para dar difusión a los concursos de matemáticas, para estar en contacto con los concursantes y para entrar en contacto con otras comunidades.

Dentro de Facebook, los dos lugares más indicados para ir y estar cerca de la comunidad olímpica matemática de México son:

  • La página de FB de la OMM: Página oficial, manejada por el Comité. Ahí se sube información de eventos, se publican resultados a nivel nacional y se informa de la participación de México en concursos internacionales.
  • El grupo Insommnia: El ambiente es más relajado. Es un grupo extraoficial, pero con una comunidad enorme de olímpicos y ex-olímpicos. Hay chistes, problemas propuestos, videos, discusiones de mejora del proyecto, mini-exámenes, etc.

Cada Comité Estatal puede aprovechar que en Facebook se pueden hacer grupos privados para estar en contacto con organizadores, papás o concursantes.

Hablo más de Facebook y su papel en concursos matemáticos en el siguiente video.

Overleaf

LaTeX es un lenguaje para escribir matemáticas y que se produzca un documento en el cual las matemáticas se vean bonito. Con él se pueden hacer exámenes selectivos, notas de entrenamiento e incluso libros.

Típicamente, para usar LaTeX en una computadora es necesario instalar una distribución y un editor. Overleaf es una página de internet en la cual se puede escribir y compliar LaTeX sin necesidad de instalar nada adicional.

Una ventaja de Overleaf es que lo que se trabaja se queda en la nube, así que se puede acceder a los documentos desde cualqueir computadora con internet. Esto tiene la desventaja de que se necesita tener internet, pero es fácilmente arreglable ya que, de ser necesario, se pueden bajar a una computadora todos los archivos fuente.

Otra ventaja de Overleaf es que se puede hacer colaboración simultánea en un mismo documento. Esto es muy útil para cuando se tiene que escribir matemáticas con otras personas: al hacer notas, escribir artículos de investigación y textos más grandes como libros o tesis.

En el siguiente video hablo más acerca de Overleaf.

Moodle

Un LMS es una plataforma que tiene todo lo que necesita un curso a distancia: herramientas para hacer exámenes, definir actividades, calendarizar, contactar a estudiantes, etc. Uno de los LMS más importantes y de más uso en la docencia a distancia es Moodle.

La principal dificultad con usar Moodle reside en que es necesario descargar un software e instalarlo en un servidor. Esto puede ser muy difícil para alguien que no conoce del tema. Sin embargo, una vez que Moodle queda instalado, es muy facil de usar para profesores y estudiantes (o en este contexto, delegados, entrenadores y concursantes).

El tipo de cosas que se pueden hacer en Moodle incluyen:

  • Tener un sistema de registro de nuevos concursantes
  • Subir notas
  • Subir mini-libros
  • Crear exámenes con límites de tiempo
  • Crear actividades de aprendizaje
  • Hacer cuestionarios
  • Tener foros personalizados

En el siguiente video hablo más a detalle de algunas de estas cosas.

Zoom, Hangouts y otras plataformas de videollamada

Finalmente, me gustaría platicar un poco acerca de opciones para tener videollamadas hoy en día. Sobre todo, me gustaría enfocarme en Zoom y en Hangouts. Ambas son buenas opciones para tener llamadas con grupos de varias personas.

Zoom agarró mucha popularidad en esta época de pandemia, y tiene sentido. Es una herramienta fácil de usar y de instalar que permite:

  • Armar reuniones con muchas personas
  • Compartir la pantalla con los asistentes (por ejemplo, puede servir para dar entrenamientos)
  • Programar reuniones y avisar a los participantes
  • Tener mecanismos de participación por chat, reacciones de «levantar la mano» o «aplaudir»

La versión gratuita de Zoom tiene algunas limitaciones, como que sólo se puede usar por 40 minutos de manera simultánea. La versión de paga permite hacer varias cosas como dividir a un grupo en sub-grupos.

Google Hangouts es una herramienta muy similar. También permite reuniones con muchas personas y compartir la pantalla. Se integra mejor con todo el ecosistema de Google y puede ser muy útil para quienes ya tengan una cuenta ahí.

En el siguiente video hablo de estas y un par de opciones más.

Reflexión final

Esta entrada fue un mini-curso al material y las tecnologías que se pueden usar para seguir organizando concursos matemáticos a distancia. El material que se presentó toma en mente el flujo de participantes en un modelo básico del concurso. También toma en cuenta el tipo de tecnología que podría necesitar un comité organizador local para hacer todas las actividades que se necesitan.

Hay una hipótesis muy fuerte que estamos haciendo: que los organizadores y participantes tienen acceso estable y bueno a internet. Al realizar actividades que aprovechen la tecnología hay que tener en cuenta que esta hipótesis es posible que no se cumpla. Puede suceder que:

  • Haya personas sin acceso a internet
  • Haya personas con acceso sólo con datos, para quienes ver videos es impermisiblemente caro
  • Haya personas con computadora y acceso a internet en su casa, pero de los cuales no puedan disponer
  • Haya personas con todos los recursos tecnológicos, pero viviendo muchas dificultades debido a la pandemia.

Así como muchos otros aspectos de la docencia, es importante tener empatía en el aspecto digital.

Modelo de epidemia básico con álgebra lineal y Python

Por Leonardo Ignacio Martínez Sandoval

Introducción

En esta entrada voy a platicar de una forma en la que se puede plantear un modelo de epidemia básico usando álgebra lineal. Es un modelo bastante simple, sin embargo a partir de él se pueden verificar varias de las lecciones que hemos estado aprendiendo durante la crisis del coronavirus. A grandes rasgos, haremos algunas suposiciones razonables para plantear una epidemia como un modelo de Markov.

Ya que hagamos esto, estudiaremos dos escenarios posibles: en el que la gente sale de sus casas y en el que la gente se queda en sus casas. Para ello usaremos las librerías NumPy y Matplotlib de Python para hacer las cuentas y generar bonitas gráficas como la siguiente:

Gráfica de evolución de la población con contagio bajo, bajo las suposiciones de nuestro modelo de epidemia básico
Ejemplo del tipo de gráficas que obtendremos en la entrada

En particular, veremos que incluso de este modelo simple se notan contrastes importantes en ambos escenarios. En particular, se puede deducir la importancia de #QuédateEnCasa para retrasar el contagio y no saturar los sistemas de salud.

Advertencia: De ninguna forma esta entrada pretende modelar, específicamente, la evolución del coronavirus. Para ello hay expertos trabajando en el tema, y están usando modelos mucho más sofisticados que el que platicaré. Esta entrada es, en todo caso, una introducción al tema y ayuda a explicar, poco a poco, algunos de los argumentos que se usan en modelación matemática de epidemias.

Suposiciones y modelo tipo Markov

Comenzemos a plantear el modelo de epidemia básico. Pensemos en una enfermedad imaginaria, que se llama «Imagivid» y en un territorio imaginario que se llama «Imagilandia», donde la población inicial es de $100,000$ habitantes sanos, en el día $0$.

Vamos a pensar que una persona puede estar en alguno de los siguientes cinco estados:

  • Sano
  • Síntomas leves
  • Síntomas graves
  • Recuperado
  • Fallecido

Para cada día $n$, consideremos el vector $$X(n)=(s(n),l(n),g(n),r(n),f(n))$$ de $5$ entradas cuyas entradas son los sanos, de síntomas leves, de síntomas graves, recuperados y fallecidos al día $n$. Por ejemplo al día $0$ dijimos que todos están sanos, así que $X(0)=(100000,0,0,0,0)$.

Haremos las siguientes suposiciones de cómo se pasa de un estado a otro

  • Los únicos fallecidos del periodo de tiempo que tendremos son por Imagivid. Sólo se puede fallecer de ello tras tener síntomas graves. Si alguien tiene síntomas graves, entonces tiene cierta probabilidad $g_f$ de fallecer al día siguiente, $g_r$ de recuperarse y por lo tanto $1-g_r-g_f$ de quedarse como enfermo grave.
  • Imagivid se contagia de persona a persona, y de un día a otro una persona tiene probabilidad $s_l$ de pasar de estar sana a tener síntomas leves. No se puede pasar directamente a tener síntomas graves, recuperarse o morir. De modo que se queda sana de un día a otro con probabilidad $1-s_l$
  • Si una persona tiene síntomas leves, tiene probabilidad $l_g$ de pasar a tener síntomas graves y $l_r$ de pasar a recuperarse. Por lo tanto, tiene probabilidad $1-l_g-l_r$ de quedarse con síntomas leves.
  • Una persona que se recupera desarrolla inmunidad a Imagivid, así que se queda en ese estado.
  • Una persona que fallece, se queda en ese estado.

En otras palabras, tenemos el siguiente diagrama de cómo se pasa de tener un estado a otro, en donde los números en las flechas muestran la probabilidad de pasar de un estado a otro:

Diagrama de probabilidades de transición entre estados en el modelo de epidemia básico
Diagrama de probabilidades de transición

En lenguaje técnico, estamos modelando a la epidemia como un proceso de Markov. Sin embargo, no es necesario entender toda la teoría de procesos de Markov para entender lo que sigue, pues la idea es bastante intuitiva.

Con estos números y suposiciones, podemos entender, en valor esperado, cómo será el vector de población $$X(n+1)=(s(n+1), l(n+1), g(n+1), r(n+1), f(n+1))$$ si sabemos cómo es el vector $$X(n)=(s(n), l(n), g(n), r(n), f(n)).$$ Por ejemplo, podemos esperar que la cantidad de recuperados al día $n+1$ sea $$r(n+1)=l_r \cdot l(n)+ g_r \cdot g(n) + 1 \cdot r(n),$$ pues de los de síntomas leves del día $n$ habrá una proporción $l_r$ de ellos que se recuperen, de los graves del día $n$ habrá una proporción $g_r$ de ellos que se recuperen, y todos los recuperados del día $n$ se quedan recuperados. De esta forma, obtenemos el siguiente sistema de ecuaciones de lo que podemos esperar:
\begin{align*}
s(n+1)&=(1-s_l) \cdot s(n)\\
l(n+1)&=s_l \cdot s(n) + (1-l_r-l_g) \cdot l(n)\\
g(n+1)&= l_g \cdot l(n) + (1-g_r-g_f) \cdot g(n)\\
r(n+1)&=l_r \cdot l(n) + g_r \cdot g(n) + 1 \cdot r(n)\\
f(n+1)&=g_f \cdot g(n) + 1 \cdot f(n),
\end{align*}

Este sistema de ecuaciones se puede escribir de una forma mucho más compacta. Si definimos la matriz $$A=\begin{pmatrix} 1-s_l & 0 & 0 & 0 & 0 \\s_l & 1-l_r-l_g & 0 & 0 & 0 \\0 & l_g & 1-g_r-g_f & 0 & 0 \\ 0 & l_r & g_r & 1 & 0\\ 0 & 0 & g_f & 0 & 1 \end{pmatrix},$$ las ecuaciones anteriores se pueden abreviar simplemente a $$X(n+1)=AX(n).$$

De esta forma, si queremos entender qué esperar del día $n$, basta hacer la multiplicación matricial $X(n)=A^n X(0)$.

Un ejemplo concreto en Python

El modelo de epidemia básico que planteamos arriba depende de cinco parámetros:

  • $s_l$, la probabilidad de pasar de estar sano a tener síntomas leves,
  • $l_g$, la probabilidad de pasar de tener síntomas leves a graves,
  • $l_r$, la probabilidad de pasar de tener síntomas leves a recuperarse,
  • $g_r$, la probabilidad de pasar de tener síntomas graves a recuperarse y
  • $g_f$, la probabilidad de pasar de tener síntomas graves, a fallecer.

Hagamos un ejemplo concreto, en el que estos parámetros para Imagivid son los siguientes: $s_l=0.30$, $l_g=0.10$, $l_r=0.20$, $g_r=0.10$ y $g_f=0.10$. En «la vida real», para hacer una modelación correcta se tienen que estimar estos parámetros de lo que ya se sepa de la enfermedad.

Si ponemos estos valores, la matriz que obtenemos es la siguiente:

$$A=\begin{pmatrix} 0.7 & 0 & 0 & 0 & 0 \\0.3 & 0.7 & 0 & 0 & 0 \\0 & 0.1 & 0.8 & 0 & 0 \\ 0 & 0.2 & 0.1 & 1 & 0\\ 0 & 0 & 0.1 & 0 & 1 \end{pmatrix}.$$

Vamos a usar la fórmula que obtuvimos en la sección anterior para entender cómo va evolucionando la epidemia de Imagivid. Para no hacer las cuentas a mano, usaremos Python. Trabajaremos con Python 3 y usaremos Numpy (para las cuentas de matrices) y Matplotlib (para visualizar gráficas). En el siguiente código definimos la población inicial, los parámetros de transición y la matriz de la sección anterior.

import numpy as np
import matplotlib.pyplot as plt
# En cada momento tendremos un vector
# de la distribución de la población
# (sanos, sintomas leves, sintomas graves,
# recuperados, fallecidos)

# Población inicial
x_0=(100000,0,0,0,0)

# Definimos las probabilidades de
# transición

S_L = 0.30
L_G = 0.10
L_R = 0.20
G_R = 0.10
G_F = 0.10

# Definimos la matriz A
A=np.array([[1-S_L,0,0,0,0],[S_L,1-L_G-L_R,0,0,0],[0,L_G,1-G_R-G_F,0,0],[0,L_R,G_R,1,0],[0,0,G_F,0,1]])

Vamos a estudiar la evolución de Imagivid por 60 días. Por ello, vamos a hacer un bucle en Python que calcule cómo son los vectores de población de todos estos 60 días. Para empezar a entender cómo funciona nuestro modelo de epidemia, también pediremos que muestre los valores para los días 1, 2 y 3.

# Encontramos la evolución de la
# epidemia los primeros 60 días
evolution=[x_0]
for j in range(60):
    evolution.append(np.matmul(A,evolution[-1]))
# Mostramos lo que pasa los primeros
# 3 días
for j in range(1,4):
    print(evolution[j])

Los valores que obtenemos son
\begin{align*}
X_1 &= (70000,30000,0,0,0)\\
X_2 &= (49000, 42000, 3000, 6000)\\
X_3 &= (34300, 44100, 6600, 14700, 300).
\end{align*}

Esto nos dice que al primer día hay $70000$ sanos y $30000$ con síntomas leves. En los primeros dos días no hay fallecidos, pues de acuerdo a nuestro modelo de epidemia un habitante primero debe presentar síntomas leves, luego graves y luego ya tal vez fallece. Al día 3 el modelo predice $300$ fallecidos.

Esto son sólo tres días, pero sería bueno poder entender qué sucede en todo el periodo de 60 días. Para ello, vamos a pedir a Python que nos muestre una gráfica de cómo evoluciona la población a través del tiempo. Para ello hacemos lo siguiente

# Hacemos gráfica para mostrar la evolución de todo el tiempo
plt.plot([j[0] for j in evolution], label="Sanos")
plt.plot([j[1] for j in evolution], label="Síntomas leves")
plt.plot([j[2] for j in evolution], label="Síntomas graves")
plt.plot([j[3] for j in evolution], label="Recuperados")
plt.plot([j[4] for j in evolution], label="Fallecidos")
plt.title("Evolución de la población, contagio=0.30")
plt.legend()
plt.show()

Obtenemos la siguiente imagen

Evolución de la población con contagio $0.30$

La gráfica tiene sentido es de esperarse que, tras cierta cantidad de tiempo, ya sólo haya habitantes recuperados y fallecidos. Notemos que hay un momento el el que la población con síntomas leves es de aproximadamente $40,000$ habitantes y que la población con síntomas graves llega a ser, en algún momento, como de $12,000$ habitantes.

¿Qué sucede al final de nuestro periodo de estudio? Si le pedimos a Python que nos de las últimas dos entradas del vector de población al día $60$,

#Mostramos recuperados y fallecidos al último día
print(evolution[-1][3])
print(evolution[-1][4])

obtenemos $\sim 83,333$ recuperados y $\sim 16,666$ fallecidos al día $60$, de modo que en este escenario la epidemia cobró $16,666$ vidas de Imagilandia. De hecho una observación muy importante, viendo la gráfica, es que ya se tenía prácticamente esta cantidad de víctimas desde el día 30.

Disminuir la tasa de infección para retrasar la epidemia

Antes de que sucediera la tragedia, las autoridades de Imagilandia estudiaron el modelo de epidemia que acabamos de mencionar y se dieron cuenta de que tenían que tomar una acción inmediata para mejorar la situación. Decidieron que una cosa muy importante para que la situación mejorara era pedirle a la gente que se quedara en sus casas lo más posible, pues con ello se disminuiría la tasa de contagio. Para ello sacaron la campaña #QuédateEnCasa. Las personas hicieron caso.

Habiendo más personas sanas y enfermas en su propia casa, ahora ni los enfermos pueden contagiar a sanos, ni los sanos estar expuestos a enfermos. Así, una persona sana ahora tiene menor probabilidad de estar enferma al día siguiente. Supongamos que $s_l$ pasa de ser $0.30$ a ahora ser $0.05$. De esta forma, ahora tenemos una nueva matriz que ayuda a calcular la evolución de la pandemia:

$$A=\begin{pmatrix} 0.95 & 0 & 0 & 0 & 0 \\0.05 & 0.7 & 0 & 0 & 0 \\0 & 0.1 & 0.8 & 0 & 0 \\ 0 & 0.2 & 0.1 & 1 & 0\\ 0 & 0 & 0.1 & 0 & 1 \end{pmatrix}.$$

Vamos a pedirle de nuevo a Python que haga las cuentas para los primeros 60 días bajo las suposiciones de nuestro modelo de epidemia y que nos muestre una gráfica de la evolución de la población.

# Definimos las probabilidades de transición, que son iguales salvo que ahora la tasa de contagio es menor, y por lo tanto S_L es menor

S_L = 0.05
L_G = 0.10
L_R = 0.20
G_R = 0.10
G_F = 0.10

# Definimos la matriz A
A=np.array([[1-S_L,0,0,0,0],[S_L,1-L_G-L_R,0,0,0],[0,L_G,1-G_R-G_F,0,0],[0,L_R,G_R,1,0],[0,0,G_F,0,1]])

evolution2=[x_0]
for j in range(60):
    evolution2.append(np.matmul(A,evolution2[-1]))

plt.plot([j[0] for j in evolution2], label="Sanos")
plt.plot([j[1] for j in evolution2], label="Síntomas leves")
plt.plot([j[2] for j in evolution2], label="Síntomas graves")
plt.plot([j[3] for j in evolution2], label="Recuperados")
plt.plot([j[4] for j in evolution2], label="Fallecidos")
plt.title("Evolución de la población, contagio=0.05")
plt.legend()
plt.show()

La gráfica que obtenemos es la siguiente:

Evolución de la población con contagio $0.05$

Una cosa fantástica en este escenario es que nunca hay muchas personas enfermas simultáneamente. En el peor día, parece haber como $12,000$ personas enfermas con síntomas leves, y parece que nunca hay más de $6000$ personas con síntomas graves. ¿Qué sucede con la mortalidad? Si le pedimos a Python que nos diga el número de habitantes recuperados y fallecidos al día 60,

print(evolution2[-1][3])
print(evolution2[-1][4])

obtenemos $\sim 78,419$ recuperados y $\sim 15,438$ fallecidos. Esto es ligeramente mejor que en la situación anterior, en donde había $\sim 16,000$ fallecidos. Donde sí hay una diferencia es en lo que sucede al día $30$. Si pedimos a Python que nos muestre la cantidad de fallecidos al día $30$ en ambos escenarios obtenemos lo siguiente.

print(evolution[30][4])
print(evolution2[30][4])

En el primer escenario, en el que la gente no se queda en casa, al día $30$ tenemos $\sim 16,493$ fallecidos, que es prácticamente ya todos los que habrá. Cuando la gente se queda en casa, al día $30$ sólo hay $\sim 10,963$, una buena parte menos.

Esto parece estar mejor, sin embargo, el tiempo va a seguir pasando, y de todas formas llegaremos al día $60$, en donde ambos escenarios son muy parecidos ¿Por qué entonces todo el esfuerzo de pedirle a la gente que se quede en casa, si la diferencia es mínima? Porque el tiempo es oro.

La carrera contra el tiempo

Hay muchas razones por las cuales es conveniente retrasar la epidemia de Imagivid en Imagilandia, aunque el modelo sencillo que mostramos arriba muestre qe a los 60 días parecería que habrá la misma cantidad de fallecidos.

Primero, es importante retrasar los contagios pues existe la posibilidad de que los científicos de Imagilandia entiendan mejor a Imagivid y, por ejemplo, desarrollen una vacuna o un tratamiento. ¿Qué sucedería si los científicos encuentran una cura al día $30$? En el primer escenario sólo se salvan unas $\sim 150$ vidas, pero en el segundo escenario se salvan unas $\sim 4,500$, osea, unas $\sim 4350$ más. En otras palabras, en el primer escenario el desarrollo científico llega demasiado tarde.

Segundo, también es importante retrasar la epidemia pues permite tener el número de casos simultáneos bajo control. Esto ya lo discutimos un poco arriba, pero pidamos a Python una gráfica más, para poder discutirlo de manera más clara. Supondremos, además, que Imagilandia cuenta con solamente $6000$ camas de hospital en donde se pueden tratar los casos severos de Imagivid, y le pediremos a Python que ponga esto como una línea horizontal.

plt.plot([j[1] for j in evolution2], color="green", linestyle=":", label="Leves, Contagio=0.05")
plt.plot([j[2] for j in evolution2], color="green", label="Severos, Contagio=0.05")
plt.plot([j[1] for j in evolution], color="red", linestyle=":", label="Severos, Contagio=0.30")
plt.plot([j[2] for j in evolution], color="red", label="Severos, Contagio=0.30")
plt.hlines(6000,0,60, color="black", label="Capacidad sistema salud")
plt.title("Enfermos a través del tiempo")
plt.legend()
plt.plot()

Obtenemos la siguiente gráfica:

Comparación de enfermos leves y graves. Rojo es con alto contagio y verde con bajo.

Cuando la gente sí se queda en sus casas y la tasa de contagio es baja (en verde), siempre hay suficiente espacio en el sistema de salud para tratar a a los enfermos graves.

Cuando la gente no se queda en sus casas y la tasa de contagio es alta (en rojo), notemos que los casos severos sobrepasan al sistema de salud. Aproximadamente entre los días $3$ y $15$ se tienen muchos enfermos graves que no podrán ser atendidos correctamente. Por ejemplo, al día 9 hay aproximadamente $\sim 6000$ enfermos graves por encima de la capacidad del sistema de salud. Sin atención médica, probablemente en vez de que sólo fallezcan el $10\%$ de ellos (según nuestro modelo), fallecerán casi todos, dando $5400$ víctimas más que no hemos contado.

De esta forma, siguiendo los consejos de quedarse en casa, la población de Imagilandia puede salvar, potencialmente, $\sim 4350$ personas por la vacuna y $\sim 5400$ personas por evitar saturar el sistema de salud, osea, salvar unas $\sim 9750$ vidas. Para ello es necesario que las autoridades hagan el llamado a quedarse, y que la población de Imagilandia haga caso. De aquí la importancia del #QuédateEnCasa.

Más contenido

Todo el código de Python del modelo lo corrí en una libreta de Jupyter. Puedes ver una versión en PDF de todo el código a continuación.

Si quieres el archivo de Jupyter para jugar con el modelo, puedes obtenerlo en el GitHub del proyecto: https://github.com/leomtz/linear-epidemid.

El modelo de epidemia que presentamos es una aplicación muy sencilla de álgebra lineal. En este blog hemos estado subiendo material de un curso de álgebra lineal que se imparte en la UNAM, y que ahora estamos impartiendo a distancia por la contingencia. A continuación ponemos el enlace a este curso y a otro material que te puede interesar.

COVID 2019 – Reflexión y estrategia sobre clases a distancia

Por Leonardo Ignacio Martínez Sandoval

Es fundamental durante la crisis del COVID implementar estrategias de distanciamiento social que eviten la propagación del virus. Si bien el virus tiene efectos tenues en el 80% de la población, queremos alentar lo más posible la propagación del virus para que el 20% restante pueda ser atendido sin rebasar la capacidad del sistema de salud.

Con esto en mente, la UNAM ya anunció la suspensión gradual de clases. La Facultad de Ciencias suspende clases ya desde mañana martes.

En estos días he estado pensando bastante en cómo enfrentar la situación como profesor universitario en la UNAM. Tomando en cuenta lo que les he preguntado por acá y pláticas que he tenido con otros colegas, me convencido de que:

  • No podemos asumir que los estudiantes tendrán acceso a computadora o a un buen internet continuamente.
  • No podemos asumir que los estudiantes estarán disponibles exactamente a la hora en la que usualmente es la clase.
  • No a todos los profesores se les hará fácil impartir de improvisto una versión de su clase de manera inmediata.
  • El material que se prepare debe ser gratuito, de libre acceso y de calidad.
  • Hay herramientas maravillosas como Google Classroom, Moodle y otras más. Pero desde mi perspectiva, no cumplen con los estándares de universalidad y libre acceso que este caso requiere.

Debido a esto, he decidido enfrentar a la crisis mediante la siguiente estrategia:

  • No usaré streamings o «medios en vivo» como chats para impartir la clase.
  • Para cada sesión, indicaré exactamente qué contenido de la bibliografía veríamos durante la clase.
  • Para cada sesión prepararé, además, con apoyo de los ayudantes del curso, una entrada aquí en el blog para que los estudiantes tengan ejemplos y explicaciones adicionales.
  • Acabo de avisar a la Coordinación de la Carrera de Matemáticas que ayudaré a los colegas del Departamento de Matemáticas que así lo requieran en orientarlos en escribir entradas de blog (con LaTeX y todo).
  • Así mismo, ofreceré de manera gratuita espacio de almacenamiento aquí en el blog para los colegas que requieran subir entradas o tareas. Esto con el fin de que no tengan que abrir cuentas de WordPress o buscar un servidor, y puedan dedicarse a escribir material para su curso de manera inmediata.

Si eres uno de estos colegas, o cualquier otro profesor, me puedes contactar por aquí o por FB para detalles.