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:
Andrew Gelman nos invita a no usar más el test de Wilcoxon.
El test de Wilcoxon reemplaza las observaciones obtenidas por sus rangos y construye un estadístico basado en estos últimos. Eso implica descartar información pero puede ayudar a ganar robustez en situaciones en que los datos se desvíen de la normalidad.
¿Qué sugiere Gelman? Que si realmente estamos dispuestos a descartar información, en lugar de reemplazar las observaciones originales por sus rangos, usemos z-scores —los cuantiles de la normal estándar correspondientes a los cuantiles muestrales—, y usemos la teoría normal (en su doble acepción).