Skip to the content.
Foto de Andrés Esquivel Díaz

Andrés Esquivel Díaz

Data Analyst | Python · SQL · Tableau · A/B Testing

Sobre mí

Soy Licenciado con certificación en Análisis de Datos, con una trayectoria de 13+ años liderando operaciones, análisis y optimización de procesos en el sector hotelero de lujo.

Combino la experiencia práctica en eficiencia, liderazgo y servicio con habilidades técnicas en Python, SQL, Excel y Tableau, aplicadas en proyectos de análisis exploratorio, pruebas A/B y visualización interactiva. Mi enfoque está en transformar datos en estrategias accionables, optimizar recursos y contar historias con datos que generen valor real para el negocio.

Habilidades

Proyectos destacados

📞 Telecomunicaciones: Identificar operadores ineficaces

Objetivo: Detectar operadores ineficaces para decisiones de capacitación, redistribución de carga y dimensionamiento.

EDA:

Preguntas guía

  1. ¿Cuántos operadores distintos existen?
  2. ¿Cuántos clientes aparecen en llamadas vs. en la tabla maestra?
  3. ¿Cómo se distribuye direction (in/out)?
  4. ¿Qué porcentaje de llamadas es interna (internal=True)?
  5. ¿Cuál es la tasa de llamadas perdidas en entrantes (is_missed_call=True)?
  6. ¿Qué planes concentran mayor actividad?

EDA y limpieza inicial

  • Actividad de clientes: 307 de 732 tuvieron llamadas; 425 sin tráfico en el periodo.
  • Operadores únicos: 1,093.
  • Dirección de llamadas: 59% salientes / 41% entrantes.
  • Naturaleza: 11% internas; resto externas.
  • Missed rate (entrantes): 39.3%, nivel elevado → foco de mejora.
  • Evolución temporal: crecimiento marcado; de <1,000 al inicio a >15,000 llamadas/día en oct–nov.
  • Planes tarifarios: el Plan A concentra cerca de la mitad del volumen.
  • Decisión de limpieza: imputar internal nulos como False.

Feature Engineering y KPIs

  • Se construyeron KPIs por operador: missed_rate, avg_wait_time y out_calls.
  • Tras exigir ≥50 llamadas entrantes por operador, quedaron 438 operadores válidos.
  • Descriptivos clave:
    • missed_rate medio ≈ 23% (máx. 50%).
    • avg_wait_time medio ≈ 121 s; existen casos extremos >15 min.
    • out_calls muy desigual: desde 0 hasta >60k por operador.
  • Se detectaron registros sin operator_id (vacío) y se etiquetaron como “Unassigned”.

Gráficos — KPIs por operador

1) Histograma de missed_rate
• Distribución bimodal: muchos operadores cerca de 0.0 y otro grupo en 0.5.
• El pico en 0.5 está fuertemente asociado a “Unassigned” (llamadas sin operador).
Interpretación: conviven operadores con buen desempeño y un bloque afectado por problemas de asignación/enrutamiento.

Histograma de missed rate

2) Histograma de avg_wait_time (cap a 600 s)
• Distribución sesgada a la derecha: la masa central está entre 20–120 s.
• Hay cola larga (≥300–600 s), indicador de ineficiencias puntuales y picos de carga.
Implicación: fijar SLA (p. ej., 80% < 30 s) y alertas para operadores con > 60 s sostenidos.

Histograma de avg_wait_time

3) Histograma de out_calls (escala log)
• Alta concentración en valores bajos (0–200) y pocos outliers muy altos.
• Sugiere roles distintos: gran parte casi no realiza outbound; unos pocos concentran campañas.
Implicación: documentar roles/expectativas y usar KPIs normalizados por tiempo/turno (p. ej., out_calls/día activo).

Histograma de out_calls

4) Dispersión missed_rate vs avg_wait_time
• Dos bandas (≈0.0 y ≈0.5) y correlación débil e inversa.
• Un alto missed_rate no implica mayor espera: hay misses “rápidos” por abandono o enrutamiento.
Implicación: priorizar mejoras de enrutamiento y cobertura en picos antes de atribuirlo al desempeño individual.

