Estadística

Este es uno de los pecados estadísticos que menos indulgencia suscita

INE, Proyecciones de Población 2020-2070 (enlace)

INE, Proyecciones de Población 2020-2070 (enlace)

Nota para desavisados: ¿veis cómo se comporta la varianza antes/después?

Otra nota: la publicación de las proyecciones de población del INE es casi todos los años motivo de recochineo bloguero. Buscad (p.e., aquí) y encontraréis.

Nota final: Sí, sí, una proyección es lo que ocurriría si se mantuvieran las tendencias actuales. Eso os dirán. Precisamente por eso, esta entrada y el gráfico de más arriba.

Una diferencia teórica importante entre los lm y el resto de los glm

[Este es un extracto, una píldora atómica, de mi charla del otro día sobre el modelo de Poisson y al sobredispersión.]

Aunque me guste expresar el modelo lineal de la forma

$$ y_i \sim N(a_0 + \sum_j a_j x_{ij}, \sigma_i)$$

hoy, para lo que sigue, es más conveniente la representación tradicional

$$ y_i = a_0 + \sum_j a_j x_{ij} + \epsilon_i$$

donde si no sabes lo que es cada cosa, más vale que no sigas leyendo.

Charla sobre cosas que no te han contado sobre le modelo de Poisson (y de paso, el logístico)

Este es un anuncio de una charla que daré este viernes (2020-09-18) dentro del congreso virtual EncuentRos en la fase R. Ni que decir tiene que los detalles logísticos pueden consultarse en el enlace anterior.

Hablaré de cuestiones relativas al modelo de Possion (gran parte de las cuales pueden trasladarse también al logístico) de las que se habla poco y sobre las que la teoría que uno tropieza por ahí no es del todo clara pero que se manifiestan claramente en datos como los de la monitorización de la mortalidad, que será discutida también de pasada.

Infradispersión en la logística

Le he dado muchas vueltas en estos últimos tiempos al asunto de la sobredispersión, particularmente en dos tipos de modelos: Poisson y logístico. Así que, aunque solo sea por proximidad semántica, se me quedan pegados ejemplos y casos de ese fenómeno mucho menos frecuente que es el de la infradispersión.

Un ejemplo ilustrativo del fenómeno que se me ocurrió el otro día era

pero hace nada, ese señor lleno de paz y amor que es Putin, nos ha regalado otro:

Recordatorio: no olvidéis restar los fallecimientos atribuibles al calor en la estimación del efecto de la "segunda ola"

La estimación de la mortalidad atribuible a la gripe estacional (que no, que no se hace consultando la causa de muerte que consignan los médicos medio al buen tuntún por motivos administrativos y que luego recoge el INE, como parece que dan a entender estos beneméritos verificadores para la confusión de quienes den su palabra por buena) tiene una complicación sustancial: ocurre simultánea y co-casualmente con el frío, que incrementa las defunciones por motivos otros. En términos estadísticos, es un problema de práctica colinealidad entre dos regresores cuyos coeficientes miden el impacto de la gripe y el frío respectivamente.

De "la fiebre amarilla de Cádiz y pueblos comarcanos" de 1800

Esta entrada está motivada, en última instancia, por la lectura del libro (muy recomendable, por otra parte), The Art of Statistics: Learning From Data, de David Spiegelhalter. Sus muchas virtudes hacen, por contraste, que relumbre particularmente un defecto característico de toda esa creciente literatura sobre el tema: su aburridor anglocentrismo. Que si el médico devenido asesino en serie, que si los cirujanos de Bristol, que si el manidísimo John Snow (que esta vez, en este libro, de casualidad, no aparece),…

Este vídeo es un resumen en 15 minutos de años de entradas de este blog, solo que contado todo al revés

El vídeo es este:

  • Si tomas cada frase y le pones un NO delante, tienes un esquema de un sílabo para un curso de capacitación estadística básica.
  • Por algún motivo, cuando vi el vídeo por primera vez, la única palabra que me venía a la mente era: pornográfico.
  • Para conocer más sobre el mundo al que se refiere el vídeo, recomiendo El oscuro mundo de los ’tipsters’, los pronosticadores que ejercen de gancho de las casas de apuestas (un artículo al que solo le pongo el pero de haber sido redactado bajo la ilusión del solucionismo regulatorio).
  • Hay un filón de trabajo cuantitativo y pro bono que podría hacerse (atención al uso del impersonal) al respecto para contrarrestar (¿es posible?) el impacto de toda esta gente.
  • La gente está fatal.

