Consultoría

Trucos cutrebayesianos

El contexto

Cada día $latex i$ ocurren eventos de cierta naturaleza (transacciones, fallecimientos, infartos, etc.) que interesa contar.

El problema

El número de eventos $latex n_i$ que ocurren el día $latex i$ no se conoce el día $latex i$ sino que va siendo conocido progresivamente los días $latex i+1, \dots$. Pero hace falta una estimación de $latex n_i$ antes del fin del mundo.

Los datos

  • La distribución de los $latex n_i$ (basados en el histórico).
  • La proporción (probabilidad) $latex p_\Delta$ de eventos del día $latex i$ que se conocen el día $latex i+\Delta$.

La solución prebayesiana

Airbnb da en el clavo: ha desarrollado lo que hacía mucha falta

Y no me refiero a lo que quita el sueño a ciertos ayuntamientos retrógrados. Sino a esto.

Que es una herramienta corporativa para diseminar internamente información cuantitativa (en forma de cuadernos (de Python), Rmarkdowns y similares). Más info, aquí.

Los que me leéis y trabajáis en uno de esos lugares grandotes donde lo cuantitativo viaja por correo en PPTs, ya sabéis que tenéis que proponer ipso facto en esas reuniones que tanto os gustan.

Diapositivas sobre mi charla acerca del "stack analítico"

Tuve ocasión el pasado jueves, en Barcelona y gracias a la invitación de KSchool, de lo que llamo el stack analítico. Es decir, de aquellas herramientas tecnológicas necesarias para poder hacer ciencia de datos hoy en día.

Las diapositivas de la charla están aquí.

El tema es viejo pero no por ello menos urgente: existen herramientas (y, desgraciadamente, me he visto a incluir el saber leer documentación técnica en inglés) cuyo conocimiento es imperativo para poder trabajar de manera efectiva en ciencia de datos. Incluidos están sistemas operativos (dencentes), editores de texto (decentes) e IDEs y, como poco, un lenguaje de programación.

Una jerarquía de analistas de datos en cuatro escalafones

Es:

  • Nivel 1: Realizan la mayor parte de su trabajo con herramientas ofimáticas (fundamentalmente Excel), aunque pueden utilizar puntualmente Eviews, Stata, R o Matlab.
  • Nivel 2: Los que realizan la mayor parte de su trabajo con R, Python, SAS o SQL pero cuyo sistema de control de versiones es el de ficheros con determinadas convenciones de nombres.
  • Nivel 3: Como el anterior, pero usando control de versiones, estilos de código, y revisión por pares (peer review).
  • Nivel 4: Como el anterior, pero incorporando métodos propios de la ingeniería de software como el unit testing, documentación integrada, release cycles, etc.

Lo anterior está traducido de Why you need version control, que habla de eso y más. Léelo.

Herramientas (y consejos) para avanzar en tu carrera

Escribo hoy para invitar a leer esto, una entrada en otra bitácora que recoge y resume ideas que ya han aparecido en la mía, como por ejemplo:

  • Usa herramientas para las que no tengas que pedir permiso (típicamente, abiertas)
  • Considera el tiempo que pases trabajando en una empresa grande aprendizaje subsidiado
  • Especialízate un conjunto de cosas que sepas hacer mejor que la mayoría
  • Aprende a plantear preguntas
  • Aprende (cuando menos) un lenguaje de programación

Y algunas otras.

Y todo ocurre en un abrir y cerrar de ojos

Abres una aplicación en tu móvil que diseñó un programador búlgaro. Ipso facto aparece un insidioso banner de, p.e., Jazztel. ¿Cuáles son los mecanismos que ponen en contacto al búlgaro con Jazztel? ¿De qué manera recibe aquél una compensación de esta?

Tradicionalmente, el desarrollador habría hablado con, p.e., Google. Le habría dicho: yo voy a generar “espacios” donde tú vas a poder colgar propaganda a cambio de una cantidad (fija o variable). El intermediario, por otra parte, capta anunciantes (Jazztel en nuestro ejemplo), almacena un inventario de ellos y decide cuál de ellos mostrar. Hay teoría aplicable en estos contextos, como la que describe Real-Time Bidding Algorithms for Performance-Based Display Ad Allocation.

bellostamisc y una moraleja

Antier recibí un correo inesperado. Me agradecía el paquete bellostamisc, sabía de mi salida de eBay y me ofrecía trabajo en su empresa.

bellostamisc (miscelánea de funciones de Bellosta, i.e., yo) es un paquete para mi uso personal que recopilaba funciones auxiliares que usaba en eBay para distintos fines: conexiones a bases de datos, paralelización, etc. Nunca pensé que fuera a ser utilizado por nadie que no fuese yo. No obstante, lo documenté en condiciones, lo publiqué en nuestro GitHub corporativo y una vez vi que era estable, se lo sugerí a quien me vino con los problemas que con él había resuelto.

¿Vernacularidades? No, gracias

Como sabéis, vuelvo a España. Otro proyecto que termina. Habrá momentos para la nostalgia. Pero también, al menos, dos motivos para autofelicitarme. El primero tiene que ver con todo lo aprendido en estos doce meses.

El segundo, con todo lo que no he aprendido. Soy muy estricto con lo que me interesa y lo que no. ¿Qué me interesa? Aquello que me puede ser útil en otra parte. Al resto de las cosas las denomino vernacularidades y trato de evitarlas. Vernacular, etimológicamente, significa nacido en la casa de cada uno. Pero yo ya tengo una casa, la mía propia, gracias.

Mi querido colega de Iberia:

Te escribo desde Zúrich. Tenía, o eso creía yo, un vuelo a Madrid esta tarde. Pero al llegar al aeropuerto, no constaba en la lista de viajeros. El motivo figura en una subsubsubpágina de vuestro portal: si un viajero pierde el vuelo de ida, como me ocurrió el lunes pasado, se cancela automáticamente el de vuelta.

Como tú también has viajado mucho, podrás imaginar lo que ha sucedido en el aeropuerto: paseos de mostrador en mostrador hasta recibir una oferta rayana en impuesto revolucionario: me han ofrecido uno de esos asientos vacíos por un precio que, lo siento, no estoy dispuesto a pagar. He vuelto a casa y he comprado un billete a la competencia: volaré desde Basilea, la ciudad de nuestros bienamados Bernoullis, el sábado a las 6:10 AM. Viajaré en último tren del viernes y mataré el rato en el aeropuerto como cuando estudiante.