¿Se puede calcular la letalidad (del coronavirus, digamos) sin el análisis de la supervivencia?

Pues no lo sé. Pero con él, sí, según Methods for estimating the case fatality ratio for a novel, emerging infectious disease:

During the course of an epidemic of a potentially fatal disease, it is important that the case fatality ratio be well estimated. The authors propose a novel method for doing so based on the Kaplan-Meier survival procedure, jointly considering two outcomes (death and recovery), and evaluate its performance by using data from the 2003 epidemic of severe acute respiratory syndrome in Hong Kong, People’s Republic of China. They compare this estimate obtained at various points in the epidemic with the case fatality ratio eventually observed; with two commonly quoted, naïve estimates derived from cumulative incidence and mortality statistics at single time points; and with estimates in which a parametric mixture model is used. They demonstrate the importance of patient characteristics regarding outcome by analyzing subgroups defined by age at admission to the hospital.

Hospitales y camas en la Comunidad de Madrid

[Enhorabuena, pienses lo que pienses, en esta entrada vas a encontrar argumentos que reforzarán tus prioris.]

Por un lado, nos cuentan que los políticos que han gobernado la CM (Comunidad de Madrid, en lo que sigue) han desmantelado la sanidad (particularmente, la pública). Por otro, jamás me ha sucedido ver un cráter y que me digan: allí hubo un hospital. Bueno, sí, el hospital Puerta de Hierro está abandonado pero, parece ser, fue trasladado de Madrid a Majadahonda.

Casos de coronavirus en Madrid provincia: un modelo un poco menos crudo basado en la mortalidad (II)

[Nota: el código relevante sigue estando en GitHub. No es EL código sino UN código que sugiere todos los cambios que se te puedan ocurrir. Entre otras cosas, ilustra cómo de dependientes son los resultados de la formulación del modelo, cosa muchas veces obviada.]

Continúo con la entrada de ayer, que contenía más errores que información útil respecto a objetivos y métodos.

Los objetivos del análisis son los de obtener una estimación del número de casos activos de coronavirus en la provincia de Madrid. La de los casos oficiales tiene muchos sesgos por culpa de los distintos criterios seguidos para determinarlos a lo largo del tiempo. Sin embargo, es posible que los fallecimientos debidos al coronavirus, antes al menos de que se extienda el triaje de guerra, son más fiables. Eso sí, la conexión entre unos (casos) y otros (defunciones) depende de una tasa de letalidad desconocida. El objetivo del modelo es complementar la información de los casos notificados con la de defunciones.

Casos de coronavirus en Madrid provincia: un modelo muy crudo basado en la mortalidad

R

[Nota: si no sabes interpretar las hipótesis embebidas en el código que publico, que operan como enormes caveats, no hagas caso en absoluto a los resultados. He publicado esto para ver si otros que saben más que yo lo pulen y consiguen un modelo más razonable usándolo tal vez, ojalá, como núcleo.]

[Edición: He subido el código a GitHub.]

[El código de esta sección y los resultados contienen errores de bulto; consúltese el código de GitHub.]

k-vecinos + lmer

El de los k-vecinos es uno de mis métodos favoritos de modelización. Al menos, teóricamente: luego, en la práctica, es complicado construir una función de distancias decente. Pero tiene la ventaja indiscutible de ser tremendamente local: las predicciones para una observación concreta dependen únicamente de su entorno.

lme4::lmer (y sus derivados) es ya casi la lente a través de la que imagino cómo operan las variables dentro de un modelo. Desafortunadamente, es un modelo global y no gestiona particularmente bien las interacciones, cuando son muchas y complejas.

lme4 + simulate

Esta entrada es casi una referencia para mí. Cada vez tiro más de lme4 en mis modelos y en uno en concreto que tengo entre manos toca simular escenarios. Para lo cual, simulate.merMod.

Véamoslo en funcionamiento. Primero, datos (ANOVA-style) y el modelo que piden a gritos:

library(plyr)
library(lme4)

a <- c(0,0,0, -1, -1, 1, 1, -2, 2)
factors <- letters[1:length(a)]

datos <- ldply(1:100, function(i){
    data.frame(x = factors, y = a + rnorm(length(a)))
})
modelo <- lmer(y ~ (1 | x), data = datos)

El resumen del modelo está niquelado:

summary(modelo)

# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ (1 | x)
# Data: datos
#
# REML criterion at convergence: 2560.3
#
# Scaled residuals:
#     Min      1Q  Median      3Q     Max
# -3.6798 -0.6442 -0.0288  0.6446  3.3582
#
# Random effects:
#     Groups   Name        Variance Std.Dev.
# x        (Intercept) 1.5197   1.2328
# Residual             0.9582   0.9789
# Number of obs: 900, groups:  x, 9
#
# Fixed effects:
#     Estimate Std. Error t value
# (Intercept) -0.009334   0.412212  -0.023

En particular,

Dos escenarios mutuamente incompatibles: extinción o cronificación

El primero es el chino. Es el que se aplicó a otras crisis víricas (SARS, etc.), a la viruela y a la polio. Consiste en aplicar medidas drásticas hasta que el virus desaparezca. De hecho, hay provincias en china que llegaron a tener un número importante de casos,

pero donde ya no quedan casos activos:

El otro es el escenario RU: el virus va a seguir entre nosotros y todos, en algún momento u otro vamos a pasar por él (o, más propiamente, a la inversa). En cuyo caso:

Interacciones y selección de modelos

Desafortunadamente, el concepto de interacción, muy habitual en modelización estadística, no ha penetrado la literatura del llamado ML. Esencialmente, el concepto de interacción recoge el hecho de que un fenómeno puede tener un efecto distinto en subpoblaciones distintas que se identifican por un nivel en una variable categórica.

El modelo lineal clásico,

$$ y \sim x_1 + x_2 + \dots$$

no tiene en cuenta las interacciones (aunque extensiones suyas, sí, por supuesto).

La causa de muerte no es la causa de muerte

[Este es un aviso para todos aquellos que depositan una excesiva fe en lo que nos cuenta el INE.]

La causa de muerte no es la causa de muerte. Al menos, necesariamente. Lo que el INE llama causa de muerte es una imagen distorsionada de la causa de muerte por culpa de un embudo administrativo.

Comiendo con unos epidemiólogos en el ISCIII hace un tiempo, me decían, con cierta envidia, cómo en otros países como Dinamarca, se registraban hasta ocho causas de muerte: la última, la concomitante, la… Y bromeaban diciendo que, al final, todos nos morimos de parada cardiorrespiratoria.

Piedrecitas y pepitas de oro

Este buscador de oro busca pepitas en su tramo de río. El río arrastra piedrecitas, muchas piedrecitas, y pepitas de oro, pocas pepitas de oro.

Tiene un artilugio que toma barro del río y que hace lo siguiente:

  • Descarta casi todas las piedrecitas (y el resto las mete en una caja)
  • Detecta casi todas las pepitas (y las mete en la misma caja)

Al final del día, ¿qué encontrará en la caja?