Lección · Módulo 1 · Estadística para IA

De la frecuencia a la curva: la distribución normal

Si tomas suficientes muestras y las cuentas con cuidado, aparece una forma. La distribución normal es la más famosa de todas, y aquí vas a poder mover su centro y su ancho con tus dedos.

Mate MathPlay · Lección 1.3 · Estadística para modelos

8 minutosInteractivoVisualCon Python

Idea central: una distribución de probabilidad es lo que ves cuando juntas mucha evidencia. Empieza como un montón de muestras, se vuelve un histograma, y al final — con suficientes datos — toma una forma reconocible. La distribución normal es esa forma de campana que aparece tantas veces en la naturaleza que se ganó ese nombre.

1 Empecemos con muchas muestras

Imagina que en lugar de 5 muestras de pureza tienes 1000. Las anotas todas y las pones en una larga lista de números. La pregunta natural es: ¿cómo se reparten? ¿Hay un valor "típico"? ¿Qué tan probable es ver una muestra rara?

Mirar 1000 números sueltos no dice gran cosa. La forma clásica de ordenarlos es contar cuántas muestras caen en cada rango. Eso se llama histograma.

2 El histograma: contar por intervalos

Dividimos el eje horizontal en bins (intervalos del mismo ancho) y para cada bin dibujamos una barra cuya altura es cuántas muestras cayeron ahí:

300 200 100 0 conteo 5 15 25 35 45 55 65 75 85 95 valor de la muestra

El histograma transforma una lista de 1000 números en una forma. Y aquí aparece lo importante: la mayoría de las muestras se concentran cerca del centro, y son cada vez más raras a los extremos.

3 De frecuencia a probabilidad: solo dividir entre N

El conteo absoluto depende de cuántas muestras tomaste. Si quieres una probabilidad — un número que no dependa del tamaño — solo dividimos cada altura entre el total:

probabilidad de cada bin = conteo / N total = conteo / 1000

Por ejemplo, el bin 45 tenía 250 muestras → 250 / 1000 = 0.25 = 25%. La forma queda idéntica, solo cambia la escala del eje vertical. Eso es lo que llamamos distribución de frecuencia relativa.

4 Suavizar: del histograma a la curva continua

Si tomas más muestras y bins más finos, el histograma se va volviendo más suave. En el límite (infinitas muestras, bins infinitamente finos) las barras se convierten en una curva continua:

El histograma se va achicando, suavizando, hasta convertirse en la curva azul.

Esa curva se llama función de densidad de probabilidad (PDF, por sus siglas en inglés). Es la versión continua del histograma. El área bajo cualquier tramo de la curva es la probabilidad de que una muestra caiga en ese rango.

5 La distribución normal: dos parámetros, una forma de campana

De todas las curvas posibles, hay una que aparece una y otra vez en la naturaleza, en mediciones físicas y — críticamente — en muchos modelos de IA: la distribución normal (también llamada gaussiana o "campana").

Tiene exactamente dos parámetros:

Eso es todo. Con esos dos números sabes todo sobre una distribución normal.

f(x) = (1 / (σ · √(2π))) · e−(x − μ)2 / (2σ2)

No te preocupes por la fórmula ahora. Lo único que necesitas saber es: la curva siempre tiene la misma forma de campana, y solo cambia su centro (con μ) y su ancho (con σ).

6 Tu turno: mueve μ y σ con los sliders

Toca o arrastra los dos sliders para mover el centro de la campana y cambiar su ancho. Las tres bandas verdes muestran dónde cae el 68%, 95% y 99.7% de los datos — es la famosa regla 68-95-99.7.

±1σ: cubre el 68.3% de los datos ±2σ: cubre el 95.4% de los datos ±3σ: cubre el 99.7% de los datos

Sandbox interactivo

Mueve los sliders para cambiar el centro (μ) y el ancho (σ) de la campana.

