Saltar al contenido
IntermedioArturo Lorenzo·22 de agosto de 2026·9 min

Preguntas de entrevista para científico de datos: estadística, modelos y experimentos

Cuatro pilares: estadística base, modelos, métricas de evaluación y experimentación. Sin los cuatro, el perfil cojea.

Hay un patrón en las entrevistas de data science que se repite: la gente sabe implementar un XGBoost pero no sabe explicar qué es un p-valor sin recurrir a la definición formal. Sabe calcular el AUC pero no sabe cuándo elegir AUC sobre precision. Sabe que overfitting es malo pero no sabe diagnosticarlo en un modelo nuevo.

Estas 15 preguntas cubren lo que realmente preguntan en entrevistas de científico de datos: no te van a pedir que derives una función de coste a mano, pero sí que expliques conceptos con claridad y que demuestres criterio para tomar decisiones de modelado. Aquí las tienes, con las respuestas que yo daría.

### Bloque 1: Estadística fundamental

1. Explica qué es un p-valor como si se lo explicaras a alguien de producto.

El p-valor responde a esta pregunta: "Si NO hubiera diferencia real, ¿qué probabilidad hay de que yo vea una diferencia así de grande o mayor por pura casualidad?". Si es muy baja (típicamente <0.05), decimos que la diferencia probablemente no es casualidad. NO es la probabilidad de que la hipótesis sea verdadera — es la probabilidad de ver estos datos si la hipótesis nula fuera cierta.

La analogía: lanzas un dado 10 veces y salen 9 seises. El p-valor te dice "la probabilidad de que un dado justo dé 9 seises en 10 tiradas es del 0.001%". No demuestra que el dado esté trucado, pero te dice que sería muy raro si fuera justo.

2. ¿Cuándo puedes asumir que tus datos siguen una distribución normal? ¿Por qué importa?

Importa porque muchos tests estadísticos (t-test, ANOVA) asumen normalidad. Puedes asumir normalidad cuando tienes muestras grandes (n>30, por el teorema central del límite) o cuando un test de Shapiro-Wilk no la rechaza. Pero en la práctica, si tus datos tienen una cola larga (como ingresos o tiempos de respuesta), NO son normales y necesitas tests no paramétricos o transformaciones logarítmicas.

3. Explica el trade-off sesgo-varianza.

Sesgo alto = no aprende. Varianza alta = memoriza. El punto dulce está en medio.

Sesgo alto: el modelo es demasiado simple y no captura los patrones reales (una línea recta para datos curvos). Varianza alta: el modelo es demasiado complejo y se ajusta al ruido de los datos de entrenamiento (un polinomio de grado 100 que pasa por todos los puntos pero falla en datos nuevos). El objetivo es encontrar la complejidad justa: suficiente para capturar el patrón, insuficiente para memorizar el ruido.

4. ¿Qué diferencia hay entre correlación de Pearson y Spearman? ¿Cuándo usas cada una?

Pearson mide relaciones lineales: si X sube 1, Y sube k. Spearman mide relaciones monótonas: si X sube, Y también sube (pero no necesariamente de forma lineal). Usa Pearson cuando la relación es lineal y los datos son normales. Usa Spearman cuando hay outliers, cuando la relación es curva monótona, o cuando trabajas con datos ordinales (rankings).

### Bloque 2: Machine Learning

5. ¿Cómo detectas que un modelo tiene overfitting? ¿Qué haces?

Lo detectas cuando el rendimiento en train es muy bueno pero en test es significativamente peor. Si tu accuracy en train es 0.99 y en test 0.75, está memorizando. Soluciones: más datos (siempre la mejor), regularización (L1/L2), reducir complejidad del modelo (menos features, menos profundidad en árboles), early stopping, cross-validation para elegir hiperparámetros.

6. Explica regularización L1 vs L2 con una analogía.

Ambas penalizan los pesos grandes del modelo para que no se "obsesione" con ninguna feature. L2 (Ridge) es como un presupuesto: puedes gastar un poco en muchas features pero no mucho en ninguna. L1 (Lasso) es como un presupuesto MUY ajustado: te obliga a dejar features en exactamente 0, eliminándolas. L1 hace selección de features automática; L2 las encoge pero no las elimina.

7. ¿Cuándo elegirías un random forest sobre una regresión logística?

Regresión logística cuando necesitas interpretabilidad (los coeficientes te dicen el efecto de cada variable), cuando la relación es aproximadamente lineal, o cuando tienes pocas features. Random forest cuando las relaciones son no lineales, cuando hay interacciones entre variables que no conoces, cuando quieres un buen rendimiento "out of the box" sin mucho tuning, o cuando la interpretabilidad es secundaria.

8. ¿Qué es feature engineering y por qué importa más que elegir el modelo?

1# Feature engineering: crear variables que capturan señal real
2import pandas as pd
3
4# Features crudas (débiles)
5# fecha_registro, fecha_ultima_compra, num_compras, importe_total
6
7# Features engineered (fuertes)
8df['dias_desde_ultima_compra'] = (pd.Timestamp.now() - df['fecha_ultima_compra']).dt.days
9df['ticket_medio'] = df['importe_total'] / df['num_compras']
10df['frecuencia_compra_mensual'] = df['num_compras'] / (
11 (pd.Timestamp.now() - df['fecha_registro']).dt.days / 30
12)
13df['aceleracion'] = ( # ¿compra más o menos que antes?
14 df['compras_ultimo_mes'] - df['compras_penultimo_mes']
15)
16
17# Un random forest con estas 4 features bate a un XGBoost
18# con las 4 originales. Los datos buenos > modelo complejo.

Feature engineering es el arte de convertir datos crudos en señales que un modelo puede usar. Es donde se ganan las competiciones.

### Bloque 3: Métricas de evaluación

9. ¿Por qué accuracy es una mala métrica en problemas desbalanceados?

Si el 99% de las transacciones NO son fraude, un modelo que siempre dice "no fraude" tiene 99% accuracy y detecta 0 fraudes. Accuracy mide aciertos totales, pero no distingue los tipos de error. En problemas desbalanceados, lo que importa es cómo le va con la clase minoritaria: precision y recall de esa clase.

10. Precision vs Recall: ¿cuándo priorizas cada una? Dame un ejemplo real.

Prioriza precision cuando los falsos positivos son caros: filtro de spam (marcar un email legítimo como spam es peor que dejar pasar spam). Prioriza recall cuando los falsos negativos son caros: detección de cáncer (no detectar un cáncer es peor que una falsa alarma que lleva a más pruebas). En fraude, normalmente recall > precision: preferimos revisar transacciones legítimas (coste: tiempo del analista) a que se cuele un fraude (coste: dinero perdido).

11. ¿Qué mide el AUC-ROC y cuándo es útil?

AUC-ROC mide la capacidad del modelo de distinguir entre las dos clases a través de TODOS los thresholds posibles. Un AUC de 0.5 = modelo aleatorio; 1.0 = perfecto. Es útil cuando no tienes un threshold fijado y quieres una métrica global del poder discriminativo. NO es útil cuando las clases están muy desbalanceadas — en ese caso, AUC-PR (precision-recall) es más informativa.

### Bloque 4: A/B Testing y experimentación

12. ¿Cómo diseñarías un A/B test para probar un nuevo algoritmo de recomendación?

Paso 1: definir la métrica primaria (CTR en recomendaciones, tiempo en plataforma, revenue per user). Paso 2: calcular el tamaño de muestra necesario para detectar el efecto mínimo que importa (por ejemplo, un +2% en CTR). Paso 3: aleatorizar usuarios en control (algoritmo actual) y tratamiento (algoritmo nuevo) — nunca por sesiones, siempre por usuario. Paso 4: definir la duración (mínimo 1-2 semanas para capturar patrones semanales). Paso 5: decidir el criterio de éxito ANTES de mirar resultados.

13. ¿Cómo calculas el tamaño de muestra necesario?

1from scipy import stats
2import numpy as np
3
4def calcular_tamano_muestra(
5 baseline_rate: float, # tasa actual (ej: 5% CTR)
6 mde: float, # minimum detectable effect (ej: 10% relativo)
7 alpha: float = 0.05, # significancia
8 power: float = 0.80 # potencia
9) -> int:
10 """Tamaño de muestra por grupo para un test de proporciones."""
11 p1 = baseline_rate
12 p2 = baseline_rate * (1 + mde) # efecto esperado
13
14 # Fórmula de dos proporciones
15 z_alpha = stats.norm.ppf(1 - alpha / 2)
16 z_beta = stats.norm.ppf(power)
17
18 p_avg = (p1 + p2) / 2
19 n = (
20 (z_alpha * np.sqrt(2 * p_avg * (1 - p_avg)) +
21 z_beta * np.sqrt(p1 * (1 - p1) + p2 * (1 - p2)))
22 ** 2 / (p2 - p1) ** 2
23 )
24 return int(np.ceil(n))
25
26# Ejemplo: CTR actual 5%, quiero detectar un +10% relativo (5% → 5.5%)
27n = calcular_tamano_muestra(0.05, 0.10)
28print(f"Necesitas {n:,} usuarios por grupo")
29# → ~30.000 por grupo para detectar ese efecto

El tamaño de muestra depende de tres cosas: la baseline, el efecto que quieres detectar, y cuánto error toleras.

Error fatal en A/B testing: mirar los resultados antes de tiempo y parar cuando ves significancia. Esto infla los falsos positivos brutalmente (peeking problem). Define la duración ANTES y respétala. O usa métodos secuenciales que corrigen por el peeking.

14. ¿Qué sesgos pueden invalidar un A/B test?

  • Sesgo de selección: si la aleatorización no es correcta (ej: usuarios más activos van al tratamiento)
  • Efecto novedad: los usuarios reaccionan al cambio por ser nuevo, no por ser mejor. Se diluye con el tiempo
  • Contaminación: usuarios del grupo control ven el tratamiento (ej: comparten pantalla con un colega)
  • Efecto Simpson: el resultado global es positivo pero negativo en cada segmento (o viceversa). Siempre segmenta
  • Network effects: el comportamiento de un usuario afecta al de otro (redes sociales, marketplaces). La aleatorización por usuario no funciona bien aquí

15. Tu A/B test no es significativo después de 4 semanas. ¿Qué haces?

No significativo no significa que no haya efecto — significa que no tienes evidencia suficiente para afirmar que lo hay. Opciones: (1) Si el efecto estimado es diminuto y no vale la pena, cierra y declara "no efecto práctico". (2) Si el intervalo de confianza incluye efectos que sí importarían, necesitas más muestra o más tiempo. (3) Revisa si hay heterogeneidad: puede que funcione para un segmento y no para otro (segmenta por dispositivo, país, antigüedad). A veces el "no significativo" global esconde un efecto real en un subgrupo.

### Cómo prepararte como data scientist

  • Estadística: no memorices fórmulas. Entiende QUÉ PREGUNTA responde cada test y CUÁNDO se rompe (violación de supuestos).
  • ML: practica explicando tus decisiones. "Elegí random forest porque..." es más valioso que "probé 7 modelos y este ganó".
  • Métricas: para cada proyecto que hagas, pregúntate "¿qué métrica elegiría y por qué?". La respuesta correcta depende del contexto de negocio.
  • A/B testing: la mayoría de candidatos no sabe diseñar un test. Si tú sí, destacas inmediatamente.
  • Código: sé capaz de escribir las 30 líneas de un modelo de memoria. No tienes que memorizar documentación, pero sí el flujo.

Lo que separa a un data scientist junior de uno senior en entrevista no es saber más algoritmos — es saber explicar por qué elegiste ese algoritmo, qué asumes al usarlo, y qué puede salir mal. Si dominas el "por qué" detrás de cada decisión, las preguntas técnicas se vuelven conversaciones, no exámenes.

Consejo de entrevista: si te preguntan algo que no sabes, di "no estoy seguro, pero mi intuición es..." y razona en voz alta. Un candidato que razona con honestidad impresiona más que uno que inventa una respuesta falsa con confianza.

$ whoami

Regístrate gratis para dar like, guardar posts en carpetas y recibir nuevos artículos por email.

Leer está bien. Ejecutar está mejor.

## comentarios

¿Te ha servido? ¿Añadirías algo? ¿Lo has vivido de otra forma en tu trabajo? Cuéntalo.

Inicia sesión para comentar y responder.

cargando comentarios...