La densidad de una Cauchy bivariada es cuasiconvexa

Primero, las curvas de nivel:

x <- seq(-50, 50, length.out = 1000)

tmp <- expand.grid(x = x, y = x)
tmp$z <- log(dcauchy(tmp$x) * dcauchy(tmp$y))

ggplot(tmp, aes(x = x, y = y, z = z)) + stat_contour()

Lo de la cuasiconvexidad está contado aquí.

Las consecuencias estadísticas y probabilísticas, para otro rato.

model4you

Un grupo de estudiantes se examina en horas distintas con exámenes parecidos pero no iguales. Se pretende estudiar si el examen tiene algún efecto sobre la nota final y para eso se hace algo así como

bmod_math <- lm(pcorrect ~ group, data = MathExam)

para obtener una distribución de la nota media por grupo descrita bien

cbind(estimate = coef(bmod_math), confint(bmod_math))

##              estimate      2.5%      97.5%
## (Intercept)  57.600184  55.122708  60.07766
## group2       -2.332414  -5.698108  1.03328

o bien, gráficamente, así:

Agoreros

Anderson et al. (2015) documented the existence of customers who systematically purchase new products that fail.

Tal se lee en The Surprising Breadth of Harbingers of Failure un artículo que abunda sobre la cuestión de la existencia ya no solo de clientes agoreros sino, incluso de códigos postales agoreros donde aquellos se arraciman.

Desafortunadamente, el artículo omite decirnos cuáles son, dónde están y, por supuesto, alguna foto de quienes los habitan.

Comparación y selección de modelos bayesianos

En el mundo bayesiano existen, cuando menos, dos escuelas:

  • La flowerpower, que sostiene que los modelos bayesianos son subjetivos y, por lo tanto, inasequibles a la confrontación con la realidad objetiva.
  • La de los que tienen un jefe que les paga un salario, al que le da igual si los modelos son bayesianos o no pero a quien le interesa por encima de todo saber si representan razonablemente el proceso subyacente.

Los segundos cuentan con referencias como Comparison of Bayesian predictive methods for model selection. Es un artículo, en cierto modo, desasosegadoramente antibayesiano: miradlo y encontraréis en él cosas que se parecen demasiado a la validación cruzada, al RMSE, etc.

El "método delta", ahora con NIMBLE

NIMBLE ha sido uno de mis más recientes y provechosos descubrimientos. Mejor que hablar de él, que otros lo harán mejor y con más criterio que yo, lo usaré para replantear el problema asociado el método delta que me ocupó el otro día.

Casi autoexplicativo:

library(nimble)

src <- nimbleCode({
    T_half <- log(.5) / k
    k ~ dnorm(-0.035, sd = 0.00195)
})

mcmc.out <- nimbleMCMC(code = src,
    constants = list(),
    data = list(), inits = list(k = -0.035),
    niter = 10000,
    monitors = c("k", "T_half"))

out <- as.data.frame(mcmc.out)

# hist(out$T_half), sd(out$T_half), etc.

Cosas:

¿Pato o conejo? (Y su moraleja)

Supongo que

es conocido de todos. Según la orientación de la imagen, la red neuronal correspondiente la categoriza bien como conejo o bien como pato.

¿El motivo? La red está entrenada con una serie de fotos etiquetadas por humanos y en ellas, las figuras en que parecen conejos están en ciertos ángulos (los naturales en fotos de conejos) y en las que aparecen patos, en otros.

"Deep learning": una evaluación crítica

Tal vendría a ser la traducción del título de este artículo con el que, mentándolo, hago contrapeso a opiniones enlatadas con sabor a gominola.

Por no dejarlo todo en dos líneas, enumero aquí los diez mayores retos (¿problemas?) que encuentra hoy en día el autor en el deep learning:

  1. Que necesita demasiados datos
  2. Que apenas tiene capacidad de transferencia (i.e., de trasladar lo aprendido en un contexto a otro)
  3. Que no sabe gestionar sistemas jerárquicos
  4. Que no es bueno infiriendo
  5. Que no es lo suficientemente transparente (en este punto cita, por supuesto, a nuestra autora favorita, Catherine O’Neill)
  6. No usa conocimiento previo (¡uh, uh, bayesianos!)
  7. No distingue correlación y causalidad (¿y quién sí?)
  8. Presume un mundo estable, inmutable
  9. Funciona bien como aproximación, pero no es enteramente fiable
  10. Plantea problemas de ingeniería, de integración con otros componentes para crear sistemas

x[] <- lapply(...)

R

Estos días he aprendido una expresión muy compacta para operar sobre las columnas de una tabla en R:

x <- iris # por ejemplo
x[] <- lapply(x, function(x) factor(x)) # o cualquier otra función

Aunque lapply debería devolver (y, de hecho, devuelve) una lista, esos corchetes de x fuerzan de una manera contraintuitiva que la salida final sea una tabla.

La magia es consecuencia de que [<- es una función en sí misma (puedes consultar help("[<-") si quieres) con un comportamiento que es el que es (porque sí, a veces las cosas son simplemente como son).

GoF para modelos bayesianos

Existe una muy perezosa escuela de pensamiento que sostiene que dado que las probabilidades son subjetivas, cualquier modelo y, en particular, los bayesianos, como expresión de la subjetividad de sus autores, no necesita ser contrastado con la realidad. Porque, de hecho, la realidad no existe y es una construcción que cada cual hace a su manera, deberían añadir.

Existe, por supuesto, una escuela realista tan mayoritaria que ni siquiera es consciente de que lo es. Basta leer la primera página de Statistical Modeling: The Two Cultures para hacerse una idea muy clara de a lo que me refiero.

"Estadística Básica Edulcorada"

Quiero contribuir a dar a conocer el libro Estadística Básica Edulcorada de Alejandro Quintela.

Debería, se supone, hacer una crítica de lo que publico, pero lo omitiré en esta ocasión porque, para eso, tendría que haberlo leído con más detenimiento en lugar de simplemente hojearlo deteniéndome en los capítulos más entretenidos. Lo cual significa que sí que los tiene: de hecho, está repleto de ejemplos más o menos curiosos, problemas y paradojas más o menos conocidas, que tienen un valor en sí mismas al margen de las secciones teóricas más áridas.