Buen análisis de datos

Autor: Patrick Riley

Queremos dar un agradecimiento especial a Diane Tang, Rehan Khan, Elizabeth Tucker, Amir Najmi, Hilary Hutchinson, Joel Darnauer, Dale Neal, Aner Ben-Artzi, Sanders Kleinfeld, David Westbrook y Barry Rosenberg.

Historial

Descripción general

Extraer información y verdad de una pila de datos es un trabajo potente, pero propenso a errores. Los mejores ingenieros y analistas de datos tienen una reputación para hacer pronunciaciones creíbles a partir de los datos. Pero ¿qué está haciendo que le da credibilidad? Con frecuencia escucho adjetivos como cuidado y metódico, pero ¿qué hacen los analistas más cuidadosos y metódicos?

Esta no es una pregunta trivial, especialmente debido al tipo de datos que recopilamos regularmente en Google. No solo trabajamos con conjuntos de datos muy grandes, sino que son extremadamente enriquecidos. Es decir, cada fila de datos generalmente tiene muchos, muchos atributos. Cuando se combina esto con las secuencias temporales de eventos para un usuario determinado, hay una enorme cantidad de formas de ver los datos. Compara esto con un experimento psicológico académico típico en el que es trivial para el investigador observar cada punto de datos. Los problemas que plantean nuestros grandes conjuntos de datos de alta dimensión son muy diferentes de aquellos encontrados en la mayor parte de la historia del trabajo científico.

En este documento, se resumen las ideas y técnicas que los analistas metódicos cuidadosos usan en grandes conjuntos de datos de alta dimensión. Aunque este documento se centra en los datos de registros y análisis experimentales, muchas de estas técnicas son aplicables de forma más amplia.

El resto del documento consta de tres secciones que abarcan diferentes aspectos del análisis de datos:

  • Técnicas: Incluye ideas y técnicas para manipular y examinar tus datos.
  • Proceso: Son recomendaciones sobre cómo abordas los datos, qué preguntas hacer y qué elementos verificar.
  • Mentalidad: Cómo trabajar con otros y comunicar estadísticas.

Beneficios técnicos

Veamos algunas técnicas para examinar tus datos.

Observa tus distribuciones

La mayoría de los profesionales utilizan métricas de resumen (por ejemplo, media, mediana, desviación estándar, etc.) para comunicarse sobre las distribuciones. Sin embargo, por lo general, debes examinar representaciones de distribución mucho más completas mediante la generación de histogramas, funciones de distribución acumulativa (CDF), diagramas cuantil-cuantil (Q-Q), etcétera. Estas representaciones enriquecidas te permiten detectar características importantes de los datos, como el comportamiento multimodal o una clase significativa de valores atípicos.

Considera los valores atípicos

Examina los valores atípicos con cuidado, ya que pueden ser versiones canary de la mina de carbón que indican problemas más fundamentales en tu análisis. Está bien excluir valores atípicos de tus datos o agruparlos en una categoría “inusual”, pero debes asegurarte de saber por qué los datos terminaron en esa categoría.

Por ejemplo, si observas las consultas con la menor cantidad de clics, es posible que se muestren los clics en elementos que no registras. Analizar las búsquedas con la mayor cantidad de clics puede revelar clics que no deberías contar. Por otro lado, puede haber algunos valores atípicos que nunca podrás explicar, por lo que debes tener cuidado con la cantidad de tiempo que le dediques a esta tarea.

Ten en cuenta el ruido

La aleatoriedad existe y nos va a engañar. Algunas personas piensan: “Google tiene muchos datos, el ruido desaparece”. Esto no es cierto. Cada número o resumen de datos que produzcas debe tener una noción de confianza en esta estimación (mediante medidas como intervalos de confianza y p-values).

Consulta los ejemplos

Cada vez que produzcas un nuevo código de análisis, debes ver ejemplos de los datos subyacentes y cómo tu código interpreta esos ejemplos. Es casi imposible producir código que funcione de cualquier complejidad sin realizar este paso. Tu análisis abstrae muchos detalles de los datos subyacentes para producir resúmenes útiles. Si observas la complejidad completa de los ejemplos individuales, puedes confiar en que tu resumen es razonable.

