QuieroProgramar por Rodri Gonzalez
Data Analysis · Lección 09 de 19

Estadística Descriptiva

La estadística descriptiva es el lenguaje universal del análisis de datos. Cuando decís "el ingreso mediano es $350K con una desviación de $120K", cualquier analista del mundo entiende exactamente qué significa. Sin estadística, estás mirando números sin contexto. Con ella, estás contando la historia detrás de los datos.

90–120 min Prerrequisitos: Lección 08 (merge/join/concat)
01

Concepto teórico

Las 3 preguntas fundamentales

Toda estadística descriptiva responde una de estas tres preguntas:

  1. ¿Cuál es el centro de los datos? → Medidas de tendencia central (media, mediana, moda)
  2. ¿Qué tan dispersos están? → Medidas de dispersión (rango, varianza, desviación estándar)
  3. ¿Cómo se distribuyen?Forma de la distribución (asimetría, percentiles, outliers)

Medidas de tendencia central

Medida Calcula pandas Cuándo usarla
Media (promedio) Suma / cantidad .mean() Datos simétricos sin outliers
Mediana Valor del medio al ordenar .median() Datos con outliers o asimétricos
Moda Valor más frecuente .mode() Datos categóricos
¿Cuándo la media miente? Si en una sala hay 9 personas ganando $100K y 1 persona ganando $10M, la media es $1.09M — un número que no representa a nadie. La mediana es $100K, que describe al 90% del grupo. Por eso, para ingresos, precios de propiedades y salarios, siempre se usa la mediana.
Analogía: Jeff Bezos entra a un bar. La media de ingresos de los presentes sube a $1 mil millones. La mediana apenas se mueve. La media es sensible a valores extremos; la mediana es robusta.

Medidas de dispersión

El centro no cuenta toda la historia. Dos ciudades pueden tener el mismo ingreso promedio ($400K), pero en una todos ganan entre $350K-$450K y en otra van desde $50K hasta $2M. La dispersión mide esa "anchura".

Medida Calcula pandas Interpretación
Rango max − min .max() - .min() Amplitud total (afectado por outliers)
Varianza Promedio de distancias² al centro .var() Dispersión en unidades² (difícil de interpretar)
Desv. estándar (σ) √varianza .std() Dispersión en las mismas unidades que los datos
IQR Q3 − Q1 (rango intercuartílico) .quantile(.75) - .quantile(.25) Dispersión del 50% central (robusto a outliers)
La desviación estándar es la reina de la dispersión. Si te dicen "el ingreso promedio es $400K con σ = $20K", sabés que los datos están muy concentrados. Si σ = $200K, están muy dispersos. Un σ grande sugiere alta variabilidad — puede indicar segmentos diferentes mezclados, errores de carga, o simplemente una población heterogénea.

Percentiles y la regla del box plot

Los percentiles (o cuantiles) dividen tus datos ordenados en porciones iguales:

La regla clásica para detectar outliers usa el IQR:

El superpoder: .describe()

El método df.describe() genera un resumen estadístico completo en una sola línea. Te da: count, mean, std, min, 25%, 50%, 75% y max. Es lo primero que ejecutás cuando recibís un dataset nuevo.

En el trabajo real: cuando un líder te da un dataset nuevo y te dice "fijate qué hay acá", lo primero que hacés es: df.shape (tamaño), df.dtypes (tipos), df.isna().sum() (nulos), df.describe() (estadísticas). Con esas 4 líneas ya sabés el 80% de lo que necesitás saber.
02

Ejemplos explicados paso a paso

Ejemplo 1: Medidas de tendencia central

Comparar media vs mediana en un dataset con y sin outliers para entender cuándo usar cada una.

ejemplo_01_central.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 2: Medidas de dispersión

Dos ciudades con el mismo ingreso promedio pero dispersión completamente distinta.

ejemplo_02_dispersion.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 3: .describe() — El resumen automático

Una sola línea que te da el panorama completo. Es lo primero que ejecutás cuando recibís un dataset nuevo.

ejemplo_03_describe.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 4: Percentiles y detección de outliers

