Ver la I+D+i como un estado

Para el estado, la I+D+i es una cosa muy rara. Está descrita aquí. Pero el estado ve como un estado.

En mi mundo la I+D+i es otra cosa. Una cosa que se hace de oficio todos los días:

  • leer libros y artículos de estadística,
  • estar al tanto de las novedades tecnológicas,
  • hablar con los colegas de modelos,…,
  • visitar StackOverflow,
  • aprovechar las externalidades positivas del buscador de Google que todo el mundo ha olvidado agradecer,
  • leer mi blog,
  • etc.

Insisto: I+D+i hacemos. A espuertas. Pero, ¡ea, ea, ea, el estado no se entera!

La multivarianza total de la distancia no implica causalidad

Quería ser el primero en escribirlo. Para la posteridad.

Tenemos la correlación/covarianza, con todos sus usos y abusos.

En el 2011 se habló un tiempo de esto. Luego nunca más se supo.

La de Hellinger tiene un añito y un paquete en CRAN, menos trabajo de relaciones públicas y, no obstante, el mismo éxito que la anterior.

Y este año se añade a la lista la multivarianza de la distancia que, bueno, ¿qué queréis que os diga que no sea trivialmente extrapolable de lo anterior?

Esto no trata sobre lo que la ciencia es

Esto no trata sobre lo que la ciencia es sino sobre lo que la gente entiende que es. Que podría (y puede) explorarse mediante encuestas. Pero el dispendio es innecesario.

Basta con repasar aquellos atributos de la ciencia de los que tratan de investirse aquellos que, sin serlo, lo pretenden (y excúseseme el círculo vicioso). Como, por ejemplo, cátedras de mamandurrias.

Nota: esta inopinada idea es subproducto de leer esto.

Otra nota: es inútil discutir estos temas con paniaguados de la ciencia y de la impostora contraparte.

Más sobre la anonimidad y reidentificación en ficheros de microdatos

Ha tenido cierta repercusión durante el verano el articulo Estimating the success of re-identifications in incomplete datasets using generative models, del que se han publicado resúmenes tales como Bastan tres datos para identificar a cualquiera en una base anónima. Cosa sobradamene conocida desde hace la tira.

De hecho, se ha publicado esta herramienta para conocer tu riesgo de ser reidentificado, caso de que vivas en EEUU o el RU.

¿Y si vives en España? Siempre puedes leer esto, de lo que ya hablé (y resumí) aquí.

(g)lms con coeficientes > 0 (p.e.)

  • Alguien quería un glm forzando determinados coeficientes >0.
  • Una solución 100% bayesiana no era una opción.

Hay varias opciones por ahí. Pero me ha sorprendido que la opción esté disponible en glmnet::glmnet:

Filosóficamente, es un tanto sorprendente: de alguna manera, glmnet es glm con prioris alrededor del cero. Los límites superiores e inferiores permiten introducir información a priori adicional no necesariamente compatible con la anterior.

Desde el punto de vista de la implementación, tiene sentido que estas opciones estén disponibles. glmnet usa coordinate descent como algoritmo de minimización e introducir restricciones en ese tipo de algoritmos es una trivialidad.

Relevante para entender la "maldición de la dimensionalidad"

La gráfica

representa el volumen de la esfera unidad (eje vertical) en el espacio de dimensión x (eje horizontal).

Más aquí (de donde procede la gráfica anterior).

Moraleja: en dimensiones altas, hay pocos puntos alrededor de uno concreto; o, dicho de otra manera, los puntos están muy alejados entre sí. Por lo que k-vecinos y otros…

Más sobre factores, strings y ordenación

R

Esta entrada debería ser un comentario más en esta otra, pero voy a abusar del privilegio de ser dueño de la plataforma para promocionarla.

Voy a decir cosas que son aproximadamente ciertas. Los detalles de la verdad de todo están en la ayuda y el código de sort y sus métodos.

En R hay dos métodos de ordenación: shell y radix. El primero es genérico y el segundo es mejor cuando en el vector hay muchos elementos repetidos (p.e., ordenar el censo por provincias).

Hagan sus apuestas; luego, corran el siguiente código

R
library(microbenchmark)
library(ggplot2)

a_int <- sample(10:99, 1e6, replace = T)
a_char <- paste("P", a_int, sep = "")

res <- microbenchmark(
    sort_int  = sort(a_int),
    sort_char_radix = sort(a_char, method = "radix"),
    sort_char = sort(a_char),
    factor_trick = as.character(sort(as.factor(a_char))),
    times = 50
)

autoplot(res)

dplyr parece que prefiere los factores

R

Con datos bajados de aquí:

library(MicroDatosEs)
library(dplyr)
library(microbenchmark)
library(ggplot2)

censo <- censo2010("MicrodatosCP_NV_per_nacional_3VAR.txt")

censo_char <- as.data.frame(censo[,
    c("CPRO", "SEXO", "ECIVIL", "FACTOR")])
censo_factor <- censo_char
censo_factor$CPRO <- factor(censo_factor$CPRO)


foo <- function(x)
    x %>% group_by(CPRO) %>%
    summarise(res = sum((SEXO == "Mujer") *
        (ECIVIL == "Divorciado") * FACTOR) /
        sum(FACTOR) * 100)

res <- microbenchmark(
    char = foo(censo_char),
    factor = foo(censo_factor),
    times = 10
)

autoplot(res)

Da:

¿No es sorprendente? De hecho, plyr es más rápido que dplyr en este caso si no se usan factores.

Notas:

  • El hilo de por qué es así en lugar de otra manera se pierde en código escrito en C++. Para otra vida (mía o de otro).
  • Debo agradecer a Diego Castro el intercambio de ideas, código y perplejidades que dieron pie a todo lo de arriba.

XI Jornadas de Usuarios de R

R

Esta entrada es un (otro, que sumar a este o este) recordatorio de que las XI Jornadas de Usuarios de R están en marcha.

Y que serán en Madrid, del 14 al 16 de noviembre, etc. Información toda ella que los enlaces anteriores extienden debidamente.

(Además hay una tarifa reducida cuyo plazo termina, aviso, muy, muy pronto.)