Es importante tomar muestras de estos ejemplos:

  • Si clasificas los datos subyacentes, observa los ejemplos que pertenecen a cada clase.
  • Si se trata de una clase más grande, mira más muestras.
  • Si estás calculando un número (por ejemplo, el tiempo de carga de la página), asegúrate de observar ejemplos extremos (el más rápido y el más lento, un 5% tal vez; sabes cómo se ve tu distribución, ¿verdad?) y los puntos en el espacio de mediciones.

Divide tus datos

Dividir significa separar los datos en subgrupos y analizar los valores de las métricas de cada subgrupo por separado. Por lo general, desglosamos dimensiones como navegador, configuración regional, dominio y tipo de dispositivo, entre otras. Si es probable que el fenómeno subyacente funcione de manera diferente en los subgrupos, debes dividir los datos para confirmar si es así. Incluso si no esperas que la segmentación produzca resultados diferentes, observar algunas partes en busca de la coherencia interna te brinda más confianza de que estás midiendo lo correcto. En algunos casos, una porción en particular puede tener datos incorrectos, una interacción del usuario dañada o ser completamente diferente.

Cada vez que divides los datos para comparar dos grupos (como experimento frente a control, o incluso “tiempo A” frente a “tiempo B”), debes tener en cuenta los cambios de mezcla. Un cambio de mezcla ocurre cuando la cantidad de datos en las porciones de cada grupo es diferente. La paradoja de Simpson y otras confusiones pueden generarse. Por lo general, si la cantidad relativa de datos de una porción es la misma en los dos grupos, puedes hacer una comparación de forma segura.

Considerar la importancia práctica

Con un gran volumen de datos, puede ser tentador concentrarse únicamente en la importancia estadística o centrarse en los detalles de cada dato. Pero debes preguntarte: “Incluso si es cierto que el valor X es un 0.1% más que el valor Y, ¿importa?”. Esto puede ser muy importante si no puedes comprender o categorizar parte de tus datos. Si no puedes comprender algunas strings de usuario-agente en tus registros, el hecho de que represente el 0.1% o el 10% de los datos marca una gran diferencia en cuanto a cuánto debes investigar esos casos.

De manera alternativa, a veces tiene un volumen de datos pequeño. Muchos cambios no se verán estadísticamente significativos, pero no es lo mismo que afirmar que estos cambios son “neutrales”. Debes preguntarte: “¿Qué tan probable es que aún haya un cambio prácticamente significativo?”

Verifica la coherencia a lo largo del tiempo

Casi siempre, debes intentar segmentar los datos por unidades de tiempo, ya que ocurren muchas interrupciones en los datos subyacentes a medida que nuestros sistemas evolucionan con el tiempo. (A menudo usamos días, pero otras unidades de tiempo también pueden ser útiles). Durante el lanzamiento inicial de una función o la recopilación de datos nuevas, los profesionales suelen verificar con atención que todo funciona según lo esperado. Sin embargo, con el tiempo pueden surgir muchas fallas o comportamientos inesperados.

El hecho de que un día o conjunto de días en particular tenga un valor atípico no significa que debas descartar los datos correspondientes. Usa los datos como ganchos para determinar un motivo causal por el que ese día o días es diferente antes de descartarlos.

Analizar los datos diarios también te da una idea de la variación en los datos que finalmente generaría intervalos de confianza o afirmaciones de importancia estadística. Por lo general, esto no debería reemplazar el cálculo riguroso del intervalo de confianza, pero, a menudo, con cambios grandes, puedes ver que serán estadísticamente significativos solo a partir de los gráficos diarios.

Confirma y cuenta tus filtros

Casi todos los grandes análisis de datos comienzan filtrando los datos en varias etapas. Tal vez solo desees considerar a los usuarios de EE.UU., o las búsquedas web o las búsquedas con anuncios. Cualquiera sea el caso, debes hacer lo siguiente:

  • Reconoce y especifica claramente qué filtros estás haciendo.
  • Cuenta la cantidad de datos que se filtran en cada paso.

Por lo general, la mejor manera de hacer esto último es calcular todas tus métricas, incluso la población que excluyes. Luego, puedes ver esos datos para responder preguntas como: "¿Qué fracción de las consultas eliminó el filtro de spam?" (Según el motivo del filtrado, es posible que ese tipo de análisis no siempre sea posible).