Dispersión missed_rate vs avg_wait_time

5) Boxplot de out_calls por plan (A/B/C)
• Medianas bajas con gran dispersión (ceros y outliers).
• Consistente con el análisis: Plan A > Plan B en outbound; Plan C es heterogéneo.
Implicación: ajustar objetivos outbound por plan/rol, evitando comparaciones directas sin contexto.

Boxplot de out_calls por plan

Inefficiency Score

  • Se creó un índice ponderado:
    • 0.4 * missed_rate_norm
    • 0.4 * wait_time_norm
    • 0.2 * (1 – out_calls_norm)
  • Umbral de ineficiencia: score > 0.70 (ajustable según SLA/negocio).
  • El Top 20 está dominado por registros “Unassigned”, con:
    • missed_rate cercano a 50%,
    • esperas > 1,000 s,
    • muy pocas llamadas salientes.
  • Interpretación: el mayor foco de ineficacia responde a un problema de enrutamiento/asignación del sistema más que a bajo desempeño individual.
  • Implicación operativa: priorizar la corrección de “Unassigned” y mantener el filtro de exposición mínima para evaluaciones justas por operador.

Pruebas de Hipótesis:

H1: Operadores con mayor proporción de llamadas perdidas presentan mayor tiempo de espera promedio.
Prueba: Spearman (correlación no paramétrica) entre missed_rate y avg_wait_time
Resultado:
H1 — Missed rate vs. tiempo de espera
ρ = -0.132, p = 0.0058 → correlación significativa, débil e inversa.
Interpretación: más llamadas perdidas no implica esperas más largas; muchos “misses” parecen abandonos rápidos o fallas de enrutamiento.

Missed rate vs Tiempo de espera

H2: Operadores asignados a clientes con tarifa B realizan menos llamadas salientes que los de tarifa A.
Prueba: Mann–Whitney U (dos colas, no paramétrica) sobre out_calls entre grupos A vs. B
Resultado:
H2 — Outbound en Plan A vs. Plan B
p = 0.0005 → diferencia significativa.
Conclusión: operadores en Plan A realizan más llamadas salientes que en Plan B.

Plan A vs Plan B outbound

H3: El rendimiento de operadores difiere significativamente entre llamadas internas y externas (tiempo de espera).
Prueba: Kruskal–Wallis (no paramétrica) sobre wait_time en entrantes internas vs. Externas
Resultado:
H3 — Internas vs. externas (wait time)
p < 0.0001 → diferencia significativa.
Conclusión: las llamadas externas presentan mayores tiempos de espera que las internas.

Internas vs Externas wait time

Hallazgos clave:

  1. Crecimiento de volumen
    • El tráfico aumentó con fuerza entre agosto y noviembre de 2019, con picos >15k llamadas/día.
    • Probable efecto de campañas intensivas o expansión acelerada de clientes.
  2. Clientes y planes
    • Solo 307 de 732 clientes tuvieron actividad en el periodo.
    • El Plan A concentra ~50% del volumen; le siguen C y B.
  3. Eficiencia de operadores
    • De 1,093 operadores detectados, 438 cumplen la exposición mínima (≥50 entrantes).
    • Missed rate promedio: 23% (alto).
    • Tiempo de espera promedio: 121 s, con casos >15 min.
    • Out_calls: distribución muy desigual (de 0 a >60k por operador).
  4. Operadores ineficaces
    • El Inefficiency Score ubica un grupo crítico dominado por “Unassigned” (llamadas sin operador).
    • Indica un problema de enrutamiento/asignación más que de desempeño individual.
  5. Pruebas de hipótesis
    • H1: correlación significativa pero débil e inversa entre missed y espera (ρ = -0.132).
    • H2: Plan A > Plan B en llamadas salientes (p < 0.001).
    • H3: las externas presentan mayor espera que las internas (p < 0.001).

