Introducción al blog "COVID-19 @ Chile"
Los datos nos hablan. Es nuestra responsabilidad utilizar la razón, aislada del ruido de fondo de nuestras emociones y prejuicios, para comprender lo que éstos en realidad nos están diciendo, y no sólo aquello que nosotros quisiéramos oír.
1. Introducción
Esta columna es mi intento de contribuir con un grano de arena al análisis y discusión objetiva de la evolución del COVID-19 en Chile, con un acercamiento fundado en los datos.
En un contexto de fuerte carga política, fake news y juicios acelerados basados en los titulares de las noticias, que se propagan literalmente a la velocidad de la luz por las redes sociales, no es mi objetivo aquí hacer otro juicio de valor o político, ni tampoco hacerme cargo de teorías conspirativas ni manipulativas, pues asumo que en democracia existe la libertad para el escrutinio de la fidelidad de la data que proveen las fuentes oficiales y la capacidad de instituciones y organizaciones serias y reconocidas (por ejemplo universidades y centros de investigación) para ponerla a prueba.
Más bien, haciendo uso del raciocinio interpreto y proyecto la data publicada por las fuentes establecidas, con todas sus posibles fallas y limitaciones metodológicas. Y, en caso de que la data me muestre inconsistencias aparentes, o bien cambios de tendencia relevantes, enunciaré las hipótesis que me parezcan más plausibles para explicar dicho comportamiento, e intentaré confirmar o descartar dichas hipótesis según cómo la misma data nos vaya aclarando las interrogantes a medida que pasa el tiempo. Leeré comentarios y sugerencias para poder enriquecer el análisis, las hipótesis y las proyecciones que haré de la data diaria.
2. Fuentes de datos, noticias e insights relevantes
Datos de muertes DEIS:
Esta columna es mi intento de contribuir con un grano de arena al análisis y discusión objetiva de la evolución del COVID-19 en Chile, con un acercamiento fundado en los datos.
En un contexto de fuerte carga política, fake news y juicios acelerados basados en los titulares de las noticias, que se propagan literalmente a la velocidad de la luz por las redes sociales, no es mi objetivo aquí hacer otro juicio de valor o político, ni tampoco hacerme cargo de teorías conspirativas ni manipulativas, pues asumo que en democracia existe la libertad para el escrutinio de la fidelidad de la data que proveen las fuentes oficiales y la capacidad de instituciones y organizaciones serias y reconocidas (por ejemplo universidades y centros de investigación) para ponerla a prueba.
Más bien, haciendo uso del raciocinio interpreto y proyecto la data publicada por las fuentes establecidas, con todas sus posibles fallas y limitaciones metodológicas. Y, en caso de que la data me muestre inconsistencias aparentes, o bien cambios de tendencia relevantes, enunciaré las hipótesis que me parezcan más plausibles para explicar dicho comportamiento, e intentaré confirmar o descartar dichas hipótesis según cómo la misma data nos vaya aclarando las interrogantes a medida que pasa el tiempo. Leeré comentarios y sugerencias para poder enriquecer el análisis, las hipótesis y las proyecciones que haré de la data diaria.
2. Fuentes de datos, noticias e insights relevantes
Datos de muertes DEIS:
MINSAL:
https://www.worldometers.info/coronavirus/#countries
https://twitter.com/ministeriosalud
Otras fuentes utilizadas para análisis o discusiones ad-hoc se irán mencionando oportunamente.
https://twitter.com/ministeriosalud
https://www.nytimes.com/2020/05/11/world/europe/coronavirus-deaths-moscow.html
https://www.nytimes.com/interactive/2020/04/21/world/coronavirus-missing-deaths.html
https://www.nytimes.com/interactive/2020/04/21/world/coronavirus-missing-deaths.html
cánulas:
Otras fuentes utilizadas para análisis o discusiones ad-hoc se irán mencionando oportunamente.
3. Modelos de pronóstico "causales"
Modelos "causales" y pronóstico de muertes acumuladas
En general los modelos de pronóstico que utilizo aquí son basados en una lógica "causal" inferida del proceso real. Es decir, asumen que un observable "S" que registra un valor S(t-D) el día t-D, causará el valor registrado por otro observable "M" el día t, esto es, D días después. En términos algebraicos: S(t-D) ==> M(t) = p*S(t-D), donde D es un parámetros a ajustar, y p es una variable aleatoria. Ambos D y p están asociados al fenómeno subyacente que estamos modelando. En particular, asumo que p a través del tiempo se comporta como una variable aleatoria con distribución normal:
p ~ N( <p>, Sigma(p) ).
Entonces, el valor esperado de M estará dado por
M(t) ~ <p> * S(t-D)
Donde <p> se calcula a partir de las observaciones reales para un conjunto de posibles valores de D, y luego elijo aquél D que minimiza el cuociente <p> / Sigma(p).
Hasta el 27 de mayo utilicé este modelo de un parámetro, ajustado diariamente, para proyectar muertes acumuladas.
Pronósticos de necesidades de camas UCI y ventiladores
Tanto para pronosticar camas UCI ("U") como ventiladores ("V") estoy utilizando modelos causales como el explicado anteriormente, con una modificación necesaria dada la naturaleza del proceso subyacente: los nuevos sintomáticos del día t-D, es decir, S(t-D), que requieren camas UCI el día t, es decir, los U(t) pacientes UCI del día t, estarán utilizando dichas camas UCI durante un total de I días. Por lo tanto:
U(t) = Sum{i = 1 a I} de p*S(t-D-i+1)
donde p, es decir, la probabilidad de que un nuevo sintomático registrado el día t-D caiga en UCI el día t, D, es decir, el retardo entre estatus "sintomático" y estatus "paciente UCI", e I, es decir, el Nº de días que el paciente UCI permanece en ese estado, son variables a ajustar en base a las observaciones reales.
Nuevamente aquí asumo:
p ~ N( <p>, Sigma(p) )
Con excepción del supuesto de que un sintomático tiene probabilidad p de transformarse en paciente UCI, el resto del modelo es sustancialmente determinístico. Es decir, el modelo asume que todo sintomático que cae en UCI tarda el mismo número de días en caer en UCI desde que es registrado como sintomático, y permanece el mismo número de días I en la UCI. Este modelo podría sofisticarse para aproximarlo mejor al fenómeno real subyacente asumiendo que tanto I como D son a su vez variables aleatorias con ciertas distribuciones de probabilidad. Pero, por un lado, los resultados de la versión simple parecen aceptables por el momento y, por otro, la cantidad de data disponible para hacer ajustes no es suficientemente grande ni suficientemente estable (especialmente por el cambio de metodología de medición de positivos desde el 30 de abril) como para ajustar tantas variables en forma estadísticamente significativa y obtener a su vez un modelo con cierto poder predictivo aceptable.
Para realizar el ajuste de D, I y p podríamos utilizar el método de máxima verosimilitud. En este caso opté por un algoritmo un poco diferente:
Paso 1: El algoritmo calcula para un amplio rango de valores consecutivos de D e I (por ejemplo, D de 1 a 30, I de 1 a 50) el valor que se infiere para p de la ecuación anterior, para cada una de las observaciones de la muestra (estoy trabajando con las 14 últimas observaciones diarias).
Paso 2: Calcula las medias y las desviaciones estándar de p, ("<p>" y "Sigma(p)") sobre la muestra asociada a cada par de valores de D e I.
Paso 3: Selecciona aquél par D, I que minimiza el cuociente entre la desviación estándar de p y la media de p.
Paso 4: Este método entonces nos entrega cada día un nuevo conjunto de parámetros D, I y p para U y otro para V al incorporar una nueva observación. Con una nueva observación el día t el algoritmo automáticamente renueva la muestra eliminando la observación más antigua e incorporando la del día t, y selecciona el par de valores (D, I) que minimiza el cuociente Sigma(p)/<p>.
Paso 5: Luego el algoritmo utiliza estos valores D, I y p obtenidos del ajuste de U y los obtenidos del ajuste de V, para generar un rango para los pronósticos de U y V que cubren desde t+1 hasta el día de t+D:
U(t+j) ~ (<p> +/- 2*Sigma(p))*Sum{i = 1 a I} de S(t-D-i+1) con j = 1..D
ídem con V(t+j)
Pronósticos de muertes diarias
A partir del 28 de mayo introduje un nuevo modelo de pronóstico para poder proyectar muertes diarias. Este modelo, a diferencia de los descritos anteriormente, es estocástico en anticipación. Es decir, la causa de las muertes se explica por sintomáticos a lo largo de un rango de posibles anticipaciones que van desde un día hasta infinito (en la práctica hasta un cierto límite muy por encima de la anticipación media). Estas anticipaciones se distribuyen en función de una distribución de probabilidades Poisson, truncada en cero. Asumo que un paciente el día t puede ser registrado en uno solo de dos estados posibles, ya sea sintomático o fallecido (asumo que los positivos sintomáticos son un mejor predictor de mortalidad que los positivos asintomáticos. No conozco cómo se lleva el proceso de registro de esta data exactamente en terreno, pero es algo fácilmente ajustable en el modelo). En términos algebraicos:
m(t) = p*Sum{i = 1 a límite superior} de [ S(t-i)*Poisson(Lambda, i)/(1-exp(-Lambda)) ]
donde m(t) representa las nuevas muertes registradas el día t, p la probabilidad de que un sintomático muera producto de la enfermedad (o "tasa de letalidad de sintomáticos"), S(t) los nuevos sintomáticos registrado el día t, y Lambda la media de la distribución de probabilidades Poisson.
Análogamente a los modelos anteriores, asumo que
p ~ N( <p>, Sigma(p) ),
y procedo a ajustar los parámetros Lambda y p como describo a continuación:
Paso 1: Para una serie consecutiva de posibles valores de Lamba, que va de 1 a N (por ejemplo, N= 20), procedo a calcular la expresión
Sum{i = 1 a límite superior} de [ S(t-i)*Poisson(Lambda, i)/(1-exp(-Lambda)) ]
Paso 2: Dividiendo el valor real de las muertes del día t por la expresión anterior obtengo el valor de p para el día t.
Paso 3: Repito el paso 2 para las últimas 14 observaciones sobre cada uno de los valores de Lambda.
Paso 4: Calculo, para cada uno de los valores de Lambda, la media de p y su desviación estándar, esto es <p> y Sigma(p) respectivamente, sobre las últimas N observaciones (comencé utilizando N=14 en las primeras proyecciones, pero espero poder ir incrementando N para mejorar la calidad de los modelos en la medida de que la data generada por el MINSAL mantenga consistencia metodológica en el tiempo).
Paso 5: Selecciono el parámetro Lambda "óptimo", es decir, aquél que produce el menor cuociente <p> / Sigma(p).
Paso 6: Diariamente se actualiza la data y el algoritmo automáticamente recalcula Lamba, <p> y Sigma(p) "óptimos" usando la muestra actualizada con la última observación. Estos valores se utilizan entonces para pronosticar las muertes del día t+1:
m(t) ~ (<p> +/- 2*Sigma(p))*
Sum{i = 1 a límite superior} de [ S(t-i)*Poisson(Lambda, i)/(1-exp(-Lambda)) ]
Paso 7: Para poder utilizar el modelo para pronosticar más allá del día t+1 (pronóstico "extendido") necesitamos proyectar sintomáticos más allá del día t, para lo cual utilizamos un simple modelo lineal de proyección (ver explicación en este mismo post).
Ejemplo de ajuste del modelo de pronóstico de muertes diarias el día 30 de mayo:
El 30 de mayo, las últimas 14 observaciones minimizaron el ratio <p>/ Sigma(p) con Lambda = 19. Esto arroja un <p> = 3.89%. Es decir, en promedio sobre las 14 últimas observaciones, el 3.89% de los sintomáticos termina muriendo, y lo hace en un plazo medio de ~ 19 días.
A partir de este modelo de proyección de muertes diarias podemos proyectar también las muertes acumuladas y así tener consistencia entre ambas proyecciones. El desafío aquí es la estimación de la varianza de la proyección. Dado que para proyectar nuevas muertes diarias estamos asumiendo una cierta forma predeterminada de la curva de sintomáticos y además una distribución predeterminada (que se fija una vez que se ajusta el Lamba de la distribución Poisson truncada) de la letalidad de éstos a lo largo del eje de anticipación, hay una sola variable que absorbe toda la componente estocástica en el modelo: la tasa de letalidad de los sintomáticos, "p". Entonces, la varianza de las muertes acumuladas desde el primer pronóstico (es decir, desde el día t+1) hasta el pronóstico número N, "Sigma", se puede aproximar por:
Sigma^2 = ( Sigma(p) / (<p> )^2 * Sum{i = 1 a N} de [ m(t+i)^2 ]
donde m(t+i) es el pronósticos de muertes diarias para el día t+i.
Pronósticos de sintomáticos para pronósticos "extendidos"
Para poder extender nuestros pronósticos de ciertas variables (necesidad de camas UCI o muertes diarias, por ejemplo) más allá de lo que permite la relación causal entre sintomáticos observados y las variables que queremos proyectar estamos obligados a inventar observaciones futuras de sintomáticos sobre las cuales poder basar un pronóstico "extendido" de las variables que queremos proyectar.
a) Metodología de proyección durante el pre-peak de sintomáticos
He optado por realizar una proyección lineal de los sintomáticos, usando para eso las últimas 15 observaciones reales. Además, he introducido una fecha (parámetro ajustable) para el hipotético "peak" de sintomáticos en períodos de cuarentena, que refleja el día en que comienza la caída de la tasa de contagios producida por la cuarentena. Para efectos de simplicidad he supuesto que la proyección de nuevos sintomáticos es simétrica en torno al peak, y termina el día que termina la cuarentena.
b) Metodología en peak
Durante el peak asumo que los próximos días tendrán un Nº de sintomáticos igual al promedio de las últimas 10 observaciones reales, hasta el día de término del peak (parámetro). Luego de esa fecha, los sintomáticos empiezan a caer en forma diaria hasta llegar a un valor "residual" (parámetro; por ejemplo, un 10% del valor promedio durante el peak), en un número "N" de días (parámetro).
La caída de los sintomáticos post-peak puede tomar varias formas, siendo la más simple la lineal, como fue el caso de Italia, pero debiéramos también simular con una caída más que lineal, como fue el caso de Alemania. La forma de la curva de evolución de sintomáticos post-peak dependerá mucho de las políticas adoptadas por las autoridades. Mientras más rápido cae el Nº de sintomáticos, más muertes podremos evitar en el corto plazo. Nada garantiza todavía que esas muertes no sucedan igual más adelante: en su estado natural la pandemia no se detendría hasta que alcanzáramos "inmunidad de rebaño", lo que de acuerdo a lo que se estima, requeriría infectar al menos a un 35% de la población -en el mejor de los casos-, esto es, sobre 6.5 millones de personas, matando a alrededor de un 0.5% de esos infectados, esto es 33.000 personas. No obstante, si pudiésemos postergar esas muertes tomando medidas de control inteligentes para reducir el riesgo de contagio especialmente de los segmentos más vulnerables, podríamos terminar evitando una parte importante de esas muertes si es que en ese lapso el resto de los contagiosos superan la enfermedad y dejan de ser contagiosos, o si en ese lapso podemos contar con una vacuna o un tratamiento que evite la muerte.
Comentarios