El modelo de Poisson es razonablemente robusto (pero atención a lo de "razonablemente")

Una de las consencuencias del coronavirus es que vamos a tener que replantearnos lo que significa ajustar series temporales. Es decir, comenzar a ajustar series temporales y no repetir la consabida teoría que subyace a los modelos ARIMA simplemente porque es guay.

También tendremos que replantearnos qué hacer con los outliers que la pandemia va dejando tras de sí. Y tratar de hacerlo más elegantemente que cierta gente, por supuesto. En particular, habrá que ver cuál y cómo es el efecto de los outliers en determinados modelos. En particular, en esos en los que yo más trabajo últimamente, que son los de Poisson.

Donde casi todo son buenas noticias, la verdad. Gracias a la función de enlace, el modelo de Poisson está prácticamente blindado frente a cierto tipo de outliers. Particularmente, (aunque no exclusivamente) cuando:

  • Los outliers lo son por exceso y o por un defecto no particularmente grande.
  • Los valores medios son razonablemente altos.

En tal caso, el modelo de Poisson

glm(y ~ x1 + x2 + ..., family = poisson())

no es muy distinto del modelo lineal estándar

lm(log(y) ~ x1 + x2 + ...)

como ponen en evidencia tanto los consabidos teoremas de aproximación a la normal de la Poisson (haced qqnorm(rpois(1000, 100))) como por el siguiente ejemplo numérico:

n <- 100
a <- 7
b <- 1
x <- runif(n, -1, 1)
y <- sapply(x, function(p)
  rpois(1, exp(a +  b * p)))
coef(glm(y ~ x, family = poisson()))
coef(lm(log(y) ~ x))

Como consecuencia, para procesos con conteos relativamente altos (o, al menos, para ellos), el logaritmo protege de los excesos.