Inferencia para la integración de Runge-Kutta con Pymc3
Imagen de Brian Asare Los métodos de aprendizaje automático han jugado un papel esencial en la investigación epidemiológica. Los científicos de datos interesados en este dominio tienen suerte, ya que nunca tienen que buscar una solución basada en datos desde cero. Por el contrario, se guiarán por algunos modelos matemáticos bien estudiados. Esta publicación explica cómo usar Pymc3, un paquete de Python para el modelado estadístico bayesiano, para construir una inferencia bayesiana para predecir la propagación de la enfermedad informada por el modelo epidemiológico más básico, por ejemplo, un modelo SIR. La implementación también se puede realizar mediante la probabilidad de TensorFlow con una implementación similar. Consulte el cuaderno para obtener los códigos Python completos. El modelo SIR es probablemente el modelo compartimental más simple y muchas variaciones se derivan de él. Describe la dinámica de tres compartimentos básicos en toda la población: individuos susceptibles, individuos infecciosos e individuos eliminados, como indica el nombre del modelo. El modelo merece su capítulo y este post no profundizaría en los detalles bien explicados en varias referencias. En su lugar, solo daremos una breve introducción en esta sección. El modelo SIR da la dinámica de los diferentes grupos de población con una ecuación diferencial ordinaria (EDO), suponiendo que toda la población es una N constante, ignorando la tasa de natalidad y mortalidad durante la epidemia.Imagen del autor: modelo SIR Los dos parámetros beta y gamma representan la tasa de infección y la tasa de eliminación. Su relación es el número básico de reproducción cuyo valor determina el comportamiento asintótico de la epidemia. La dinámica de las epidemias descritas por el modelo SIR se determinará una vez que se proporcionen los dos parámetros. El conjunto de datos utilizado en la siguiente modelización es un conjunto de datos sintético generado a partir de una simulación simple con el modelo SIR. Contiene las poblaciones de individuos susceptibles, infecciosos y eliminados durante los primeros 30 días de una epidemia. La población total es 10000 y había 10 personas infecciosas, 9990 personas susceptibles y 0 personas eliminadas inicialmente. Nos gustaría entrenar un modelo y predecir la epidemia en los próximos 30 días. Para mostrar el poder de la siguiente modelización, solo se consideran 100 puntos de datos.Imagen del autor: conjunto de datos de poblaciones SIR
Objetivo de la modelización
El modelo compartimental debe guiar el método de aprendizaje automático para modelar el desarrollo de epidemias. Además, con un estado inicial dado, las futuras poblaciones de grupos SIR se pueden obtener si conocemos los valores de beta y gamma. Por lo tanto, el objetivo principal de la modelización se convierte en aprender los dos parámetros del modelo SIR. Al mismo tiempo, la incertidumbre es inevitable cuando registramos las poblaciones de diferentes grupos. Por lo tanto, construiríamos una red de la dinámica SIR y la inferencia bayesiana para conocer la posterior de los dos parámetros concernientes.
Método de Runge-Kutta
Dado por una ODE, el modelo SIR debe ser discretizado antes de ser puesto en la red. Aquí, utilizaremos la clásica integración de Runge-Kutta de cuarto orden, un método numérico que involucra aproximaciones sucesivas para la resolución de ecuaciones diferenciales con la forma de dy/dx=f(x,y).Imagen del autor: Runge-Kutta de cuarto orden
Inferencia
Establecer los priores de beta y gamma como distribuciones uniformes en [0,1];Con el estado inicial dado de SIR (indicado por y_0), use el método de Runge-Kutta para obtener la secuencia de estados en instancias futuras. Agregue a cada instancia un ruido de Poisson en términos de términos. Realice una inferencia bayesiana para obtener la parte posterior de beta y gamma. No proporcionaremos un código detallado en esta publicación. Se invita a los lectores a leer el cuaderno y todas las preguntas son bienvenidas. Entrenados en los 100 puntos de datos, los parámetros convergen a distribuciones normales centradas en 0,6 y 0,3.Imagen del autor: gráfico de trazas de parámetros. Así predeciríamos la población SIR en los siguientes 30 días. Podemos ver en la gráfica que la epidemia tiende a equilibrarse asintóticamente. Afortunadamente, casi no vemos más casos nuevos al final.Imagen del autor: dinámica de la epidemia 30 días después En esta publicación, conectamos un modelo matemático en una inferencia bayesiana y lo aplicamos al caso de uso de propagación de enfermedades infecciosas. Un pequeño conjunto de datos parece ser suficiente para la convergencia de parámetros cuando el modelo está informado por algún conocimiento previo. Finalmente, nos gustaría señalar que el conjunto de datos sintético es solo un caso ideal con algunas simplificaciones irreales. Un próximo paso interesante sería probar el modelo en un conjunto de datos real, por ejemplo, casos de covid en las grandes ciudades.