Scorings

"Scorings" para evaluar predicciones expresadas en términos de CIs

Ya he escrito bastante sobre scorings y métodos de evaluación de predicciones, particularmente las expresadas en términos probabilísticos. Los casos más habituales de estas últimas son el binario (en el que la predicción es una probabilidad en $[0,1]$) y el continuo en el que la predicción es una distribución de probabilidad.

Pero sucede en ocasiones que el predictor viene expresado por un intervalo de confianza (o varios, con niveles de significancia distintos).

CRPS

Hoy toca hablar del CRPS, o continuous ranked probability score, que es un tipo particular de scoring y que se usa para lo que se usan los scorings: comparar modelos y predicciones.

Imaginemos que alguien quiere predecir un determinado valor y que como no es un patán, tiene la gentileza de proporcionar la distribución del valor esperado (p.e., una $N(a, b)$). Resulta que el valor observado es $x_o$.

¿Cómo de buena es esa predicción? En principio, cuando más probable sea $x$ en términos de la función de probabilidad de la predicción, mejor será dicha predicción. Así que $p(x_o)$ —donde $p$ es la función de densidad de la predicción— podría ser un buen scoring. En la práctica se usa una versión de la anterior, $\log(p(x_o))$, pero viene a ser lo mismo.

Log scoring = máxima verosimilitud

Hay dos técnicas en estadística que son una sola. Pero como se usan en contextos aparentemente distintos, tienen una historia diferente, se tratan con un lenguaje particular, posiblemente en asignaturas de distinto año, etc. y nadie se ha molestado en tender puentes, se consideran, prácticamente inconmensurables cuando, en el fondo, son la misma cosa.

Me refiero al llamado log scoring (para seleccionar entre modelos) y el principio de la máxima verosimilitud.

Exámenes probabilísticos

I.

Es habitual tener dos modelos $m_1$ y $m_2$ y querer compararlos. Supongamos que son modelos de clasificación binaria —aunque nada de lo que sigue cambia realmente si son de clasificación categórica en un sentido más amplio—; vamos a suponer también que son modelos probabilísticos, en el sentido de que no producen directamente una predicción sino una probabilidad que puede luego convertirse en una predicción de acuerdo con cierta regla (p.e., predecir la categoría más probable).

AUC = Wilcoxon

Construyo unos datos,

n <- 30
si <- data.frame(res = "si",
    score = rnorm(n, 1, 1))
no <- data.frame(res = "no",
    score = rnorm(n, 0, 1))
dat <- rbind(si, no)

que simulan los scorings de un modelo hipótetico en el que comparo unos casos positivos y otros negativos.

Comparo con el test de Wilcoxon el scoring según la etiqueta y normalizo (adecuadamente):

test <- wilcox.test(score ~ res, data = dat)$statistic
test / n^2

Por otro lado calculo el AUC:

library(pROC)
my_roc <- roc(dat$res, dat$score)
auc(my_roc)

¡Lo mismo!

Motivo: ambas expresiones dan la probabilidad de que el scoring de un sí elegido al azar sea superior al de un no elegido también al azar. Cosa que está superdocumentada en el ancho mundo.

Reglas de "scoring" impropias: un ejemplo

Todo lo que he venido escribiendo sobre reglas de scoring propias vino en el fondo motivado por Damage Caused by Classification Accuracy and Other Discontinuous Improper Accuracy Scoring Rules, una entrada en el blog de Frank Harrell en la que se discute el siguiente caso:

  1. El tipo simula unos datos para ser ajustados mediante una regresión logística (de manera que conoce la verdad subyacente).
  2. Construye varios modelos alternativos para ajustarlos.
  3. Utiliza varios scorings distintos para seleccionar el mejor modelo.

Uno de los scorings elegidos es el accuracy (es decir, el número de observaciones correctamente clasificadas). Pero resulta que este criterio, contra lo que cabría esperar, prefiere un modelo distinto del óptimo.

Scorings: interpolando (y extrapolando) entre el de Brier y el lineal

Rápidamente y para poner el limpio unas cosas que tenía en borrador. El scoring lineal del que me he ocupado en entradas anteriores (p.e., esta o esta) está asociado a un exponente $latex \lambda = 1$ y el de Brier, a $latex \lambda = 2$. Entre ambos (y a la derecha del 2) hay otros scorings posibles.

Una penalización de $latex (1-p)^\lambda$ (véanse las entradas enlazadas más arriba para averiguar a qué me refiero), un predictor tiene un incentivo para modificar su predicción para alcanzar un scoring más alto, salvo en el caso en que $latex \lambda = 2$, en el que le compensa ser lo más sincero posible.

Mejores predictores: un ejemplo (el de Brier)

La entrada de hoy casi me la escribe un comentarista (al que le estoy muy agradecido) ayer. Retomo el tema.

Ayer premiaba a cada predictor con $latex p(X)$, es decir, le daba $latex p$ punticos si ocurría $latex X$ y $latex 1-p$ punticos sin no ocurría. La cosa no cambia si nos alineamos con lo que está escrito por ahí y en lugar de premiar, penalizamos. Es decir, si en lugar de maximizar $latex p(X)$, buscamos minimizar $latex 1 - p(X)$. Nada cambia.

Una de las mil maneras malas de elegir al mejor predictor

El contexto, ayer.

La cosa es que se nos podría ocurrir premiar a los predictores cuando asignan probabilidad alta a los sucesos que ocurrieron y baja a los que no. Por ejemplo, si el evento $latex i$ ocurre, premiar al predictor con $latex p_i$ y si no ocurre, con $latex 1 - p_i$. Escrito de otra manera, con $latex p_i(X_i)$ (que quiere decir la probabilidad correspondiente al evento observado).

Como hay varios eventos, cada predictor se llevaría un premio igual a $latex s = \sum_i p_i(X_i)$ y sería mejor aquél predictor con el mayor valor de $latex s$. Estupendo.

¿Quién será el mejor predictor? ¿Cómo se podrá medir?

He tropezado con un problema nuevo y sobre el que escribiré más estos días. Hoy y aquí solo lo formulo.

Existe una serie de eventos dicotómicos $latex X_i$ que pueden ocurrir o no ocurrir, cada uno de ellos con su probabilidad real (pero desconocida) de ocurrencia $latex q_i$. Antes de que ocurran o no, a dos expertos se les preguntan las probabilidades de ocurrencia de dichos eventos y producen predicciones $latex p_{1i}$ y $latex p_{2i}$.

Cuando falta la variable más importante

Imaginemos que queremos predecir y, que toma valores 0 y 1 a partir de indicios (o variables) x mediante una función (un clasificador) f. Podemos visualizar el error de clasificación usando la matriz

Efectivamente, el error es (perdónenme la notación) B+C. Como estadísticos estamos habituados a tratar de minimizar C mientras mantenemos B lo suficientemente pequeño. Un test es tanto más potente cuanto menor es C.

Pero podemos reescribir B+C como