Consultoría

Sobre la normalización de las direcciones postales

Lo de las direcciones postales es un caos. Trabajar con ellas, una tortura. Y cualquier proyecto de ciencia de datos que las emplee se convierte en la n-ésima reinvención de la rueda: normalización y tal. Cuando todo debería ser más sencillo. Cada portal en España tiene asociado un número de policía, un identificador numérico único. Independientemente de que quienes lo habiten se refieran a él de formas variopintas, vernaculares y, en definitiva, desnormalizadas y desestandarizadas hasta pedir basta.

P-valores y decisiones

Los números de esta entrada son reales aunque disfrazados: proceden de un proyecto real. Para medir la efectividad de una serie de modelos que hemos creado en Circiter, hemos pedido al cliente lo de siempre: que parta la lista de sujetos en dos al azar para después poder medir los éxitos y fracasos usando dos procedimientos distintos. Pero como tenemos dudas acerca del proceso de partición —que no controlamos nosotros— hemos medido el número de éxitos y fracasos en cada uno de los grupos en una prueba previa.

¿Qué variable distingue mejor dos subgrupos?

Es una pregunta que surge reiteradamente. Por ejemplo, cuando se compara un clúster con el resto de la población y uno busca las variables que mejor lo caracterizan. Y crear gráficos como (extraído de aquí) donde las variables están ordenadas de acuerdo con su poder discriminador. Mi técnica favorita para crear tales indicadores es la EMD (earth mover’s distance) y/o sus generalizaciones, muy bien descritas en Optimal Transport and Wasserstein Distance y disponibles en R y Python.

Un modelo que alimenta una simulación

Tenemos en Circiter un proyecto sobre el que no puedo dar muchos detalles, pero que vamos a plantear (en versión muy resumida) como un modelo que alimenta una simulación. El modelo no va a ser un modelo sino un modelo por sujeto (rebaños, los llamamos aquí). Los modelos serán, casi seguro, modelos mixtos (lmer/glmer). Pero claro, si usas un modelo, por muy mixto que sea, con intención de simular, predict se queda muy corto (¡siempre da la el mismo resultado!

Simulación de procesos de Poisson no homogéneos y autoexcitados

Fueron mis modelos favoritos un tiempo, cuando modelaba visitas y revisitas de usuarios a cierto malhadado portal. Si las visitas fuesen aleatorias (en cierto sentido), tendrían un aspecto no muy distinto del que se obtiene haciendo library(IHSEP) suppressWarnings(set.seed(exp(pi * complex(imaginary = 1)))) tms <- simPois(int = function(x) .1, cens = 1000) hist(tms, breaks = 100, main = "Proceso homogéneo de Poisson", xlab = "", ylab = "frecuencia") Es decir, o bien una distribución uniforme en el tiempo.

Ceteris paribus vs Heráclito

Nuestro producto aumenta el X de las empresas en un Y%. ¿Cuántas veces hemos oído eso? Esa afirmación presupone una fe ciega en la posibilidad de aplicar el principio del ceteris paribus en situaciones reales. Pues lo siento: el ceteris paribus es un concepto irreal, una aspiración a la que la realidad de las cosas se opone tozudamente. ¿Y Heráclito? Heráclito nos observa desde donde esté y se fuma un puro.

Las decisiones son lo primario; la estadística es subsidiaria

En Circiter estamos negociando con unos clientes potenciales acerca de, tal como nos dijeron inicialmente, construir un modelo. Todo bien. En la última reunión surgió la pregunta (¡qué vergüenza por mi parte no haberla planteado mucho antes!): ¿cómo habría que usarlo para dar soporte al negocio? La discusión subsiguiente dejó claro que habría que cambiar sustancialmente la aproximación al modelo. Por ejemplo: Era tanto o más importante la discriminación intra-sujeto que la entre-sujeto (es decir, importaba más lo que el modelo pudiera decir de los ítems de cada sujeto que las diferencias que pudiera mostrar entre sujetos).

Pesos de los componentes del QualityScore en Google Ads

El llamado QualityScore tiene su relevancia en Google Ads. Es un indicador con valores entre 1 y 10 asignado por Google que se basa en tres variables que están descritas por ahí: PostClickQualityScore SearchPredictedCtr CreativeQualityScore Se trata de variables categóricas con tres niveles: en / por encima de / por debajo de la media. Haciendo modelo <- lm(QualityScore ~ PostClickQualityScore + SearchPredictedCtr + CreativeQualityScore, data = tmp) summary(modelo) se obtiene

Charlatanes y regulación

Así resumen sus autores Regulation of Charlatans in High-Skill Professions: We study a market for a skill that is in short supply and high demand, where the presence of charlatans (professionals who sell a service that they do not deliver on) is an equilibrium outcome. We use this model to evaluate the standards and disclosure requirements that exist in these markets. We show that reducing the number of charlatans through regulation decreases consumer surplus.

Sobre la tesis de Sánchez (y no es lo que se espera de mí)

Me preguntaron mucho (antes de los últimos seis o siete circos mediáticos) sobre la tesis de Sánchez, cuando estaba en el candelabro. La bajé, la leí en parte (muchas de las páginas más infumables en diagonal, lo reconozco) y me centré en la parte estadística. Que es un completo despropósito: es una especie de apéndice que no se usa en el resto del texto, una suerte de añadido para darle una mínima pincelada de matematicidad a la cosa.

¿Es Madrid ciudad para startups (relacionadas con los datos)?

[Esta entrada, simplemente, plantea una hipótesis altamente especulativa; expone una serie de argumentos su pro pero deja la pregunta abierta y la respuesta al buen criterio del lector.] El año pasado di un curso de estadística bayesiana (¿a alguien le interesaría que lo impartiese en su empresa o institución?) en la UPC, en Barcelona. En un descanso hablé brevemente con una alumna que estaba buscando trabajo en el mundo de la ciencia de datos.

Modelos y sesgos (discriminatorios): unas preguntas

A raíz de mi entrada del otro día he tenido una serie de intercambios de ideas. Que han sido infructuosos porque no han dejado medianamente asentadas las respuestas a una serie de preguntas relevantes. Primero, contexto: tenemos un algoritmo que decide sobre personas (p.e., si se les concede hipotecas) usando las fuentes de información habitual. El algoritmo ha sido construido con un único objetivo: ser lo más eficiente (y cometer el mínimo número de errores) posible.

Goodhart, Lucas y márketing

Abundo sobre lo de ayer. Una empresa clasifica a sus clientes y los asigna a grupos: malotes, estrella, psepsé, etc. Examina las características de los clientes estrella y entonces reorienta su política comercial en la siguiente dirección: Tratemos de que nuestros clientes infraóptimos asuman formalmente las características formales de aquellos que más nos gustan. En gran medida, según lo discutido ayer, el principal logro de ese tipo de políticas es la de debilitar el vínculo entre esas características identificadas por los modelos y la rentabilidad de los clientes.