μ 50
σ 12
±1σ cubre
68.3%
[38 a 62]
±2σ cubre
95.4%
[26 a 74]
±3σ cubre
99.7%
[14 a 86]

7 La regla 68-95-99.7 explicada

Esa regla — una de las más útiles de toda la estadística — dice algo simple: en una distribución normal, sin importar los valores de μ y σ, siempre se cumple:

Eso significa que si te dicen "este proceso tiene media 50 y desviación estándar 5", ya sabes — sin hacer ningún cálculo más — que el 99.7% de las muestras caerán entre 35 y 65. Cualquier valor fuera de ese rango es muy raro.

Por qué importa para IA

Muchos modelos de machine learning asumen que sus datos siguen una distribución normal: regresión lineal, análisis de componentes principales (PCA), inferencia bayesiana, redes neuronales con inicialización gaussiana. Si tus datos no son normales, esos modelos pueden fallar silenciosamente. Por eso el primer paso de cualquier proyecto serio de IA es mirar la distribución de tus variables — el histograma de la lección 2 viene primero.

8 Variante 1: PDF vs CDF (densidad vs acumulada)

Hasta aquí vimos la PDF (Probability Density Function) — la curva de campana. Pero hay una pregunta que la PDF no responde directamente: "¿cuál es la probabilidad de que una muestra sea menor o igual a X?". Para eso necesitamos la CDF (Cumulative Distribution Function) — la versión acumulada.

La PDF te dice "qué tan denso está cada punto". La CDF te dice "qué porcentaje del área queda a la izquierda de cada punto". Son la misma información, vista de dos maneras:

PDF: la curva de campana CDF: el área acumulada X = 50 area = 0.5 1.0 0.5 0 X = 50 CDF(50) = 0.5

El razonamiento: el área verde en la izquierda corresponde al punto verde en la derecha. La CDF en X = 50 vale 0.5 porque la mitad de los datos caen a la izquierda de 50 (ya que μ = 50 y la normal es simétrica).

De ahí salen los cuantiles y percentiles: el cuantil 0.25 (o percentil 25) es el valor X donde la CDF cruza 0.25. La mediana es el valor donde la CDF cruza 0.5. El percentil 95 es donde cruza 0.95.

Caso aplicado · control de calidad por umbrales

Producción bajo especificación contractual

Tu cliente exige concentrado de cobre con ley mínima de 28% Cu. Mediste el proceso y sale μ = 30% con σ = 1.5%. ¿Qué porcentaje del concentrado va a quedar fuera de especificación?

La pregunta es P(X < 28). La PDF no te lo da directo. La CDF sí: CDF(28) = norm.cdf(28, 30, 1.5) ≈ 0.0918. El 9.2% del concentrado va a salir por debajo de 28%.

Eso es información accionable: ese 9.2% es la fracción que vas a tener que mezclar o reprocesar. Podés calcular el impacto financiero directo en penalidades o costos de blending.

CDF = la herramienta para responder "¿qué fracción queda fuera de spec?"

Definir umbrales de alarma

Querés poner una alarma cuando el pH de una celda cae por debajo de un valor crítico. Si el pH normal es μ = 10.2 con σ = 0.15, ¿dónde ponerías la alarma para que solo se dispare el 1% del tiempo (falsa alarma máxima)?

Resolvés la CDF inversa (percentil 1): norm.ppf(0.01, 10.2, 0.15) ≈ 9.85. Poné la alarma en pH = 9.85. Así solo el 1% inferior del comportamiento normal de la celda dispara la alarma.

CDF inversa = encontrar umbrales para tasas de falsa alarma definidas

9 Variante 2: la normal no es la única (familia de distribuciones)

La distribución normal es la más famosa, pero hay otras que aparecen todo el tiempo en aplicaciones reales. Cada una modela un fenómeno distinto:

Cinco distribuciones que aparecen una y otra vez Uniforme todo igual de probable tiradas de dados, ruido Exponencial tiempos entre eventos fallas, esperas, decaimiento Normal muchas causas, ninguna domina leyes, mediciones, errores Poisson conteos por intervalo accidentes/día, llamadas/hora Binomial éxitos en n intentos piezas defectuosas en lote t de Student como normal, más "colas" pocas muestras, intervalos conf. ¿Cuál usar? · Continua y simétrica: normal · Tiempos de espera: exponencial · Conteos enteros: Poisson o binomial

Razonamiento intuitivo: cada distribución responde una pregunta física distinta:

Caso aplicado · elegir la distribución correcta para cada variable

Tiempos entre fallas de un molino SAG → Exponencial

Registrás cuántas horas pasan entre cada falla no programada del molino. Esos tiempos siguen una distribución exponencial: muchos intervalos cortos, pocos intervalos largos. Modelar con normal aquí serí>a un error grave porque la normal permite valores negativos (tiempo negativo no tiene sentido).

Variable: tiempo entre eventos → exponencial

Camiones cargados por turno → Poisson

Un puesto de carguio promedia 42 camión-cargas por turno de 8 horas. La cantidad real por turno varía entre 35 y 50. Esa variable de conteo discreto sigue una distribución de Poisson con λ = 42.

Variable: conteo de eventos por ventana → Poisson

Piezas defectuosas en lote de 100 → Binomial

De cada lote de 100 piezas de chancado primario, en promedio 3 salen con defectos. La cantidad de defectos por lote es binomial: n = 100 intentos, p = 0.03 probabilidad de éxito (defecto) en cada uno.

Variable: éxitos en n intentos → binomial

Estimar ley promedio con 5 muestras → t de Student

Sacaste solo 5 testigos de una nueva veta. Querés un intervalo de confianza del 95% para la ley promedio. Con tan pocas muestras, no podés usar normal — tenés que usar t de Student con n-1 = 4 grados de libertad. El intervalo te va a salir más ancho que con normal, y eso está bien: refleja que tenés poca información.

Pocas muestras + σ desconocido → t de Student, no normal

Tip práctico

Antes de modelar una variable, preguntáte: "¿qué tipo de cosa es?". Tiempo entre eventos, cuenta de eventos, éxitos en intentos, mediciones continuas, etc. La elección de la distribución se cae sola.

10 Variante 3: por qué la normal aparece tanto (Teorema Central del Límite)

Aquí viene uno de los resultados más profundos de toda la estadística. Si tomás la suma o promedio de muchas variables aleatorias (de la distribución que sean), el resultado se parece a una normal — sin importar cuál era la distribución original.

Promediar variables aleatorias siempre da algo parecido a una campana N = 1 uniforme (rectangular) N = 2 promedio de 2 uniformes → triangular N = 30 promedio de 30 uniformes → normal Cuanto más sumás, más normal queda — sin importar la distribución inicial

Razonamiento intuitivo: la izquierda parte de una variable totalmente plana (uniforme). En el medio, promédiala con otra: el más probable es que ambas estén alrededor del medio, los extremos se cancelan, sale una forma triangular. Sigue promediando 30 variables y la forma triangular se vuelve campana suave — una normal perfecta.

Este es el Teorema Central del Límite (TCL). Explica por qué tantas variables del mundo real siguen una distribución normal: porque son sumas de muchos efectos pequeños independientes.

Caso aplicado · cuándo el TCL te salva

Promedio de leyes de muchos blocks

En una mina, cada block de explotación tiene su propia distribución de leyes — algunos asimétricos, otros con outliers, otros tipo log-normal. Pero cuando promediás la ley de 30 o más blocks por día, ese promedio sigue una distribución aproximadamente normal — sin importar la forma exacta de cada block individual.

Eso significa que podes usar herramientas normales (regla 68-95-99.7, intervalos de confianza, control estadístico de procesos) sobre el promedio diario aunque las leyes individuales no sean normales. Es un truco poderoso.

Promedios de muchas variables siempre son aproximadamente normales

Cuántas muestras necesitas para aplicar el TCL

Regla de pulgar usada en industria: n ≥ 30. Con 30 o más muestras el promedio está lo suficientemente cerca de normal para usar herramientas normales. Con menos (n < 30), usá t de Student que es más honesta sobre la incertidumbre.

n ≥ 30 = podés asumir normal; n < 30 = mejor t de Student

Tip práctico para gerencia

El TCL es la justificación profunda detrás del control estadístico de procesos (SPC), de los gráficos de Shewhart, de los límites 3σ en las cartas de control. Cuando un proceso está bajo control, el promedio de muestras consecutivas debe quedar entre μ ± 3σ el 99.7% del tiempo. Si sale fuera, hay una causa especial que investigar.

+ Más parientes del concepto

La familia de las distribuciones es enorme. Algunos otros conceptos que vale la pena conocer:

Skewness (asimetría)Ver

Mide si la distribución está sesgada hacia un lado. Una normal tiene skewness = 0. La log-normal tiene cola larga a la derecha (skew positivo). En minería las distribuciones de leyes suelen tener skew positivo — muchas muestras de ley baja y pocas extremadamente altas. Antes de aplicar una herramienta que asume normalidad, siempre verificá el skewness.

Kurtosis (apuntamiento)Ver

Mide qué tan "puntiaguda" o "achatada" es la distribución comparada con la normal. Kurtosis > 0 = colas más gordas (eventos extremos más frecuentes de lo esperado). En finanzas y en sismología esto importa muchisimo — los modelos que asumen normalidad subestiman los riesgos de cola.

Distribución log-normalVer

Es la distribución de una variable cuyo logaritmo es normal. Modela cantidades positivas con cola derecha larga. En minería las leyes de mineral suelen ser log-normales: hay muchas muestras de ley baja y unas pocas de ley muy alta. Si tu variable es estrictamente positiva y asimétrica, probá ajustar log-normal antes que normal.

Distribuciones multivariadas (preview)Ver

Cuando tenés 2 o más variables que conjuntamente siguen una distribución. La normal multivariada usa un vector de medias y una matriz de covarianza (eso conecta con la lección 1.2). Es la base de los modelos gaussianos en redes neuronales, de los procesos gaussianos, y de muchas técnicas de detección de anomalías.

Ver el código en Python: cinco snippets, de muestreo a comparación de distribuciones Click para abrir

Empezamos generando muestras a mano y vamos escalando hasta comparar 5 distribuciones y demostrar el TCL.

1. Generar muestras de una normal sin librerías (método Box-Muller):

01_muestras_normal.pyPYTHON
import math
import random

def normal_sample(mu, sigma):
    # Box-Muller: 2 uniformes -> 1 normal
    u1 = random.random()
    u2 = random.random()
    z = math.sqrt(-2 * math.log(u1)) * math.cos(2 * math.pi * u2)
    return mu + sigma * z

# Generar 5 muestras de N(50, 10)
muestras = [normal_sample(50, 10) for _ in range(5)]
print(muestras)

2. Lo mismo con numpy. Una linea. Y calculamos probabilidad empírica:

02_normal_numpy.pyPYTHON
import numpy as np

np.random.seed(42)
muestras = np.random.normal(50, 10, 10000)

# Probabilidad empirica de que x < 60
p_emp = np.mean(muestras < 60)
print("P(X < 60) empirica:", round(p_emp, 4))

# Comparar con la CDF teorica
from scipy.stats import norm
p_teo = norm.cdf(60, 50, 10)
print("P(X < 60) teorica:", round(p_teo, 4))

3. PDF y CDF con scipy. Calcular probabilidad sobre cualquier rango:

03_pdf_cdf.pyPYTHON
from scipy.stats import norm

# Caso: ley de concentrado N(mu=30, sigma=1.5), spec minima 28
mu, sigma, umbral = 30, 1.5, 28

# Fraccion bajo especificacion
p_bajo = norm.cdf(umbral, mu, sigma)
print(f"Fraccion bajo {umbral}%: {p_bajo:.4f}  ({p_bajo*100:.2f}%)")

# Para encontrar el percentil 1 (umbral de alarma):
percentil_1 = norm.ppf(0.01, mu, sigma)
print(f"Percentil 1 (umbral de alarma): {percentil_1:.3f}")

# Probabilidad entre 28 y 32 (dentro de spec ampliada)
p_rango = norm.cdf(32, mu, sigma) - norm.cdf(28, mu, sigma)
print(f"P(28 < X < 32): {p_rango:.4f}")

4. Cinco distribuciones lado a lado:

04_cinco_distribuciones.pyPYTHON
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform, expon, norm, poisson, binom, t

np.random.seed(42)
n = 1000

datos = {
    "Uniforme":    uniform.rvs(loc=0, scale=10, size=n),
    "Exponencial": expon.rvs(scale=2, size=n),
    "Normal":      norm.rvs(loc=5, scale=1.5, size=n),
    "Poisson":     poisson.rvs(mu=3, size=n),
    "Binomial":    binom.rvs(n=20, p=0.3, size=n),
    "t Student":   t.rvs(df=3, size=n) + 5,
}

fig, axes = plt.subplots(2, 3, figsize=(12, 7))
for ax, (nombre, datos_d) in zip(axes.flat, datos.items()):
    ax.hist(datos_d, bins=30, color="orange", alpha=0.6, edgecolor="white")
    ax.set_title(nombre)
    ax.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

5. Demostrar el Teorema Central del Límite: promédiar uniformes y ver que tiende a normal:

05_tcl_uniformes.pyPYTHON
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(42)
ns = [1, 2, 5, 30]
m = 10000

fig, axes = plt.subplots(1, 4, figsize=(14, 4))
for ax, n in zip(axes, ns):
    # n variables uniformes promediadas, m veces
    promedios = np.random.uniform(0, 1, (m, n)).mean(axis=1)
    ax.hist(promedios, bins=40, color="orange", alpha=0.6, edgecolor="white")
    ax.set_title(f"Promedio de N = {n} uniformes")
    ax.grid(True, alpha=0.3)
    if n == 30:
        ax.text(0.5, 0.92, "ya es normal",
                transform=ax.transAxes, ha="center",
                color="green", fontweight="bold", fontsize=13)
plt.tight_layout()
plt.show()

11 Pregunta de chequeo

Un proceso industrial tiene media μ = 100 y desviación estándar σ = 5. Sus mediciones siguen una distribución normal. ¿Aproximadamente qué porcentaje de mediciones caerán entre 90 y 110?

Próxima lección

Hasta aquí describimos lo que hay antes de tener nuevos datos: una distribución con μ y σ. Pero los modelos de IA tienen que ir un paso más lejos: actualizar lo que creen a medida que llegan datos nuevos. Esa es la entrada a la inferencia bayesiana — la próxima lección.

LinkedIn WhatsApp

Regístrate al boletín MathPlay

De la idea al laboratorio que funciona: datos, simulación, visualización, IA y tecnología aplicada a problemas reales de industria y minería. Te escribo cuando hay algo nuevo que vale la pena compartir.

Sin calendario fijo. Sin spam.

Listo. Te escribo cuando haya algo nuevo.

CB
Mg. Ing. Cesar Bobadilla
Ingeniero consultor & docente · Perú

Desarrollo tecnología aplicada a industria y minería, y enseño a convertir datos, prototipos e inteligencia artificial en decisiones útiles. MathPlay conecta matemática, programación, visualización y casos reales de operación.

Dónde publicó
← Lección anterior: covarianzaSiguiente: inferencia bayesiana →Mate MathPlay