Recomendaciones prácticas:

  • Corregir enrutamiento “Unassigned”. Principal foco de ineficacia y origen de gran parte de los misses.
  • Capacitación focalizada. Coaching/redistribución para operadores con missed_rate > 20% o avg_wait_time > 60 s.
  • Optimizar el Plan B. Alinear roles/objetivos outbound o revisar expectativas contractuales.
  • Definir SLAs por plan. Ej.: 80% de llamadas atendidas en < 30 s.
  • Dimensionamiento de personal. Refuerzos en picos (oct–nov) y ajuste de turnos.
  • Monitoreo continuo. Dashboard en Tableau con volumen diario, KPIs por operador y Watchlist.
</div>

🅰️🅱️ AB Test — App Typography

Objetivo: Detección de ineficiencias y missed calls por operador y routing. Reglas de enrutamiento y priorización para mejorar la calidad del servicio.

Preparación de los datos

Renombramos las columnas para que tengan nombres más descriptivos:

  • event: tipo de evento realizado
  • user_id: identificador único de usuario
  • timestamp: marca temporal en formato UNIX
  • experiment: ID del experimento (246 y 247 = control, 248 = prueba)

También convertimos el timestamp a formato de fecha legible y separamos la fecha en una columna aparte.

Exploración general de los datos

  • Eventos totales: 244126
  • Usuarios únicos: 7551
  • Promedio de eventos por usuario: 32.33
  • Rango de fechas: 2019-07-25 a 2019-08-07
Distribución temporal de eventos

Completitud de los datos

Al analizar el histograma de eventos por fecha, se observa un cambio brusco a partir del 1 de agosto de 2019, donde el volumen de eventos supera los 10,000 diarios de forma consistente. Esto indica que los datos antes de esta fecha podrían estar incompletos o corresponder a pruebas. Por lo tanto, se considera como punto de partida confiable el 1 de agosto de 2019.

Impacto del filtrado

  • Eventos excluidos: 2,828
  • Usuarios excluidos: 17

La pérdida es mínima en relación al total, por lo que se justifica su eliminación para asegurar la calidad del análisis.

Verificación de grupos experimentales

  • Grupo 246 (Control A)
  • Grupo 247 (Control A)
  • Grupo 248 (Prueba B)

Esto garantiza que el análisis del embudo de eventos y el test A/A/B puede continuar sin sesgos por datos incompletos.

Embudo:

Basándonos en los nombres de los eventos, se propone el siguiente orden secuencial:

  1. MainScreenAppear – pantalla principal
  2. OffersScreenAppear – usuario navega por ofertas
  3. CartScreenAppear – el usuario entra al carrito
  4. PaymentScreenSuccessful – pago exitoso

Se calcula cuántos usuarios llegan a cada etapa y la conversión entre cada paso. Esto permite identificar en qué momento se pierden más usuarios.

Embudo de conversión de usuarios

Análisis del embudo de conversión

EtapaUsuariosConversión desde anteriorConversión desde inicioCaída desde anterior
MainScreenAppear7,419-100%-
OffersScreenAppear4,59361.9%61.9%38.1%
CartScreenAppear3,73481.3%50.3%18.7%
PaymentScreenSuccessful3,53994.8%47.7%5.2%
  • Mayor caída: ocurre al pasar de MainScreenAppear a OffersScreenAppear con una pérdida del 38.1%.
  • Usuarios que completan todo el embudo: 47.7% desde la primera pantalla hasta el pago exitoso.

A/B:

Resultados del test A/B: comparación entre grupo experimental (248) y grupos de control (246 + 247). Se aplicó una prueba Z de proporciones para los cinco eventos principales. Aquí están los resultados:

EventoGrupo Experimental (%)Grupo Control (%)Z-StatValor p
Tutorial11.00%11.23%-0.2990.7649
MainScreenAppear98.27%98.58%-1.0490.2942
OffersScreenAppear60.35%61.28%-0.7820.4343
CartScreenAppear48.48%50.11%-1.3350.1818
PaymentScreenSuccessful46.55%47.19%-0.5240.6004

Conclusión: No se detectaron diferencias estadísticamente significativas (todos los valores p > 0.05) entre el grupo experimental y los grupos de control combinados.

Comparativa de grupos experimentales

Visualización comparativa de comportamiento por grupo experimental

