Posts

La ilusión de progreso (en problemas de clasificación)

David Hand, en Classifier Technology and the Illusion of Progress, resume el asunto así:

A great many tools have been developed for supervised classification, ranging from early methods such as linear discriminant analysis through to modern developments such as neural networks and support vector machines. A large number of comparative studies have been conducted in attempts to establish the relative superiority of these methods. This paper argues that these comparisons often fail to take into account important aspects of real problems, so that the apparent superiority of more sophisticated methods may be something of an illusion. In particular, simple methods typically yield performance almost as good as more sophisticated methods, to the extent that the difference in performance may be swamped by other sources of uncertainty that generally are not considered in the classical supervised classification paradigm.

¿Lo racional? Que jueguen a la lotería los demás

Yo mismo, lo confieso, he sido uno de los cenizos participantes en esa habitual letanía prenavideña sobre lo conveniente o no de comprar lotería en las que tanto se apela a la racionalidad. En una u otra dirección. Véase, cosecha de la campaña del año pasado, esto, esto, o, más tangencialmente, esto (y sus enlaces).

Cuando lo verdaderamente racional es hacer por que compren lotería, precisamente, los demás.

El fraude de Lemús aún adorna las memorias del CSIC

Un tal Lemús, del CSIC, hizo avanzar su carrera científica inventando datos hasta que lo pillaron. Hasta 13 retracciones lleva el pillo. En particular esta.

Que es relevante porque aún adorna la memoria del CSIC de 2010 (pág. 256) y suma a la lista de méritos (sección de publicaciones de alto impacto) de la institución en tal año.

¿Nadie edita ese tipo de cosas? ¿Ni por principios básicos de higiene?

Redes sin neutralidad de red que funcionan tan ricamente

Existen muchas redes de distribución. La red vial es una de ellas. La de pan, leche y huevos, otra. La de electricidad. La telefónica. Y la de paquetes de datos internet.

Prácticamente ninguna se rige por principios de neutralidad de red. En la viaria, no es solo que los vehículos no puedan circular por donde y cuando quieran, sino que existen restricciones como el carril bus, el Bus Vao, lo que se perpetra diariamente en la Gran Vía de Madrid durante el periodo navideño, etc. y se aplican excepciones para los vehículos eléctricos y los conducidos por gentes con habilidades distintas de otros o como quiera que se los denomine el año en que leas esto. Y se hace para que el tráfico sea más fluido y en pretendido beneficio de todos, no para lo contrario.

Mezcolanza: de INLA a GAM pasando por la frenología

Combino en uno cuatro asuntos demasiado prolijos para Twitter pero sobre los que no sé lo suficiente como para desarrollarlos en una entrada entera.

El paquete stpp de R tiene muy buena pinta para el análisis de conteos espacio-temporales. Se recomienda leer el artículo que lo describe. Para el tipo de problemas que plantea, se me habría ocurrido tirar de INLA. Desafortunadamente, a los autores del artículo no se les ocurrió compararlos. Cosas de la academia.

Sobre el problema de las martingalas: ¿cuántos sabíais la respuesta?

Pues no se sabe bien. Además, habrá quién pudiéndola haber averiguado, prefirió dejarse llevar por la intuición y errar. Pero volvamos a los hechos. Dado

la pregunta urgente es: ¿cuántos podrían haber conocido la respuesta? Suponiendo que el conocimiento de la respuesta es algo binarizable (¿lo es?), la distribución del número de respuestas correctas sería $latex pN + X$, donde $latex N$ es el número total de respuestas, $latex p$ es la proporción de quienes sabe la respuesta y $latex X \sim B(N - pN, 1/3)$, suponiendo siempre que $latex pN$ es entero.

El z-score es una medida inadecuada de la perplejidad

Tenemos un dato y un valor de referencia. Por ejemplo, el valor predicho por uno modelo y el observado. Queremos medir la distancia entre ambos. ¿En qué unidades?

Antes de eso, incluso, ¿para qué queremos medir esa distancia? Esta es la pregunta fácil: para ver cómo encaja en el modelo propuesto, para ver cómo lo sorprende, para cuantificar la perplejidad.

Los estadísticos están acostumbrados a medir la perplejidad en unas unidades que solo ellos entienden, si es que las entienden: desviaciones estándar. El z-score de un residuo es el número de desviaciones estándar que lo separan de su estimación. Si es una, exclaman ¡bah!; si es dos, ¡oh!; si es tres, ¡oooh!; si es cuatro, ¡ooooooh, válgame Dios!, etc.

La distribución de Poisson y la estabilización de la varianza

Imagínate que quieres estabilizar la varianza (¡para qué!) de una distribución de Poisson. Los libros viejunos te dirán que saques la raíz cuadrada de tus valores.

Si en lugar de mirar en libros viejunos prestas atención a tus propios ojos, harás algo parecido a:

lambdas <- -10:10
lambdas <- 2^lambdas
res <- sapply(lambdas,
    function(lambda) sd(sqrt(rpois(1e5, lambda))))

para obtener

y averiguar dónde funciona y dónde no.

Si usas la transformación $latex f(x) = x^{2/3}$, como recomiendan en cierto artículo que no viene a cuento identificar, harás

Martingalas, tiempos de parada y tuits cuasivirales

El otro día publiqué en Twitter un problema que copié de algún sitio (sinceramente, no recuerdo cuál),

que resultó megaviral en mi humilde tuitescala.

A ver si mañana tengo tiempo de ocuparme de lo triste que resulta que mi entorno de Twitter sea tan cafre como para haber desacertado tanto.

p-curvas

Primero, una simulación:

n <- 100
delta <- 0.2
n.iter <- 10000

p_valores <- function(n, delta){
  tmp <- replicate(n.iter, {
    x <- rnorm(n)
    y <- rnorm(n, mean = delta)
    t.test(x, y)$p.value
  })

  res <- tmp[tmp < 0.05]

  hist(res, freq = FALSE, xlab = "p value", ylab = "", col = "gray", main = "histograma de p-valores publicables")

  res
}

null_effect_p_values <- p_valores(n, 0)
some_effect_p_values <- p_valores(n, delta)

Lo que simula son n.iter experimentos en los que se comparan n valores N(0,1) con otros n valores N(delta, 1) y se extrae el correspondiente p-valor. Luego se grafican los publicables (<0.05).