¿Por qué la ciencia de datos?
La ciencia de datos no es «magia de la IA», sino preguntas cuidadosas sobre los datos:
¿Qué está pasando? - análisis descriptivo
¿Por qué sucede esto? - diagnóstico
¿Qué pasará después? - pronóstico
¿Qué hacer? — recomendaciones
Ciclo básico: recopilar → limpiar → ver (EDA) → comprobar la hipótesis → modelar → explicar el resultado y tomar una decisión.
Regla n.º 1: el resultado debe conducir a la acción. Un número por el bien de un número es basura.
Miniguía: qué contar y cómo medir
Pregunta | Lo que consideramos | Herramienta | Tipo de métrica | ¿Qué significa? |
|---|---|---|---|---|
¿Cuánto gastan los clientes? | Recibo promedio (media), mediana | Pandas/SQL | Descriptiva | Punto de referencia de ingresos básicos |
¿Cómo de «viva» está la demanda? | Conversión, frecuencia de compra | Grupos, cohortes | Descriptiva/diagnóstica | Comprensión del embudo |
¿Funciona el banner? | Δ conversiones, prueba t/arranque | SciPy/bootstrapping | Estadísticas de información | Probabilidad de que el efecto no sea accidental |
¿Qué influye en la respuesta? | Correlaciones/importancia de la función | corr(), regresión simple | Diagnóstico | Qué factores son realmente significativos |
¿Cuánto venderemos mañana? | Pronóstico (lineal/árboles) | scikit-learn | Pronóstico | Optimizamos las compras/publicidad |
Ejemplo 1. Cafetería y recibo promedio
Guion: el propietario quiere entender por qué los ingresos «dan saltos».
Datos: tabla orders (id, fecha, importe, método de pago).
Qué hacemos:
Contamos cheque promedio y mediana.
Estamos construyendo distribución de recibos.
Vemos día de la semana — ¿Dónde están los días pico?
df['weekday'] = df['date'].dt.day_name()
avg_check = df['amount'].mean()
median_check = df['amount'].median()
by_weekday = df.groupby('weekday')['amount'].mean().sort_values(ascending=False)
Conclusiones: si el recibo promedio >> mediana, tienes una larga «cola» de pedidos caros. ¿Picos los viernes? Entonces, es mejor lanzar la promoción el jueves por la noche.

Ejemplo 2. Conversión de visualización a compra
Guion: tienda en línea: muchas visitas, pocas compras.
Datos: eventos view_product y purchase con user_id.
views = events.query('event=="view_product"').user_id.nunique()
carts = events.query('event=="add_to_cart"').user_id.nunique()
buys = events.query('event=="purchase"').user_id.nunique()
conv_view_to_cart = carts / views
conv_cart_to_buy = buys / carts
Conclusión: si hay una disminución en la etapa «cesta → compra», verifica la UX, los errores de formulario o el costo de envío.
Ejemplo 3. Prueba A/B rápida de un banner
from statsmodels.stats.proportion import proportions_ztest
count = np.array([buys_B, buys_A])
nobs = np.array([visits_B, visits_A])
stat, p = proportions_ztest(count, nobs)
Conclusión: incluso con una diferencia de +0,8 p.p., se debe tener en cuenta el intervalo de confianza y el coste del tráfico.
Ejemplo 4. Pronóstico de ventas «para mañana»
X = pd.get_dummies(df[['day_index','weekday']], drop_first=True)
y = df['sales']
model.fit(X_train, y_train)
pred = model.predict(X_test)
mae = np.mean(np.abs(pred - y_test))
Conclusión: se necesita un pronóstico para reducir la incertidumbre, no para «adivinar con precisión».
Ejemplo 5. ¿Qué afecta realmente a la respuesta?
Guion: boletín de correo electrónico. ¿Por qué algunas cartas se abren y otras no?
Idea: comprobar las correlaciones y la regresión logística para evaluar la influencia de los atributos.
La limpieza de datos es la mitad del éxito
Problema | Cómo detectar | Qué hacer |
|---|---|---|
Permisos |
| Eliminar o reemplazar por la mediana |
Emisiones | Boxplot, z-score | Restringir por reglas de negocio |
Duplicados |
| Borrar claves |
Diferentes formatos de fecha | Errores de análisis | Usar |
Categorías incompletas | Porcentaje < 1% | Combinar en «Other» |
En Codice ofrecemos módulos cortos en Python y análisis con tareas «como en la vida real»: carga de CSV, limpieza, embudos, mini prueba A/B y el primer modelo. Sin agua y con resultados comprensibles.
Y también tenemos un canal de telegram, donde discutimos ideas geniales, compartimos experiencias y analizamos juntos las tareas: aprender no solo es útil, sino también divertido.