El gráfico anterior muestra la proporción de usuarios que realizaron cada uno de los eventos clave, separados por grupo experimental:

  • Grupos 246 y 247: control (fuentes antiguas)
  • Grupo 248: experimental (fuente nueva)

Observaciones clave:

  • Las proporciones son muy similares entre todos los grupos para cada evento.
  • No se observan diferencias visuales significativas que indiquen un cambio en el comportamiento del usuario por la nueva fuente.
  • Esto refuerza visualmente lo que ya fue demostrado estadísticamente en las pruebas Z.

Conclusión: El diseño con nueva fuente no afectó negativamente la experiencia de los usuarios en ninguna etapa del embudo ni en los eventos más comunes.

Significancia:

En este análisis se ha utilizado un nivel de significancia común de α = 0.05 para todas las pruebas de hipótesis estadísticas (Z-tests de proporciones). Esto significa que aceptamos un 5% de probabilidad de obtener un falso positivo por prueba.

¿Cuántas pruebas realizamos?

  • 5 eventos entre grupos de control (test A/A)
  • 5 eventos entre grupo experimental y controles combinados (A/B)
  • 5 eventos entre grupo experimental y grupo 246
  • 5 eventos entre grupo experimental y grupo 247

Total de pruebas realizadas: 20. Con α = 0.05, la probabilidad de tener al menos un falso positivo en 20 pruebas es considerable. Si se hubiera usado α = 0.10, entonces esperaríamos 2 falsos positivos en promedio, incluso si no existiera ningún efecto real.

  • Si ninguna de las pruebas dio p < 0.05 (como en este caso), no es necesario ajustar el nivel de significancia: los resultados son robustos.
  • Si se hubieran detectado valores p < 0.05, habría que aplicar una corrección por comparaciones múltiples, como:
    • Bonferroni: α ajustado = 0.05 / 20 = 0.0025
    • Benjamini-Hochberg: más flexible, controla la tasa de falsos descubrimientos.

Conclusión del Proyecto

  1. Embudo de conversión
    • Solo el 47.7% de los usuarios que inician su sesión llegan hasta la compra.
    • La mayor pérdida se da entre la pantalla principal y la de ofertas (−38%), lo que sugiere una posible fricción o desinterés en esa etapa.
  2. Validez del experimento (test A/A)
    • Los grupos de control (246 y 247) muestran resultados estadísticamente indistinguibles.
    • Esto valida la asignación aleatoria y la confiabilidad del experimento A/B.
  3. Impacto del cambio de fuente (grupo 248)
    • Se comparó el grupo experimental con los controles de forma combinada e individual.
    • No se detectaron diferencias significativas en la proporción de usuarios que realizan los eventos clave.
    • Se realizaron 20 pruebas estadísticas sin obtener falsos positivos (todos los valores p > 0.05).

Conclusión final
El cambio de fuente no tiene un impacto negativo en el comportamiento de los usuarios. Esto fue demostrado tanto visual como estadísticamente.
Recomendación: El equipo de diseño puede implementar el nuevo tipo de fuente con confianza. Se recomienda, sin embargo, investigar más a fondo la etapa de ofertas, donde se pierde el mayor porcentaje de usuarios.

🎮 ICE — Análisis de Ventas de Videojuegos

Identificar los factores clave que determinan el éxito de un videojuego a partir de datos históricos de ventas, reseñas, plataformas, géneros y clasificación ESRB. Esto permitirá a Ice tomar decisiones estratégicas para campañas en 2017.

EDA:

  • Se convirtió year_of_release a numérico entero para permitir cálculos por año; muchos valores eran objetos por tener datos faltantes.
  • La columna user_score contenía valores como "tbd", que fueron reemplazados con NaN para luego convertir todo a float.
  • Convertí estas columnas para asegurar el análisis estadístico y gráfico con ellas.
  • Eliminé filas sin name o genre porque son esenciales para identificar el juego y su clasificación.
  • No rellené puntuaciones faltantes (user_score, critic_score) porque su ausencia probablemente indica que los juegos no fueron evaluados.
  • Los valores 'tbd' fueron tratados como nulos apropiadamente.

