Notas (5): Crítica a las nubes de palabras, GAMLSS, paradojas estadísticas y más

Word clouds considered harmful. Un día aparecieron y a todos nos parecieron estupendos. Pero hay que madurar y admitirlo: tienen más desventajas que ventajas. Usan la frecuencia como proxy del significado y, además, no se sabe muy bien si la representan en términos de longitud o de área. Además de la influencia confundidora del número de letras de los términos. A better way to fill in those missing bubbles in the standardized test. Sugiere algo que me parece muy razonable: en un examen tipo test asignar el valor esperado de la respuesta al azar a las preguntas no respondidas. Me he vuelto fan de los GAMLSS. Están a la altura de los tiempos. Supongo que no tendrán éxito hasta que queden obsoletos por algo mejor que venga después. Sabemos que el AUC es lo mismo que el test de Wilcoxon. Pero, además, Frank Harrell explora la relación entre el test de Wilcoxon y la regresión logística ordinal en Equivalence of Wilcoxon Statistic and Proportional Odds Model. Resulta que el test de Wilcoxon emerge de manera natural al ajustar uno de esos modelos sin covariables (y ~ 1 en notación de fórmula de R). No sé si aquellos cuyo trabajo consiste en maquillar AUCs le pueden sacar punta a esto. Desde primeros principios, podría argumentarse que la tasa metabólica de los animales (calor emitido en reposo) debería guardar una relación del tipo $B \propto M^\alpha$, donde $M$ es la masa y $\alpha = 2/3$. Pero empíricamente, parece que $\alpha$ está más próxima a $3/4$. Aquí se reexamina la cuestión. La conclusión de X explains Z% of the variance in Y es que el concepto es, en general, mucho más confuso de lo que parece. Haz depender $Y$ de $X_1$ y $X_2$ que no son independientes y… A Andrew Gelman no le gustan los mercados de predicciones y, por tanto, no deja de encontrarles pegas.

26 de enero de 2026 · Carlos J. Gil Bellosta

Una cota superior para el nivel del AUC alcanzable en cierto tipo de modelos

Tengo dos entradas de hace unos meses sobre el AUC, esta y esta, en las que me voy a apoyar para resolver el problema de encontrar una cota superior realista para el AUC en cierto tipo de problemas. Alguien dirá que el AUC tiene una cota superior, el 1, que se obtiene en el caso de ciencia ficción sabido de todos. De hecho, 7 o 15 son mejores cotas porque además de acotar, no confunden y hacen pensar que es realista alcanzarlas. ...

4 de noviembre de 2025 · Carlos J. Gil Bellosta

Más sobre la relación entre la dispersión de las probabilidades y el AUC en modelos bien calibrados

Esta entrada está relacionada —aunque no es estrictamente una continuación— de la que escribí hace una semana sobre el mismo asunto. El punto de partida es el mismo: un modelo de clasificación binaria bien calibrado. Eso significa que si el modelo predice $p$ para el sujeto $i$, entonces $Y_i \sim B(p)$. Supongamos que tenemos una población dada, aplicamos el modelo y obtenemos una distribución $f(p)$ para las probabilidades predichas. Entonces, la distribución de: ...

24 de abril de 2025 · Carlos J. Gil Bellosta

Una serie de apuntes sobre modelos estadísticos

Andrew Gelman se pregunta periódicamente por la obsesión generalizada en involucrar a Jesucristo con los modelos lineales. Versión corta: si el año se modela tal cual (p.e., 2025), el término independiente nos aporta información sobre el hipotético estado de las cosas en el año en el que nació. En general, es conveniente parametrizar las variables de manera que el término independiente de un GLM tenga un mínimo contenido informativo. Un artículo muy raro de Manuel Hidalgo en NadaEsGratis que incluye todas las palabras que hacen que dejes de leer algo: cuántico, entropía, desorden (como sinónimo de incertidumbre), etc. Lo relevante de la cosa no parece ser tanto lo que cuenta (ya sabemos que hay incertidumbre en el mundo, ya sabemos que nuestra visión del mundo está marcada por la incertidumbre, etc.) sino poder constatar que a ciertos segmentos de la población hay que recordarles estas cuestiones y que puede que incluso se sorprendan cuando se las cuentan. ...

22 de abril de 2025 · Carlos J. Gil Bellosta

Sobre la relación entre la dispersión de las probabilidades y el AUC en modelos bien calibrados

Supongamos que estamos construyendo un modelo de clasificación binaria. Supongamos que está bien calibrado, es decir, que cuando predice una probabilidad $p$ de éxito para un sujeto $i$, entonces es cierto que $Y_i \sim \text{Bernoulli(p)}$. Por otro lado, pensemos en el AUC, que es muchas cosas, pero entre ellas, $$ AUC=Pr(p_i >p_j | Y_i =1,Y_j =0),$$ es decir, la probabilidad de que, tomando dos sujetos al azar, uno positivo, el $i$ y otro negativo, el $j$, $p_i > p_j$. ...

17 de abril de 2025 · Carlos J. Gil Bellosta

Matrices de confusión, sensibilidad, especificidad, curva ROC, AUC y todas esas cosas

Esta entrada es una breve introducción a los conceptos indicados en el título. Está motivada por una pregunta que se formuló en Twitter acerca de la existencia o no de lo que voy a escribir en español y a que ninguna de las respuestas aportadas me satisfizo. Todos esos conceptos hacen referencia al estudio de la bondad de un modelo de clasificación (es decir, un modelo que trata de predecir una etiqueta (o una variable categórica, si se quiere) a partir de ciertos datos). Comenzaré por una descripción exenta de esos conceptos y terminaré con una discusión desde la perspectiva de su aplicación práctica que, espero, sirva para ponerlos en su lugar. ...

21 de junio de 2022 · Carlos J. Gil Bellosta

Cotas superiores para el AUC

El AUC tiene una cota superior de 1. Concedido. Pero alguien se quejó de que el AUC = 0.71 que aparece aquí era bajo. Se ve que ignora esto. Donde está todo tan bien contado que no merece la pena tratar de reproducirlo o resumirlo aquí.

24 de mayo de 2019 · Carlos J. Gil Bellosta

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. ...

11 de febrero de 2019 · Carlos J. Gil Bellosta

El AUC es la probabilidad de que...

Voy a constuir unos datos artificiales y un modelo de clasificación binaria, library(mgcv) library(ggplot2) library(pROC) n <- 10000 dat <- gamSim(1, n=n, dist="binary", scale=.33) lr.fit <- gam(y ~ s(x0, bs="cr") + s(x1, bs="cr") + s(x2, bs="cr") + s(x3, bs="cr"), family=binomial, data=dat, method="REML") y luego (mal hecho: debería hacerlo sobre un conjunto de validación distinto) a obtener las predicciones para las observaciones res <- data.frame(real = factor(dat$y), prob = predict(lr.fit, type = "response")) que ggplot(res, aes(x=prob, fill=real)) + geom_density(alpha=.3) representa así: Me pregunto si el clasificador construido es bueno. Para lo cual voy a construir la curva ROC con sies <- res[res$real == "1",] noes <- res[res$real == "0",] scores <- 0:100 / 100 q.si <- ecdf(sies$prob)(scores) q.no <- ecdf(noes$prob)(scores) plot(q.si, q.no, type = "l") que produce ...

29 de marzo de 2016 · Carlos J. Gil Bellosta