Material preparado por Caio Machado para el curso Aplicaciones Matemáticas para Economía y Negocios (solamente para fines didácticos)
1. Modelo base
El modelo presentado es una versión del modelo en Fernandez-Villaverde and Jones (2020) (FJ en lo que sigue). La población total es de personas, y cada persona puede estar en uno de cinco estados diferentes: susceptible, infectada, en recuperación, fallecida y recuperada (las personas se mueven de un estado a otro en este orden, excepto por los últimos dos estados). Tenemos que:
donde
Cada período representa un día. Usando la notación que , la evolución del sistema es dada por:
La interpretación de los parámetros y ecuaciones es la siguiente:
Todo día, cada persona infectada () interactúa (por un largo tiempo) en promedio con personas. Una fracción de de estas personas son susceptibles a infectarse, y por lo tanto el número total de nuevos infectados es dado por . Por ejemplo, si el aislamiento social sube, esto seria representado por un menor valor de . Todavía, por ahora vamos a suponer que es constante en el tiempo.
En cada fecha, una proporción de los infectados se mueve al estado en recuperación. Podemos interpretar irse del estado infectado al estado en recuperación a entrar en aislamiento total, una vez que uno descubre que tiene Covid. Esta diferenciación entre infectados y en recuperación puede representar la idea que personas que tienen Covid y saben que tienen Covid infectan menos que personas que no saben que tienen Covid. En particular, estamos suponiendo que personas que saben que tienen el virus se ponen en aislamiento total y no infectan a nadie.
En cada fecha, una proporción de las personas que están en recuperación dejan este estado, sea por que se han recuperado, sea por que han fallecido.
Una fracción de las personas que tienen Covid fallecen, y una fracción se recuperan.
Percibe que podemos reescribir este sistema como hemos hecho en clase:
Todavía, Julia nos pide que escribamos el sistema en el formato (1)-(5), pero es el mismo sistema por supuesto. Ahora vamos a representar este sistema dinámico utilizando Julia. Primero, definimos los parámetros del modelo:
Los valores específicos de los parámetros vamos a determinar en cada simulación que hagamos más adelante. Ahora definimos las ecuaciones (1)-(5):
En todas simulaciones vamos a simular un período de días (10 meses) y además vamos a suponer que en la fecha inicial había 100 personas infectadas y los demás susceptibles (el caso 100 confirmado en Chile ocurrió en mitad de marzo). Representamos la situación inicial por el vector abajo. El intervalo de tiempo es representado por . Además, vamos siempre usar , para representar la población de Chile de aproximadamente 19 millones de personas.
Vamos a armar el problema utilizando la toolbox de Julia DifferentialEquations.jl (aunque estamos resolviendo una ecuación en diferencias, podemos usar esta toolbox para resolver problemas en tiempo discreto). Este se puede armar con 4 elementos: (i) Una ley de movimiento (la función ); (ii) Un vector de condiciones iniciales ; (iii) Un intervalo de tiempo para las simulaciones (); (iv) parámetros que afectan la función (). Para armar el problema escribimos prob = ODEProblem(f,u0,tspan,par)
. Para resolver el problema escribimos sol = solve(prob,Euler(),dt=1)
, y así la variable sol
almacena varias informaciones sobre la solución.
2. Simulación del modelo base
Primeramente, precisamos definir los parámetros. No voy a hacer nada muy sofisticado, la idea es solamente elegir algunos parámetros que mínimamente hagan algún sentido. Sigue como he elegido los parámetros:
: Vamos a seguir FJ y usar . Esto implica que en promedio, cada persona con Covid permanece en el estado infectada por 5 días (hasta pasar para el estado en recuperación).
: Vamos a seguir FJ y usar . Esto implica que cada persona infectada permanece en recuperación por 10 días, en promedio. Por lo tanto, una persona que tiene Covid lleva en promedio 15 días con el virus en nuestro modelo (5 infectada y 10 en recuperación).
: La tasa de mortalidad en Chile está cerca de 1%. Es decir, el número total de fallecidos dividido por el número de casos confirmados está cerca de 1%. Todavía, es probable que haya mucha subnotificación de casos, y algunos expertos (en mi Twitter =D) estiman que el número total de casos es 5 veces mayor que el número de casos confirmados. Así que voy a usar
: Por supuesto que varia en el tiempo. Por ejemplo, medidas de cuarentena obligatoria deberían reducir . Todavía, estamos suponiendo un constante (vamos a relajar este supuesto más adelante). Podemos tener una idea del valor de mirando datos que dicen cuantas personas los primeros infectados han infectado. Esto es llamado de y es dado por:
Hay alguna variabilidad en diferentes estimaciones de , pero estas sugieren un número cerca de 2. Así usamos que nos da .
Ahora definimos los valores de los parámetros en Julia para el modelo base:
Finalmente podemos armar el problema dado estos parámetros y resolverlo:
Y también graficar la solución para los primeros 5 meses:
3. Aislamiento social
Suponga que reduce 25%. Esto representa cada persona interactuar con 75% de las personas que interactuaba antes. ¿Qué pasa con la cantidad de fallecidos y la duración de la pandemia? Para contestar esta pregunta, todo que tenemos que hacer es resolver el mismo modelo pero con otro valor de .
Ahora vamos graficar la solución con distintos valores de (la línea azul es el usado en el modelo base) para los primeros 8 meses:
4. Aislamiento social "endógeno" I
Ahora vamos a suponer que las personas reaccionan cuando el número de fallecidos sube, quedando más en casa y evitando contacto social. En particular, vamos a suponer que varia en el tiempo y es dado por:
Podemos escribir esta ecuación como
Perciba que si no hay fallecidos () tenemos que , o sea, no cambia. A medida que sube el número de fallecidos las personas empiezan a cambiar su comportamiento y reducir el contacto con otras personas. Ahora, nuestro sistema dinámico es dado por ecuaciones (1)-(5) del modelo base (con reemplazado por ) más ecuación (6). Precisamos entonces reescribir la ley de movimiento para usar en Julia:
También necesitamos ajustar el vector de condiciones iniciales, que ahora debe incluir un valor para . Vamos a suponer que en el período , (el mismo valor que usamos el modelo base):
Finalmente podemos definir y resolver en Julia el problema nuevo:
Y ahora graficamos la solución para los primeros 5 meses:
5. Aislamiento social "endógeno" II
En el modelo anterior, hemos supuesto que las personas reducen contacto con otros de acuerdo al número total de fallecidos. Esto implicaba que cuando terminaba la pandemia, el contacto social aún quedaba más bajo. Ahora vamos a suponer que las personas reaccionan a las personas fallecidas en el día anterior. Queremos suponer también que a medida que el número de fallecidos diarios empieza a caer, las personas pasan a tener más contacto social, aunque el nivel de muertos aun sea alto. Vamos a suponer que es la siguiente función de los nuevos fallecidos :
El término hace con que si nadie más fallece de Covid, converge a su valor de 0.4 pre-pandemia. Perciba que ahora tenemos un sistema de orden 2, pues aparece en ecuación (7). Para transformarlo en un sistema de orden 1 definimos una variable auxiliar y adicionamos la siguiente ecuación al sistema:
Que podemos escribir como (restando de los dos lados). Por lo tanto escribimos el sistema con ecuaciones (1)-(5) más ecuaciones (7) y (8) en Julia:
También necesitamos ajustar el vector de condiciones iniciales, que ahora debe incluir un valor para y para . Vamos a suponer que en el período , como antes. Además, vamos a suponer que (no hubo fallecidos en ):
Finalmente podemos definir y resolver en Julia el problema nuevo:
Y ahora graficamos la solución para los primeros 10 meses:
6. Cuarentena obligatoria temporaria
Ahora vamos a suponer que el gobierno impone una cuarentena obligatoria 50 días después de que haya empezado la pandemia. Todavía, 30 días después esta cuarentena termina. Vamos a suponer que el sin cuarentena es 0.4 y el con cuarentena es :
Esta es la reducción aproximada que deberíamos esperar si 62,5% de las personas se pone en aislamiento total en su casa, con cero interacciones, y los demás siguen trabajando normalmente (por ejemplo, por que trabajan en servicios esenciales). Tenemos que definir esta función para en Julia. Hagámoslo de manera general para una cuarentena que empieza en una fecha y termina días después:
Y ahora podemos definir la ley de movimiento como hicimos antes:
Las condiciones iniciales son como antes:
El problema y la solución en Julia son dados por:
Y una vez más, graficamos todo para los primeros 7 meses:
¿Y si la cuarentena obligatoria empieza antes? ¿Tendremos menos fallecidos de acuerdo con este modelo? Suponga ahora que la cuarentena dura lo mismo pero parte 30 días antes:
Repitiendo los mismos pasos que antes en Julia:
7. Timing óptimo de cuarentena temporaria
Suponga ahora que un planificador puede hacer una cuarentena temporaria de 30 días como la presentada anteriormente y quiere elegir la fecha óptima para empezarla. El objetivo es reducir el número de fallecidos el máximo posible. Podemos simular este modelo varias veces con diferentes fechas iniciales para la cuarentena y ver cual lleva a un menor número total de fallecidos al final de la pandemia. Esto es implementado abajo:
Ahora podemos graficar como el número de fallecidos al final de la pandemia depende de la fecha inicial de la cuarentena: