Cosas de R (¿que tal vez alguien sabrá explicar?)

R

En Twitter, leo

The state of the art in statistical computing:

sum(c(1, 2), na.r=F) [1] 3 sum(c(1, 2), na.r=T) [1] 4

– John Myles White (@johnmyleswhite) September 8, 2015

¿Alguien puede explicar lo que ocurre? ¿Es tan grade como parece indicar sorna el autor del tuit?

Voronois con distintas distancias

Especulando sobre la diferencia en la práctica entre distintas métricas ($latex l_1$, $latex l_2$, $latex l_\infty$, etc.), construi una serie de diagramas de Voronoi usado métricas arbitrarias.

En la Wikipedia se comparan gráficamente $latex l_1$, $latex l_2$ (o euclídea y Manhattan). Mi código,

library(data.table)
library(reshape2)
library(grid)

n <- 20
dim.image <- 1000
puntos <- data.frame(id = 1:n,
                      x0 = runif(n) * dim.image,
                      y0 = runif(n) * dim.image)
colores <- rainbow(n)

voronoi <- function(p){
  tmp <- data.table(expand.grid(
      x = 1:dim.image,
      y = 1:dim.image, id = 1:n), key = "id")
  tmp <- merge(tmp, puntos, by = "id")

  distancia <- function(a, b, c, d, p)
    (abs(a-c)^p + abs(b-d)^p)^(1/p)

  tmp$distancia <- distancia(tmp$x,
    tmp$y, tmp$x0, tmp$y0, p)
  tmp[, rank := rank(distancia, ties = "random"),
    by = c("x", "y")]

  rejilla <- tmp[tmp$rank == 1,]
  rejilla$x0 <- rejilla$y0 <-
    rejilla$distancia <- rejilla$rank <- NULL

  rejilla$color <- colores[rejilla$id]

  imagen <- as.matrix(dcast(rejilla, x ~ y, value.var = "color")[,-1])

  grid.raster(imagen)
}

permite usar más en función del parámetro p.

Prioris, ¿subjetivas?

Dentro de unos días voy a hablar de estadística bayesiana en Machine Learning Spain. Plantearé una distribución a priori muy poco informativa:

alfa ~ gamma(10, 1);
beta ~ gamma(10, 1);

Me estoy preparando sicológicamente para que alguien me dé guerrita con lo de la subjetividad de las distribuciones a priori. Si tal es el caso, replicaré lo que sigue.

Hace unos días quise replicar el análisis. Pero la URL de la que bajo los datos dejó de contener los de la liga del año anterior y cargó los correspondientes al inicio (¿dos jornadas? ¿tres?) de la actual. ¡Apenas había datos!

Guías de estilo para programar en R

R

Frans van Dunné me ha hecho llegar su guía de estilo de programación en R. Abunda en otra creada por Google hace un tiempo y que traduje y adapté aquí.

Tiene como novedad, dice, su adaptación a las formas y maneras de Hadley Wickham, aún no tan conocido entonces. Coinciden, no obstante, en lo más.

Ninguna de las dos trata el uso las tuberías (operador %>%). Pero es un asunto que se nos puede ir de las manos: de hecho, hoy he conocido el paquete [backpipe](https://github.com/decisionpatterns/backpipe), que implementa %<% y que nos augura largas y desesperantes sesiones de depuración de código.

Sobre la subida del paro registrado en agosto

Sí, se acaba de publicar el dato de agosto. A unos les parece bien y a otros mal. Nada nuevo bajo el sol.

La pregunta (cuya relevancia ignoro) es: ¿cómo varía el paro registrado entre julio y agosto? ¿Es normal dentro de la serie histórica? Los datos del SEPE se remontan al 2001 y, pintados, son

evolucion_paro_agosto

¿Mi opinión? No sé si decir “ni fú ni fá”, “regresión a la media” o ambas (si es que son distintas).

Respuestas distintas, ¿a la misma pregunta?

Hará ya un par de años, un señor muy importante divulgaba en su bitácora los resultados de un estudio relativo a la educación en España que acababa de publicar. Dedicaba una pequeña parte de la entrada a cuestiones metodológicas y el resto a cuestiones normativas: dado que he encontrado esto y aquello con un p-valor de tal, no otro remedio queda que aplicar todas estas medidas que aquí enumero, era el resumen de todo.

Odds = probabilidades

El otro día medio participé en una conversación en Twitter sobre el significado de los odds. Recientemente leí una entrada en la bitácora de un holandés que se quejaba de lo difícil que resulta encontrar un equivalente de esa palabra a su idioma. Pasa lo mismo en español: no existe una traducción directa; no existe, siquiera, el concepto.

Sugiero traducir odds, y lo haré así a lo largo de la entrada, como probabilidades. Al igual que una temperatura puede expresarse en distintas escalas y medidas (Kelvin, Celsius, Farenheit), una misma probabilidad puede expresarse de distintas maneras. Estamos acostumbrados a representarlas como fracciones de la unidad, p.e., 0.25; pero esa misma probabilidad puede expresarse también como 3:1.

Golpes de suerte

Rescato para el día de hoy los dos primeros párrafos de un artículo de Ignacio Vidal-Foch. Tiene más, pero menos interesante en nuestro contexto.

Son:

La vida —por lo que de ella he alcanzado a ver— es rigurosamente moral. Es como las fábulas, donde la hormiguita sumisa y laboriosa que aprovecha el buen tiempo para acarrear y almacenar comida, cuando llegue el invierno sobrevivirá, mientras que la cigarra despreocupada que se pasa el verano cantando y tocando el ukelele sucumbirá a la primera helada. La organización social es un complejo esfuerzo para pautar la vida y excluir de ella el azar; de ahí instituciones como las compañías de seguros, la policía, la sanidad pública y la jubilación, o la herencia, con la que los padres quieren proteger a sus vástagos de la incertidumbre y que éstos suelen recibir como algo natural y merecido, y no como lo que es, una arbitrariedad que habría que ilegalizar en nombre del principio de la igualdad de oportunidades.

Todos los errores son iguales, pero algunos son más iguales que otros

Por eso, en la práctica, el RMSE y similares son irrelevantes. Aunque eso, desgraciadamente, no quiera decir que no sean utilizados.

Pero en muchas ocasiones no es el error medio la medida importante. A menudo uno quiere detectar outliers: una variable de interés tiene un comportamiento normal la mayor parte del tiempo pero en ocasiones, en raras ocasiones, cuando supera un umbral, produce catástrofes. Dejarse guiar por el RMSE (o similares) produciría una peligrosa sensación de seguridad: detectaría la normalidad; la anormalidad, lo interesante, le resultaría inasequible.

Tres monedas y un argumento falaz

Tiras tres monedas. ¿Cuál es la probabilidad de obtener tres valores (cara o cruz) iguales? Es, lo sabemos todos, 0.25: de las ocho opciones posibles, solo dos cumplen.

Ahora, el argumento falaz —dizque de Francis Galton— que prueba que dicha probabilidad es de 0.5. Es así: de las tres monedas, dos tienen que coincidir necesariamente en valor; entonces la tercera, con probabilidad 0.5, coincidirá con los anteriores y con la misma discrepará.