Un gran cambio

Como probablemente sepáis las personas que alguna vez hayáis usado nuestro servicio, ya sea como propietario de una vivienda o como profesional del sector de las reformas y construcción, en habitissimo nos encontramos en un profundo proceso de transformación.

En nuestra organización abrazamos los cambios y estamos constantemente probando cómo crecer y mejorar la experiencia de nuestros usuarios, lo cual nos ha llevado a nuestro próximo reto: pivotar nuestro tradicional modelo de negocio basado en la generación de leads (presupuestos), hacia un modelo cuyo eje central sea el directorio de profesionales.

El cambio, ha sido propiciado principalmente por el hecho de que en un modelo de generación de lead, donde el propietario de la vivienda genera una petición de presupuesto y es el profesional quien tenía que contactar a ese potencial cliente, dejaba, en más ocasiones de las que consideramos aceptable, al propietario y demandante del servicio, sin respuesta.

El usuario particular, se quedaba esperando el presupuesto que había pedido sin que nosotros pudiéramos facilitárselo, lo cual generaba una mala experiencia en nuestra plataforma.

Tras diferentes estudios, encuestas y muchas reflexiones, vimos la oportunidad de cambiar este flujo de contacto, generando una petición de presupuesto sólo donde sabíamos que iba a ser respondida y en las ocasiones restantes, dar la posibilidad al demandante del servicio, de tomar la iniciativa y escoger a un profesional del nutrido directorio de profesionales que tenemos en habitissimo.

De esta forma, estamos más cerca de cumplir nuestra promesa de poner en contacto a quien necesita realizar un trabajo en su casa, y a un experto que lo lleve a cabo. 

No obstante, este cambio nos planteaba un montón de dudas: ¿íbamos a conseguir el mismo volumen de transacciones en nuestra plataforma? Es lógico pensar que, al ser un flujo más exigente para el demandante, muchos de ellos no terminaran el proceso de buscar un profesional en habitissimo; pero ¿hasta qué punto?

¿Cuánto mejoraríamos el ratio de contactos? Es decir, de todas las personas que entraran en la modalidad nueva, ¿cuantos machearían con un profesional? Aquí estaba nuestra apuesta: esperábamos que muchas más que antes: las que no entrasen en flujo de petición de presupuesto, acabarían encontrando el profesional que buscaban en el directorio, mejorando la experiencia y el cumplimiento con nuestra propuesta de valor.

Desde este espacio, os quiero contar cómo hemos ayudado el equipo de datos en este enorme cambio en el que estamos inmersos.

¿Cómo podemos atribuir causalidad y cuantificar el impacto?

Cuando comenzamos a plantear estas preguntas, pensamos que la mejor forma de poder contestarlas era realizar un test aleatorio, también conocido como test AB. Para quien no esté familiarizado con este término, se basa resumidamente, en tener funcionando una versión sin ningún cambio (control) y otra versión con la única diferencia del cambio que se quiere introducir (test). 

Así podemos estar seguros de que el efecto observado es única y exclusivamente debido al único cambio introducido. La cuantificación del impacto también es sencilla: simplificando, basta con calcular las diferencias en el rendimiento de la misma métrica entre test y control.

Sin entrar mucho en detalle, para poder realizar un test de estas características se tienen que cumplir dos condiciones:

  • Que el hecho de pertenecer a uno u otro grupo sea completamente aleatorio. Así aseguramos que no existe sesgo previo.
  • Que los grupos sean completamente independientes; es decir, un mismo usuario no puede pertenecer al test y control al mismo tiempo.

El problema, en nuestro caso, es que al ser un marketplace de dos lados (oferta y demanda), cuando queremos probar un cambio estructural cuyo impacto es notable en ambos lados, para poder cumplir la segunda de las condiciones, sería necesario prácticamente dividir habitissimo en dos. Como imaginaréis el coste de implementar esto, no siempre es asumible. Ante semejante bloqueo, descubrimos CausalImpact.

CausalImpact es un paquete desarrollado por Google que utiliza modelos de series temporales estructurales bayesianas para intentar predecir qué hubiera pasado con la métrica estudiada si el efecto que se quiere medir no hubiera existido. Así, generamos de forma artificial nuestro grupo de “control” en ausencia de un test AB.