Las proporciones deben tener un numerador y denominador claros

Las métricas más interesantes son las proporciones de las medidas subyacentes. A menudo, los filtros interesantes y otras opciones de datos están ocultos en las definiciones precisas del numerador y el denominador. Por ejemplo, ¿cuál de las siguientes opciones significa "Búsquedas / Usuario"?

  • Consultas / usuarios con una consulta
  • Consultas / usuarios que visitaron Google hoy
  • Consultas / usuarios con una cuenta activa (sí, tendría que definir activa)

Ser muy claro en este punto puede evitar confusiones para ti y los demás.

Otro caso especial son las métricas que solo se pueden calcular con algunos de tus datos. Por ejemplo, "Tiempo para hacer clic" generalmente significa "Tiempo para hacer clic debido a que se produjo un clic". Cada vez que observes una métrica como esta, debes reconocer ese filtrado y buscar un cambio en el filtrado entre los grupos que estás comparando.

Procesa

Esta sección contiene recomendaciones sobre cómo abordar los datos, qué preguntas hacer sobre los datos y qué verificar.

Validación, descripción y evaluación independientes

Pienso que el análisis de datos tiene tres etapas interrelacionadas:

  1. Validación1: ¿Creo que los datos son autocoherentes, que se recopilaron correctamente y que representan lo que creo que hacen?
  2. Descripción: ¿Cuál es la interpretación objetiva de estos datos? Por ejemplo, "Los usuarios realizan menos búsquedas clasificadas como X", "En el grupo experimental, el tiempo entre X e Y es un 1% mayor" y "Menos usuarios pasan a la siguiente página de resultados".
  3. Evaluación: dada la descripción, ¿los datos nos indican que algo bueno está sucediendo para el usuario, para Google o para el mundo?

Si separas estas etapas, puedes llegar a un acuerdo con los demás más fácilmente. La descripción debe ser algo en lo que todo el mundo pueda estar de acuerdo con los datos. Es probable que la evaluación fomente mucho más debate. Si no separas la descripción y la evaluación, es mucho más probable que solo veas la interpretación de los datos que esperas ver. Además, la evaluación suele ser mucho más difícil porque establecer el valor normativo de una métrica, por lo general, a través de comparaciones rigurosas con otras funciones y métricas, requiere una inversión significativa.

Estas etapas no avanzan de forma lineal. A medida que exploras los datos, puedes ir y venir entre las etapas, pero en cualquier momento debes tener claro en qué etapa te encuentras.

Confirme la configuración del experimento y la recopilación de datos

Antes de analizar los datos, asegúrate de comprender el contexto en el que se recopilaron. Si los datos provienen de un experimento, observa su configuración. Si proviene de una instrumentación de cliente nueva, asegúrate de tener, al menos, una comprensión general de cómo se recopilan los datos. Es posible que detectes configuraciones inusuales o incorrectas, o restricciones de propagación (como datos válidos solo para Chrome). Cualquier cosa notable aquí puede ayudarte a crear y verificar teorías más adelante. Estos son algunos puntos que debes tener en cuenta:

  • Si el experimento está en curso, pruébalo por tu cuenta. Si no puedes, al menos revisa las capturas de pantalla o las descripciones del comportamiento.
  • Verifica si hubo algo inusual en el período durante el que se ejecutó el experimento (días feriados, lanzamientos grandes, etcétera).
  • Determina qué poblaciones de usuarios estuvieron sujetas al experimento.

Comprueba lo que no debe cambiar

Como parte de la etapa "Validación", antes de responder la pregunta que te interesa (por ejemplo, "¿Agregar la imagen de un rostro aumentó o disminuyó los clics?"), descarta cualquier otra variabilidad en los datos que pueda afectar el experimento. Por ejemplo:

  • ¿Cambió la cantidad de usuarios?
  • ¿Se mostró la cantidad correcta de búsquedas afectadas en todos mis subgrupos?
  • ¿Cambiaron las tasas de error?

Estas preguntas son sensatas para las comparaciones de experimentos y controles, y cuando se examinan tendencias a lo largo del tiempo.

Estándar primero; personalizado segundo

Cuando se analizan funciones y datos nuevos, resulta tentador analizar directamente las métricas que son nuevas o especiales para esta función nueva. Sin embargo, siempre debes mirar las métricas estándar primero, incluso si esperas que cambien. Por ejemplo, cuando agregues un nuevo bloque universal a la página, asegúrate de comprender el impacto en las métricas estándar, como "clics en resultados de la Web", antes de sumergirte en las métricas personalizadas sobre este nuevo resultado.

Las métricas estándar se validan mucho mejor y tienen más probabilidades de ser correctas que las métricas personalizadas. Si tus métricas personalizadas no tienen sentido con tus métricas estándar, es probable que sean incorrectas.

Mide dos veces o más

Especialmente si intentas capturar un fenómeno nuevo, intenta medir el mismo elemento subyacente de varias maneras. Luego, determina si estas mediciones múltiples son coherentes. Cuando usas varias mediciones, puedes identificar errores en el código de medición o registro, características inesperadas de los datos subyacentes o pasos de filtrado que son importantes. Es aún mejor si puedes utilizar diferentes fuentes de datos para las mediciones.

Comprueba la reproducibilidad

Tanto la segmentación como la coherencia a lo largo del tiempo son ejemplos particulares de verificación de reproducibilidad. Si un fenómeno es importante y significativo, deberías verlo en diferentes épocas y poblaciones de usuarios. Sin embargo, verificar la reproducibilidad implica más que realizar estas dos verificaciones. Si compilas modelos de los datos, lo ideal es que sean estables ante pequeñas perturbaciones en los datos subyacentes. El uso de diferentes intervalos de tiempo o submuestras aleatorias de tus datos también te indicará qué tan confiable o reproducible es este modelo.

Si un modelo no es reproducible, es probable que no estés capturando algo fundamental sobre el proceso subyacente que produjo los datos.

Verifica la coherencia con las mediciones anteriores

A menudo, calcularás una métrica que es similar a cosas que se contaron en el pasado. Debes comparar tus métricas con las métricas informadas en el pasado, incluso si estas mediciones se realizan en diferentes poblaciones de usuarios.

Por ejemplo, si observas el tráfico de consultas en una población especial y mides que el tiempo promedio de carga de la página es de 5 segundos, pero los análisis anteriores de todos los usuarios dieron un tiempo promedio de carga de la página de 2 segundos, debes investigar. Es posible que tu número sea el adecuado para esta población, pero ahora tienes que seguir trabajando para validarlo.

No es necesario que obtengas un acuerdo exacto, pero debes estar en la misma balanza. Si no es así, supón que te equivocas hasta que puedas convencerte por completo. La mayoría de los datos sorprendentes serán un error, no una nueva conclusión fabulosa.

Las métricas nuevas se deben aplicar primero a los datos o funciones anteriores

Si creas métricas nuevas (posiblemente mediante la recopilación de una fuente de datos nueva) y tratas de aprender algo nuevo, no sabrás si tu métrica nueva es correcta. Con las métricas nuevas, primero debes aplicarlas a una función o datos conocidos. Por ejemplo, si tienes una métrica nueva para la satisfacción del usuario, debes asegurarte de que te indique cuáles son las mejores funciones que ayudan a lograr la satisfacción. Si tienes una métrica nueva sobre dónde dirigen su atención a la página, asegúrate de que coincida con lo que sabemos al observar el seguimiento ocular o los estudios de evaluadores sobre cómo las imágenes afectan la atención de la página. Esto proporciona validación cuando aprendes algo nuevo.

Hacer hipótesis y buscar evidencia

Por lo general, el análisis de datos para un problema complejo es iterativo.2 Descubrirás anomalías, tendencias y otros atributos de los datos. Naturalmente, desarrollarás teorías para explicar estos datos. No te limites a desarrollar una teoría y a declararla como verdadera. Busca evidencia (dentro o fuera de los datos) para confirmar o negar esta teoría. Por ejemplo:

  • Si observas algo que parece una tendencia de aprendizaje, verifica si se manifiesta de manera más fuerte en los usuarios de alta frecuencia.
  • Si crees que una anomalía se debe al lanzamiento de algunas funciones, asegúrate de que la población a la que se lanzó la función sea la única afectada por la anomalía. Como alternativa, asegúrate de que la magnitud del cambio sea coherente con las expectativas del lanzamiento.
  • Si ves que las tasas de crecimiento de los usuarios cambian en una configuración regional, intenta encontrar una fuente externa que valide esa tasa de cambio en la población de usuarios.

Un buen análisis de datos tendrá una historia que contar. Para asegurarte de que sea la historia correcta, debes contarla a ti mismo y, luego, buscar evidencias de que no sean correctas. Una forma de hacerlo es preguntarte: “¿Qué experimentos podría realizar para validar o invalidar la historia que estoy contando?”. Incluso si no puedes o no puedes hacer estos experimentos, pueden darte ideas sobre cómo validarlos con los datos que tienes.

La buena noticia es que estas teorías y posibles experimentos pueden conducir a nuevas líneas de investigación que trascienden el intento de aprender sobre cualquier función o datos en particular. Luego, ingresarás al ámbito de la comprensión no solo de estos datos, sino también de la derivación de métricas y técnicas nuevas para todo tipo de análisis futuros.

El análisis exploratorio se beneficia de la iteración de extremo a extremo

Cuando realices un análisis exploratorio, realiza tantas iteraciones del análisis como sea posible. Por lo general, tendrás varios pasos para recopilar, procesar, modelar, etc., si pasas demasiado tiempo haciendo que la primera etapa de tus indicadores iniciales sea perfecta, te perderás la oportunidad de realizar más iteraciones en la misma cantidad de tiempo. Además, cuando finalmente observes tus datos al final, es posible que hagas descubrimientos que cambien tu dirección. Por lo tanto, el enfoque inicial no debe centrarse en la perfección, sino en obtener algo razonable al principio. Deja las notas para ti y confirma aspectos como los pasos de filtrado y las solicitudes no analizables o inusuales, pero no pierdas tiempo intentando deshacerte de todas ellas al comienzo del análisis exploratorio.

Ten cuidado con los comentarios

Por lo general, definimos varias métricas en torno al éxito de los usuarios. Por ejemplo, ¿los usuarios hicieron clic en un resultado? Si luego vuelves a enviar esos datos al sistema (lo que en realidad hacemos en varios lugares), creas muchas oportunidades de confusión en la evaluación.

No puedes usar la métrica que se envía a tu sistema como base para evaluar el cambio. Si muestras más anuncios que obtienen más clics, no puedes usar "más clics" como base para decidir que los usuarios están más satisfechos, aunque "más clics" a menudo significa "más feliz". Además, ni siquiera debes dividir las variables que proporcionaste y manejaste, ya que esto generará cambios en la mezcla que serán difíciles o imposibles de comprender.

Mentalidad

En esta sección, se describe cómo trabajar con otras personas y comunicar las conclusiones.

El análisis de datos comienza con preguntas, no con datos ni con una técnica

Siempre hay una motivación para analizar los datos. Formular tus necesidades como preguntas o hipótesis ayuda a garantizar que estás recopilando los datos que debes recopilar y que estás pensando en las posibles brechas en los datos. Por supuesto, las preguntas que hagas deben evolucionar a medida que observas los datos. Sin embargo, el análisis sin una pregunta terminará sin sentido.

Evita encontrar una técnica favorita y, luego, solo encontrar las partes de los problemas en las que funciona esta técnica. Una vez más, crear preguntas claras te ayudará a evitar esta trampa.

Sé escéptico y campeón

A medida que trabajas con datos, debes convertirte en el defensor de las estadísticas que estás obteniendo y ser escéptico sobre ellas. Con suerte, encontrarás algunos fenómenos interesantes en los datos que observes. Cuando detectes un fenómeno interesante, hazte las siguientes preguntas:

  • ¿Qué otros datos podría recopilar para mostrar lo increíble que es esto?
  • ¿Qué puedo encontrar que invalide esto?”

Especialmente en los casos en los que realizas un análisis para alguien que realmente desea una respuesta en particular (por ejemplo, "¡Mi función es genial!"), debes ponernos escépticos para evitar cometer errores.

Correlación != Causalidad

Cuando planteamos teorías sobre los datos, a menudo deseamos afirmar que "X causa Y". Por ejemplo, "la página que se vuelve más lenta causó que los usuarios hagan menos clics". Incluso xkcd sabe que no puedes simplemente establecer una causalidad debido a la correlación. Por lo general, si consideras cómo validar una teoría de causalidad, puedes desarrollar una buena idea de qué tan creíble es una teoría causal.

A veces, las personas tratan de aferrarse a una correlación como significativa cuando afirman que, incluso si no hay una relación causal entre A y B, debe haber algo subyacente en la coincidencia para que un indicador pueda ser un buen indicador o proxy de la otra. Esta área es peligrosa para varios problemas de prueba de hipótesis; como xkcd también sabe, con suficientes experimentos y dimensiones, algunos de los indicadores se alinearán para un experimento específico. Esto no implica que los mismos indicadores se alinearán en el futuro, por lo que tienes la misma obligación de considerar una teoría causal como "hay un efecto oculto C que causa A y B", de modo que puedas intentar validar cuán posible es esto.

Un analista de datos a menudo debe abordar estas preguntas causales para las personas que quieren consumir los datos. Debes tener claro con esos consumidores lo que puedes y no puedes decir sobre la causalidad.

Comparte con tus pares en primer lugar y con los consumidores externos en segundo lugar

Los puntos anteriores sugerían algunas formas de realizar los tipos correctos de verificación y validación de solidez. Pero compartir contenido con un compañero es una de las mejores formas de obligarte a hacer todas estas cosas. Un compañero experto puede proporcionar comentarios cualitativamente diferentes a los de los consumidores de tus datos, en especial porque los consumidores por lo general tienen un temario. Las apps similares son útiles en varios puntos a lo largo del análisis. Desde el principio, puedes obtener información sobre los problemas que tu compañero conoce, sugerencias de cosas para medir e investigaciones pasadas en esta área. Cerca del final, los compañeros son muy buenos para señalar sorpresas, incoherencias u otras confusiones.

Lo ideal sería que obtengas comentarios de un compañero que sepa algo sobre los datos que estás mirando, pero incluso uno que tenga experiencia general en análisis de datos es extremadamente valioso.

Espera y acepta ignorancia y errores

La información que se puede aprender de los datos tiene muchos límites. Nate Silver presenta un caso sólido en The Signal and the Noise de que solo admitiendo los límites de nuestra certeza podemos hacer avances en una mejor predicción. Admitir la ignorancia es una fortaleza que, por lo general, no se recompensa de inmediato. Me resulta mal en este momento, pero es un gran beneficio para ti y tu equipo a largo plazo. Se siente aún peor cuando cometes un error y lo descubres más tarde (o demasiado tarde), pero asumir de forma proactiva los errores te gana a respetarlos. Eso se traduce en credibilidad e impacto.

Reflexiones finales

Gran parte del trabajo para hacer un buen análisis de datos no es inmediatamente evidente para los consumidores de tu análisis. El hecho de que hayas revisado cuidadosamente los tamaños de las poblaciones y hayas validado que el efecto fuera coherente en todos los navegadores probablemente no te permita saber si las personas que intentan tomar decisiones a partir de estos datos. Esto también explica por qué un buen análisis de datos lleva más tiempo de lo que parece para la mayoría de las personas (especialmente cuando solo ven el resultado final). Parte de nuestro trabajo como analistas consiste en educar gradualmente a los consumidores sobre estadísticas basadas en datos sobre cuáles son estos pasos y por qué son importantes.

La necesidad de todas estas manipulaciones y exploraciones de tus datos también establece los requisitos para un buen entorno y lenguaje de análisis de datos. Tenemos muchas herramientas disponibles para examinar los datos. Las diferentes herramientas y lenguajes se adaptan mejor a las diversas técnicas que se describieron anteriormente. Elegir la herramienta correcta es una habilidad importante para un analista. No deberías estar limitado por las capacidades de la herramienta con la que te sientes más cómodo. Tu trabajo es proporcionar estadísticas verdaderas, no aplicar una herramienta en particular.

 


  1. A veces, esto se denomina “análisis inicial de datos”. Consulta el artículo de Wikipedia sobre el análisis de datos 

  2. Técnicamente, solo debería ser iterativo si realizas un análisis de exploración, no un análisis de confirmación.