Usando la regla del IQR para detectar automáticamente valores atípicos que podrían distorsionar tu análisis.

ejemplo_04_outliers.pyPython

        
Hacé clic en ▶ Ejecutar
Tip profesional: un outlier no siempre es un error. El cliente con $5M de saldo puede ser legítimo (un cliente VIP). La pregunta no es "¿elimino el outlier?" sino "¿este outlier distorsiona la métrica que estoy calculando?". Si estás calculando el saldo promedio de clientes estándar, sí lo sacás. Si estás calculando el total de depósitos, no.

Ejemplo 5: Estadísticas por grupo (groupby + describe)

El patrón más poderoso: calcular estadísticas descriptivas segmentadas por categoría. Ya no es "el promedio global" sino "el promedio de cada segmento".

ejemplo_05_por_grupo.pyPython

        
Hacé clic en ▶ Ejecutar
03

Referencia rápida

Método pandas Estadístico Tipo
.mean() Media aritmética Tendencia central
.median() Mediana (P50) Tendencia central
.mode() Moda Tendencia central
.std() Desviación estándar Dispersión
.var() Varianza Dispersión
.min() / .max() Mínimo / máximo Rango
.quantile(p) Percentil p Posición
.describe() Resumen completo Todo junto
.value_counts() Frecuencia de valores Distribución categórica
.corr() Correlación entre columnas Relación
.skew() Asimetría Forma
04

Ejercicios

Nivel 1 · Básico

Ejercicio 1: Media y mediana

Calculá la media y la mediana de la columna "Saldo". Imprimí la mediana. Debe incluir 400000.

ejercicio_01.pyDebe incluir "400000"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 2: Desviación estándar

Calculá la desviación estándar del saldo redondeada a entero. Debe incluir 212132.

ejercicio_02.pyDebe incluir "212132"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 3: .describe() completo

Ejecutá .describe() sobre el DataFrame. El output debe incluir la palabra mean (nombre de la fila de la media).

ejercicio_03.pyDebe incluir "mean"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: Calcular cuantiles

Calculá Q1 (25%), mediana (50%) y Q3 (75%) de la columna "Ingreso". Imprimí Q3. Debe incluir 480000.

ejercicio_04.pyDebe incluir "480000"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: Detectar outliers con IQR

Usá la regla IQR para encontrar outliers. Imprimí cuántos hay. Debe dar 1.

ejercicio_05.pyDebe incluir "1"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: value_counts para distribución categórica

Usá .value_counts() para contar cuántos clientes hay por Segmento. Imprimí el resultado. Debe incluir Estándar.

ejercicio_06.pyDebe incluir "Estándar"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Media vs mediana — detectar asimetría

Calculá media y mediana de los salarios. Si media > mediana, imprimí "Asimetría positiva". Debe incluir positiva.

ejercicio_07.pyDebe incluir "positiva"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: Estadísticas por grupo

Calculá media y desv. estándar de Saldo por Segmento usando .agg(). Imprimí el reporte. Debe incluir Premium.

ejercicio_08.pyDebe incluir "Premium"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: Correlación entre variables

Calculá la correlación entre Antigüedad e Ingreso usando .corr(). Imprimilo redondeado a 2 decimales. Debe incluir 0.98.

ejercicio_09.pyDebe incluir "0.98"

          
Hacé clic en ▶ Ejecutar
Nivel 4 · Desafío

Ejercicio 10: Reporte estadístico ejecutivo

Generá un reporte completo: (1) describe() del saldo, (2) ¿Cuántos outliers hay?, (3) Media con y sin outliers, (4) Distribución por segmento. Debe incluir outlier.

ejercicio_10_desafio.pyDebe incluir "outlier"

          
Hacé clic en ▶ Ejecutar
05

Resumen y conexión

En la siguiente lección (10 · Matplotlib básico) vas a aprender a convertir todos estos números en visualizaciones claras y profesionales. Porque un gráfico bien hecho comunica en 2 segundos lo que una tabla de números tarda 2 minutos.

Recursos: pandas docs — Calculate statistics