El modelo toma otras series temporales como predictoras o explicativas de la serie temporal para la que se quiera medir el efecto. Cuanto más parecido sea el comportamiento de estas a nuestra serie temporal objetivo en el periodo pre-efecto, mejores predictores tendremos en nuestras manos y más acertadas serán nuestras conclusiones.

Nuestro caso concreto

En nuestro caso, decidimos poner en producción el cambio para la sección principal de la web con lo que siempre tendríamos las demás secciones, menos importantes como predictores. También usamos el tráfico a la web ya que este es un paso previo a cualquiera de las métricas en la sección escogida. Por último y dado que nos encontramos en una situación muy cambiante por las restricciones y la pandemia del Covid-19, tomamos como predictor un indicador económico: el IBEX-35. Este recogería cualquier efecto en la economía por posibles rebrotes, nuevas medidas, etc.

Para nuestro análisis, entrenamos de forma programática tantos modelos como combinaciones posibles entre regresores y los comparamos entre sí mediante estimadores de calidad como son el criterio de información de Akaike (AIC) y el error cuadrático medio (RMSE) quedándonos con el mejor para cada métrica en la cual queríamos estimar el efecto.

Así pues, CausalImpact te devuelve, además de todos los estadísticos habituales en un modelo de series temporales, dos gráficos que sintetizan bastante el funcionamiento. En el primero,  podemos observar en línea discontinua junto con un intervalo en violeta, la predicción o representación que hace el modelo de nuestra serie, siempre con un intervalo de confianza, y donde el mismo, situaría nuestra métrica de no haberse dado el efecto. En negro, la línea continua serían nuestros datos reales.

El segundo es la representación gráfica del efecto relativo en cada punto de nuestra serie vs la predicción. En esta caso la predicción es bastante buena con lo que distinguirlo de nuestra propia serie temporal no es sencillo.

El anterior gráfico representa la proporción de peticiones de servicio con al menos una respuesta. Uno de los principales motivos para hacer este cambio es que ratios como este crecieran, confirmando la mejora en la experiencia con nuestro servicio.

En métricas así, donde el efecto es claro, el intervalo de confianza de CausalImpact, es aceptable, no por encima del 8%. El intervalo de confianza de predicción no es otra cosa que un intervalo donde estamos seguros a un cierto nivel (en nuestro caso al 95%) de dónde caerán nuestros valores.

Así pues, podemos estar bastante seguros de donde se sitúa el efecto de nuestro nuevo flujo de contacto en esta métrica en cuestión.

En otras métricas, donde el efecto no es tan claro, el intervalo de confianza del mismo ronda el 25%. Este es el caso del número absoluto de peticiones recibidas, valor que esperábamos que bajase y que CausalImpact sitúa entre un -30% y -5% que si no pusiéramos en marcha la nueva feature del producto.

Como podéis ver, la dispersión o amplitud del intervalo, es elevada y puede significar una gran diferencia a la hora de tomar decisiones clave sobre el negocio. Sabemos que nuestro valor se encuentra ahí, podemos estar seguros de ello, pero evidentemente, no es lo mismo perder un 30% que un 10%.

Por otro lado, el coste de realizar un análisis similar a este es prácticamente nulo: el código del paquete es muy fácil de implementar y realmente no hemos de invertir tiempo en recoger datos y preparar métricas que no fuéramos a utilizar ya para la monitorización del cambio.

Además, la utilidad del paquete, en mi opinión, reside en poder confirmar de una forma más rigurosa un efecto que basándonos simplemente en la observación o análisis descriptivo: utilizando los regresores adecuados podemos estar seguros que nuestras conclusiones no se ven sesgadas por variaciones derivadas del componente temporal o coyuntural, factores externos que pueden ser obviados con una observación descriptiva únicamente de la métrica en cuestión.

Aunque la atribución y cuantificación siempre será más rigurosa y directa en un test aleatorio, en habitissimo seguiremos usando esta herramienta para medir los sucesivos cambios que hagamos en los cuales no podamos realizar un test AB, porque estamos convencidos de que el análisis de datos, supera o cuanto menos ayuda a confirmar o desmentir, la intuición.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.