Analísis de datos:

Evolución histórica de lanzamientos
  • Observamos un fuerte crecimiento desde mediados de los 90s hasta un pico alrededor de 2008-2011.
  • Desde 2012, la cantidad de lanzamientos parece disminuir.
  • Los datos de 2016 pueden estar incompletos, por lo que el análisis predictivo se debería basar en datos hasta 2015.
Ventas por plataforma histórica
Ventas por plataforma actual
  • Las plataformas con mayores ventas históricas son PS2, X360, PS3, Wii y DS.
  • Algunas plataformas ya están obsoletas en 2016; el segundo gráfico muestra lo más vendible en el mercado actual.
Distribución de ventas por género
  • PS4 y XOne dominan claramente el mercado reciente, con ventas muy superiores a otras plataformas.
    Estas deben ser el foco principal de campañas publicitarias y lanzamientos nuevos.
  • 3DS y WiiU mantienen una base de usuarios activa, especialmente en mercados como Japón (3DS).
    Potenciales para nichos específicos o juegos portátiles.
  • PSV (PlayStation Vita), aunque con menos ventas, muestra actividad y podría explotarse en regiones específicas o con títulos de nicho.
  • PS2, PS3, X360 y Wii muestran ventas bajas o nulas en el periodo reciente, a pesar de haber sido líderes históricos.
    Son plataformas obsoletas; deben evitarse en campañas nuevas o distribución de productos actuales.
  • PC también muestra una caída en ventas de juegos físicos, lo que puede deberse al auge de distribución digital.
    No debe descartarse del todo, pero su estrategia debe centrarse en digital.
  • Otras plataformas clásicas (DS, PSP, GB, etc.) prácticamente no tienen ventas desde 2013.
    Estas pueden eliminarse completamente del análisis estratégico para 2017.
Distribución de ventas por juego
  • La mayoría de los juegos tienen ventas bajas (<1 millón), pero hay muchos títulos con ventas extremadamente altas.
  • Plataformas como Wii, PS2 y DS tuvieron juegos exitosos con ventas excepcionales.
  • La dispersión sugiere que algunas plataformas producen grandes éxitos, pero la mayoría de los juegos tienen ventas modestas.
Géneros más rentables
  • Los géneros más rentables son Action, Sports, y Shooter, tanto por volumen como por total de ventas.
  • Sin embargo, algunos géneros como Platform o Role-Playing también tienen grandes éxitos a pesar de menor cantidad de juegos.
  • Géneros como Puzzle o Strategy tienen ventas más modestas.

Insights:

Análisis de Datos:

  • Número de lanzamientos: El número de juegos creció hasta 2009 y luego decayó; los datos de 2016 están incompletos. Para analizar tendencias, se usaron datos hasta 2015.
  • Plataformas líderes: PS2, X360 y Wii tienen mayores ventas históricas, pero para 2016 las plataformas más prometedoras son PS4, XOne y 3DS.
  • Plataformas relevantes: Se priorizó el análisis de plataformas con mayores ventas recientes (2013–2016), no solo históricas, identificando a PS4, XOne, 3DS, WiiU y PSV como las más activas.
  • Se identificaron plataformas en declive, como PS2, PS3, Wii y X360, mediante una gráfica comparativa de evolución de ventas.
  • Ventas por género: Action, Shooter y Sports lideran en ventas. Sin embargo, Role-Playing muestra gran relevancia en Japón.
  • Efecto de las reseñas: Existe correlación positiva entre puntuaciones de críticos y ventas (mayor que la de usuarios), aunque sigue siendo moderada.

Conclusión:

  • Priorizar plataformas activas y en crecimiento como PS4, XOne y 3DS para lanzamientos y campañas.
  • Evitar plataformas en declive como PS2, PS3, Wii, X360, salvo en catálogos históricos o retro.
  • Adaptar géneros y contenido según la región: Role-Playing para JP, Action y Sports para NA/EU.
  • Dar mayor atención a las reseñas de críticos, ya que influyen más en las ventas que las de usuarios.
</div>
© 2025 Andrés Esquivel Díaz · Hecho con GitHub Pages