¿Dónde he estado (según Google)?

Leí esto el otro día. Lo voy a replicar con mis datos.

Contexto

Google guarda datos de tus ubicaciones: tu tableta, tu ordenador, tu teléfono Android son espías a su servicio. Los datos los guarda en aquí (creo que necesitarás que en tu navegador haya una sesión abierta con tus credenciales del universo Google). Pulsando en administrar archivos y luego en crear archivos puedes seleccionar el tipo de información sobre ti que posee Google y que quieres descargarte. Para este ejemplo, será el Historial de Ubicaciones.

Va sobre el número de palabras

Trataré de usar pocas hoy. El otro día vi

fomc

aquí. Me recordó que uno de mis proyectos abandonados sine die es el de estimar la rentabilidad real de productos financieros en función del número de palabras en sus correspondientes folletos.

Nota: curioso el gráfico anterior. Una de las variables es un stock y la otra es un flujo.

Otra nota: ahora que veo el gráfico me acuerdo de esto. Superpones dos funciones más o menos monótonas en una gráfica de doble escala y ya tienes la entrada/artículo del día.

Decisiones basadas en datos: ¿siempre posibles en la práctica?

Me gusta criticar. Bien lo saben quienes me siguen. Pero hoy toca aplaudir un artículo tan raro como valiente. Que no hace sino criticar por mí. Se titula On the Near Impossibility of Measuring the Returns to Advertising. Sus autores, quiero subrayarlo aquí, trabajan en Google y Microsoft.

Los métodos data driven gozan del mayor de los predicamentos. Véase una pequeña muestra extraída de una reciente conversación en Twitter:

data_driven

Tirar la piedra, esconder la mano

Hoy he encontrado esto en Twitter:

escocia_independencia_pobreza

Míralo bien. Vuelve a mirarlo. Efectivamente, los ricos votaron en contra de la independencia; los pobres, a favor. ¿Verdad?

Muchos, yo incluido, estamos inclinados a pensarlo así. Los resultados de una pequeña muestra que he hecho en la oficina han sido contundentes: todos, a pesar de sus doctorados, han estado de acuerdo unánimemente con el juicio anterior.

Así que ha sucedido lo siguiente:

plyr, dplyr, data.table: ¿qué opinas?

R

Fui un pájaro mañanero con [plyr](http://cran.r-project.org/web/packages/plyr/index.html).

Probé una vez [data.table](http://cran.r-project.org/web/packages/data.table/index.html) y no me convenció. Volví a él cuando realmente lo necesitaba y ahora es la prolongación de mis dedos.

Aún no me he puesto con [dplyr](http://cran.r-project.org/web/packages/dplyr/index.html) aunque he visto el suficiente código escrito con él que no creo que me cueste mucho comenzar a usarlo.

Pero tengo la sensación de que tenemos un cisma como el de vi contra emacs en ciernes. Comienza a haber, parece, partidarios acérrimos de tirios y troyanos. Así que abro la sección de comentarios para que opines sobre estos paquetes. A mí y a muchos otros lectores nos gustaría conocer tu opinión al respecto. ¿Cuál utilizas? ¿Qué te gusta de cada cual? ¿Cuál recomendarías?

El impacto (causal) de Google

Voy a escribir sobre un artículo como no debe hacerse: sin haberlo leído. Los bayesianos dirían que esta opinión que aquí voy a vertir es mi prior para cuando encuentre el tiempo y bajo la cual matizaré lo que en el se diga. Lo advierto, en todo caso, para que quien me lea no renuncie al sanísimo escepticismo.

Voy a hablar de Inferring causal impact using Bayesian structural time-series models y del paquete de R que lo acompaña, CausalImpact, cuyos autores trabajan en Google.

La diapositiva perdida, versión algo más extendida

Tuve que saltarme una diapositiva en el DataBeers de Madrid del pasado jueves.

(A propósito, aquí están las 1+20 diapositivas.)

La decimonona, de la que trata la entrada, viene a hablar de lo siguiente. Tenemos una base de datos con sujetos (ids) que hacen cosas en determinados momentos. No es inhabitual calcular la frecuencia de esos sujetos así:

select id, count(*) as freq
from mytabla
where fecha between current_date - 7 and current_date
group by id
;

Esa variable se utiliza frecuentemente ya sea como descriptor de los sujetos o como alimento de otros modelos.

Primer elemento de un grupo dentro de un dataframe de R

R

Hoy he encontrado una solución decente a un problema que venía arrastrando desde hace un tiempo en R. Tengo una tabla muy grande (decenas de millones de registros) con su id. Me interesa quedarme con el subconjunto de la tabla original en que para cada id el valor de una determinada variable es mínimo.

Un caso de uso: esa variable adicional mide la distancia de la observación a los centroides de unos clústers. El registro con el menor valor proporciona la asignación del sujeto a su grupo.

Una transformación (y segmentación) novedosa de variables (lognormaloides)

– La variable gasto tiene una distribución muy fea que tiene un impacto en el modelo. He optado por transformarla. – ¿Qué has hecho? – Bueno, verás: no es lo mismo que alguien gaste menos de un euro o que gaste más de cien. A los que gastan entre cero y uno les he dado el valor 0. – Vale. – Entonces, a los que gastan, digamos, entre 1 y 10, 1; luego, a los que gastan entre 10 y 100, 2. Porque no es lo mismo gastar 9 que 90, ¿no? – Claro. – Y así sucesivamente… a los que gastan entre 100 y 1000 euros, les he puesto un 3… – Para, para, para… ¡has tomado el logaritmo! – Eh, bueno, en realidad… log10(x+1)