Vedlo. Es alucinante.

Contrariamente a lo que creía recordar, "Hot deck" != LOCF

Imputación (que es algo en lo que muy a regañadientes estoy trabajando estos días).

Si de verdad tienes que imputar datos en una tabla (y solo en ese caso), solo hay un criterio: construye un modelo para predecir los valores faltantes en función del resto y reemplaza el NA por la su predicción.

El modelo puede ser tan tonto como

lm(my_col ~ 1, na.rm = T)

que resulta en la popular estrategia de reemplazar los NAs por la media del resto de las observaciones. Cambiando lm por otras cosas funciones más molonas y la fórmula por otras más complejas en que intervengan otras columnas se obtienen métodos más potentes. Se pueden usar GAMs (como en mtsdi) o random forests (como en missForest), pero la idea está clara. Es solo la naturaleza del problema la que nos invita a decantarnos por una u otra opción.

Misma p, distinto n, luego...

Tres situaciones. La primera:

n <- 20
y <- 15
test <- prop.test(y, n, p = .5)
test$p.value
# [1] 0.04417134
test$conf.int
# 0.5058845 0.9040674

La segunda:

n <- 200
y <- 115
test <- prop.test(y, n, p = 0.5)
test$p.value
#[1] 0.04030497
test$conf.int
# 0.5032062 0.6438648

Y la tercera:

n <- 2000
y <- 1046
test <- prop.test(y, n, p = 0.5)
test$p.value
#[1] 0.0418688
test$conf.int
# 0.5008370 0.5450738

En resumen:

  • mismo problema
  • distintos tamaños muestrales
  • mismo p-valor (aproximadamente)
  • distintos estimadores
  • distintos intervalos de confianza

La pregunta: ¿qué circunstancia es más favorable? Una respuesta, aquí.

Modelos como "hechos estilizados"

El otro día, una remesa de nuevos datos rompió un modelo (no mío) en producción. El modelo suponía que la forma de los datos era muy concreta y estos se rebelaron.

Un amigo me preguntó por qué se usaba un modelo paramétrico tan simple. El motivo no es otro que la búsqueda de hechos estilizados, resúmenes a muy alto nivel de la realidad que quepan y queden bien en un tuit. Aunque luego, su parecido con la realidad sea nulo.

Un recordatorio: MOMOCalor está "up and running"

Por desgracia, MoMo ya no exige presentación. Pero con los termómetros acariciando los 40º no está mal recordar la existencia de MoMoCalor, su hermanito, que trata atribuir mortalidad a los excesos de temperaturas.

¿Por qué es particularmente importante MoMoCalor hoy? Recuérdese que MoMo estima, simplemente, desviaciones de mortalidad con respecto a la que sería la normal en una fecha determinada. Cuando hay una epidemia o una ola de calor, la mortalidad crece y MoMo lo detecta. Pero cuando hay una epidemia y una ola de calor simultáneas, MoMo es incapaz de atribuir muertos las causas anómalas subyacentes. Pero MoMoCalor sí.

Por supuesto que tengo más variables que observaciones... ¿y?

He intentado replicar los resultados de la entrada de ayer con GAM (vía mgcv) así (véase el enlace anterior para la definición de los datos):

library(mgcv)
modelo_gam <- gam(
    y ~ x + s(id, bs = "re"),
    data = datos,
    method = "REML",
    family = "poisson")

Y nada:

Error in gam(y ~ x + s(id, bs = "re"), data = datos, method = "REML", : Model has more coefficients than data

Sí, ya sé que tengo más variables que observaciones. Pero, ¿no es para eso que estoy usando efectos aleatorios?

Aún más sobre la presunta sobredispersión en modelos de Poisson

[Esta entrada continúa el ciclo al que he dedicado esta y esta otra entradas durante los últimos días.]

Las dos entradas anteriores de la serie se resumen en que:

  • el modelo de Poisson no recoge todas las fuentes de error que pueden existir en los datos y que
  • las soluciones al uso (como, p.e., usar modelos quasi-Poisson) son puros remiendos.

Si el error en el modelo de Poisson entra (también) en el término lineal, podemos modelar ese error explícitamente. Podría haber implementado la solución INLA o Stan del problema, pero me conformaré con la lme4. Primero, generaré los datos (igual que en las entradas anteriores) y añadiré una variable categórica que identifique cada registro: