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
- Última actualización importante: junio de 2019
- Una versión anterior de este material apareció en el Blog no oficial de ciencia de datos de Google: octubre de 2016
Descripción general
Obtener información y verdad a partir de una pila de datos es un trabajo potente, pero propenso a errores. Los mejores analistas de datos y los ingenieros enfocados en los datos desarrollan una reputación por hacer pronunciaciones creíbles a partir de los datos. Pero, ¿qué hace que le dé credibilidad? Con frecuencia escucho adjetivos como cuidado y metódico, pero ¿qué hacen en realidad los analistas más cuidadosos y metódicos?
Esta no es una pregunta trivial, en especial dado el tipo de datos que recopilamos con regularidad en Google. No solo trabajamos con conjuntos de datos muy grandes, sino que son muy enriquecidos. Es decir, cada fila de datos suele tener muchos atributos. Cuando combinas esto con las secuencias temporales de eventos para un usuario determinado, existe una enorme cantidad de formas de observar los datos. Compara esto con un experimento psicológico académico típico en el que es trivial para el investigador analizar cada punto de datos. Los problemas que plantean nuestros grandes conjuntos de datos de alta dimensión son muy diferentes de los que se encuentran 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 se aplican de manera más amplia.
El resto del documento consta de tres secciones que abarcan diferentes aspectos del análisis de datos:
- Aspectos técnicos: Ideas y técnicas para manipular y examinar tus datos
- Procesar: Son recomendaciones sobre cómo abordar los datos, qué preguntas hacer y qué aspectos se deben verificar.
- Mentalidad: Cómo trabajar con otros y comunicar estadísticas.
Técnico
Veamos algunas técnicas para examinar tus datos.
Consulta 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 enriquecidas a través de la generación de histogramas, funciones de distribución acumulativa (CDF), gráficos cuantiles-cuantiles (Q-Q), etcétera. Estas representaciones enriquecidas te permiten detectar características importantes de los datos, como un 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 analizas las consultas con la cantidad más baja de clics, es posible que se revele los clics en elementos que no se cuentan. Si analizas las consultas con la mayor cantidad de clics, es posible que se revele la cantidad de clics que no deberías registrar. Por otro lado, puede haber algunos valores atípicos que nunca podrás explicar, por lo que debes tener cuidado con el tiempo que le dedicas a esta tarea.
Ten en cuenta el ruido
La aleatoriedad existe y nos engañará. Algunas personas piensan: “Google tiene muchos datos, el ruido desaparece”. Pero no es verdad. Cada número o resumen de datos que produzcas debe tener una noción de confianza en esta estimación (a través de medidas como intervalos de confianza y p-values).
Consultar ejemplos
Cada vez que produzcas un nuevo código de análisis, debes consultar los ejemplos de los datos subyacentes y cómo tu código interpreta esos ejemplos. Es casi imposible producir un 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 toda la complejidad de los ejemplos individuales, puedes tener la certeza de que tu resumen es razonable.
La forma en que muestres estos ejemplos es importante:
- Si estás clasificando los datos subyacentes, observa los ejemplos de cada clase.
- Si se trata de una clase más grande, revisa 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 5% más rápido y el más lento, por ejemplo, cómo se ve tu distribución, ¿verdad?), así como puntos en todo el espacio de mediciones.
Divide tus datos
La segmentación significa separar tus datos en subgrupos y observar los valores de las métricas de cada subgrupo por separado. Por lo general, dividimos 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 división produzca resultados diferentes, buscar algunas porciones en busca de la coherencia interna te brinda una mayor confianza de que estás midiendo lo correcto. En algunos casos, una porción específica puede tener datos incorrectos, una interacción del usuario dañada o ser completamente diferente de alguna manera.
Cada vez que segmentes los datos para comparar dos grupos (como experimento vs. control, o incluso “tiempo A” frente a “tiempo B”), debes tener en cuenta los cambios en la mezcla. Un cambio de combinación ocurre cuando la cantidad de datos en las porciones de cada grupo es diferente. La paradoja de Los Simpson y otras confusiones pueden dar como resultado. Por lo general, si la cantidad relativa de datos en una porción es la misma en ambos grupos, puedes hacer una comparación de forma segura.
Considera la importancia práctica
Con un gran volumen de datos, puede ser tentador enfocarse solamente en la importancia estadística o concentrarse en los detalles de cada bit de datos. 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 importante, en especial, si no puedes comprender/categorizar parte de los 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 la medida en que debes investigar esos casos.
De forma alternativa, a veces tienes un volumen pequeño de datos. Muchos cambios no se verán estadísticamente significativos, pero eso es diferente de afirmar que estos cambios son "neutrales". Debes preguntarte: "¿Qué tan probable es que todavía haya un cambio prácticamente significativo?"
Comprueba la coherencia a lo largo del tiempo
Casi siempre debes intentar dividir los datos por unidades de tiempo porque 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 una recopilación de datos nueva, los profesionales suelen verificar con atención que todo funcione 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 sea un valor atípico no significa que debas descartar los datos correspondientes. Usa los datos como contenido atractivo para determinar un motivo causal por el que ese día o días son diferentes 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, con frecuencia, 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 análisis de datos grandes empiezan por filtrar los datos en varias etapas. Tal vez solo quieras 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é filtrado 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 para la población que excluyes. Luego, puedes observar esos datos para responder preguntas como: “¿Qué fracción de las consultas quitó 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 denominadores claros
Las métricas más interesantes son las proporciones de las mediciones 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
- Búsquedas / usuarios que visitaron Google hoy
- Consultas / usuarios con una cuenta activa (sí, tendría que definir activa)
Sé muy claro aquí para evitar confusiones para ti y los demás.
Otro caso especial son las métricas que pueden calcularse solo en algunos de sus 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 comparas.
Procesos
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:
- Validación1: ¿Creo que los datos son autocoherentes, que se recopilaron correctamente y que representan lo que creo que hacen?
- Descripción: ¿Cuál es la interpretación objetiva de estos datos? Por ejemplo, "Los usuarios realizan menos consultas 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".
- Evaluación: dada la descripción, ¿los datos nos indican que algo bueno está sucediendo para el usuario, para Google o el mundo?
Si separas estas etapas, podrás llegar a un acuerdo con los demás más fácilmente. La descripción debe ser algo con lo que todos puedan ponerse de acuerdo sobre los datos. Es probable que la evaluación genere mucho más debate. Si no separas la descripción de 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 alternar entre las etapas, pero en cualquier momento deberías tener claro en qué etapa te encuentras.
Confirma la configuración del experimento y la recopilación de datos
Antes de analizar datos, asegúrate de comprender el contexto en el que se recopilaron. Si los datos provienen de un experimento, revisa la configuración del experimento. Si proviene de la instrumentación de un cliente nuevo, asegúrate de tener, al menos, una comprensión aproximada de cómo se recopilan los datos. Es posible que detectes configuraciones incorrectas o inusuales, o restricciones de població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 hacerlo, al menos revisa las capturas de pantalla y las descripciones del comportamiento.
- Verifica si hubo actividad inusual en el intervalo de tiempo durante el que se ejecutó el experimento (festividades, lanzamientos grandes, etcétera).
- Determinar qué poblaciones de usuarios estuvieron sujetas al experimento.
Verifica lo que no debe cambiar
Como parte de la etapa de "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 podría afectar el experimento. Por ejemplo:
- ¿Cambió el número de usuarios?
- ¿Apareció la cantidad correcta de consultas afectadas en todos mis subgrupos?
- ¿Cambiaron las tasas de error?
Estas preguntas son sensatas tanto para las comparaciones de experimento/control como cuando se examinan las tendencias a lo largo del tiempo.
Estándar primero, segundo personalizado
Cuando se analizan funciones y datos nuevos, es muy tentador saltar directamente a las métricas que son nuevas o especiales para esta función nueva. Sin embargo, siempre debes consultar 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 los 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 estas sean incorrectas.
Mide dos veces o más
En especial 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. Si usas varias mediciones, puedes identificar errores en el código de medición o registro, funciones inesperadas de los datos subyacentes o pasos de filtrado que sean importantes. Es aún mejor si puedes usar diferentes fuentes de datos para las mediciones.
Comprueba la reproducibilidad
La segmentación y la coherencia en el tiempo son ejemplos particulares de verificación de la reproducibilidad. Si un fenómeno es importante y significativo, deberías verlo en diferentes poblaciones de usuarios y períodos. Pero verificar la reproducibilidad significa más que realizar estas dos verificaciones. Si compilas modelos de los datos, lo ideal es que sean estables en pequeñas perturbaciones en los datos subyacentes. El uso de diferentes intervalos de tiempo o submuestras aleatorias de tus datos también te dirá 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.
Comprueba la coherencia con las mediciones anteriores
A menudo, calcularás una métrica similar a lo que se contó en el pasado. Debes comparar tus métricas con las métricas informadas en el pasado, incluso si estas mediciones están en diferentes poblaciones de usuarios.
Por ejemplo, si observas el tráfico de búsquedas en una población especial y mides que el tiempo de carga promedio de la página es de 5 segundos, pero los análisis anteriores de todos los usuarios dieron un tiempo de carga promedio de 2 segundos, entonces debes investigar. Es posible que tu número sea el adecuado para esta población, pero ahora debes trabajar más a fin de validarlo.
No es necesario que obtengas un acuerdo exacto, pero debes estar en el mismo nivel. De lo contrario, supón que estás equivocado hasta que puedas convencerte por completo. Los datos más 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 novedosa) 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 indique cuáles son las mejores características que ayudan a satisfacer la satisfacción. Si tienes una métrica nueva que indica a dónde los usuarios 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 las páginas. 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 otras características de los datos. Naturalmente, desarrollarás teorías para explicar estos datos. No te limites a desarrollar una teoría y proclame que es 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, comprueba si se manifiesta con mayor frecuencia 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. De forma 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 es la historia correcta, debes contarte la historia a ti mismo y, luego, buscar evidencia de que es incorrecta. Una forma de hacerlo es preguntarte: “¿Qué experimentos podría realizar que validen o invaliden la historia que estoy contando?”. Incluso si no puedes o no puedes hacer estos experimentos, pueden darte ideas para validar 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, ingresas al dominio de la comprensión no solo de estos datos, sino de la obtenció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 completo como sea posible. Por lo general, tendrás varios pasos para recopilar, procesar, modelar, etc., si tardas demasiado en lograr que la primera etapa de tus indicadores iniciales sea perfecta, te perderás la oportunidad de realizar más iteraciones en el mismo tiempo. Además, cuando finalmente mires tus datos al final, es posible que hagas descubrimientos que cambien de dirección. Por lo tanto, tu enfoque inicial no debe estar en la perfección, sino en obtener algo razonable de principio a fin. Deja notas para ti y reconoce aspectos como los pasos de filtrado y las solicitudes inusuales o no analizables, pero no pierdas tiempo tratando de deshacerte de todo al comienzo del análisis exploratorio.
Mantente pendiente de 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 proporcionas 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 la base para decidir que los usuarios están más satisfechos, aunque "más clics" suele significar "más felices". Además, ni siquiera deberías dividir las variables que ingresaste y manipulaste, ya que eso provocaría cambios de combinación que serán difíciles o imposibles de entender.
Mentalidad
En esta sección, se describe cómo trabajar con otros 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 datos. Formular tus necesidades como preguntas o hipótesis ayuda a garantizar que estás recopilando los datos que deberías 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 objetivos.
Evita la trampa de encontrar tu técnica favorita y, luego, solo encuentra las partes del problema en las que funciona esta técnica. Nuevamente, crear preguntas claras te ayudará a evitar esta trampa.
Sé escéptico y defensor
A medida que trabajas con datos, debes convertirte en el defensor de las estadísticas que obtienes y ser escépticos de 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 invalidaría esto?”.
Especialmente en los casos en los que realizas un análisis para alguien que realmente quiere una respuesta en particular (por ejemplo, “¡Mi función es increíble!”), debes ser escéptico para evitar cometer errores.
Correlación != causalidad
Cuando hacemos teorías acerca de los datos, a menudo queremos afirmar que "X causa Y". Por ejemplo, "la página se vuelve más lenta y hace que los usuarios hagan menos clics". Incluso xkcd sabe que no puedes simplemente establecer una causalidad debido a la correlación. Si consideras cómo validar una teoría de causalidad, por lo general, puedes desarrollar una buena idea de qué tan creíble es una teoría causal.
A veces, las personas intentan 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 a la coincidencia para que una señal pueda ser un buen indicador o proxy para la otra. Esta área es peligrosa para varios problemas de prueba de hipótesis; como xkcd también lo sabe, teniendo en cuenta 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" para que puedas intentar validar lo creíble que es esto.
Un analista de datos a menudo debe abordar estas preguntas causales para las personas que quieren consumir los datos. Debes ser claro con esos consumidores lo que puedes y no puedes decir sobre la causalidad.
Comparte el contenido con tus pares en primer lugar y, luego, con los consumidores externos
En los puntos anteriores, se sugirieron algunas formas de realizar los tipos correctos de verificación y validación de sonido. Pero compartir con un compañero es una de las mejores formas de obligarte a hacer todo esto. Un colega calificado puede proporcionar comentarios cualitativamente diferentes de los que pueden hacer los consumidores de tus datos, en especial dado que los consumidores, por lo general, tienen un temario. Los pares son útiles en varios puntos a lo largo del análisis. Desde el principio, puedes averiguar sobre las dificultades que tu compañero conoce, las sugerencias de cosas para medir y las investigaciones anteriores en esta área. Cerca del final, los pares son muy buenos para señalar peculiaridades, incoherencias u otras confusión.
Lo ideal sería que recibas comentarios de un compañero que sepa algo sobre los datos que estás viendo, pero incluso un compañero que solo tenga experiencia general en análisis de datos es extremadamente valioso.
Espera y acepta la ignorancia y los errores
La información que podemos aprender de los datos tiene muchos límites. Nate Silver argumenta con claridad The Signal and the Noise: Solo admitiendo los límites de nuestra certeza podemos hacer avances para mejorar las predicciones. Admitir la ignorancia es una fortaleza que generalmente no se recompensa de inmediato. Me parece 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 incluso demasiado tarde), pero tomarte el conocimiento de ellos de forma proactiva te hace respetar. Ese respeto se traduce en credibilidad e impacto.
Reflexiones finales
Gran parte del trabajo necesario para hacer un buen análisis de datos no es evidente de inmediato para los consumidores de tu análisis. El hecho de que hayas verificado los tamaños de la población con cuidado y hayas validado que el efecto era coherente en todos los navegadores probablemente no llegue al conocimiento de 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. Diferentes herramientas y lenguajes son más adecuados para varias de las técnicas mencionadas 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 sientas más cómodo; tu trabajo es proporcionar estadísticas verdaderas, no aplicar una herramienta en particular.
-
A veces, esto se denomina "análisis inicial de datos". Consulta el artículo de Wikipedia sobre el análisis de datos ↩
-
Técnicamente, solo debería ser iterativo si realizas un análisis exploratorio, no un análisis confirmatorio. ↩