∫Atlas Matemáticas Aplicadas

Inicio › Temas › Probabilidad

🎲 Probabilidad nivel medio

Teorema de Bayes

Invertir condicionales: pruebas médicas, falsos positivos y actualización de creencias.

🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)

La idea

La probabilidad condicionada P(A|B) es la probabilidad de A sabiendo que B ha ocurrido: se calcula restringiendo el espacio muestral a B, P(A|B) = P(A ∩ B)/P(B). El teorema de Bayes permite invertir el condicionamiento: conocida la probabilidad de observar una evidencia B cuando la hipótesis A es cierta, P(B|A), calcula lo que de verdad nos interesa, la probabilidad de la hipótesis dada la evidencia, P(A|B) = P(B|A) P(A) / P(B).

El ejemplo clásico es una prueba médica. Una enfermedad afecta al 1 % de la población (prevalencia); la prueba detecta al 99 % de los enfermos (sensibilidad) y da negativo en el 95 % de los sanos (especificidad). Si una persona da positivo, ¿qué probabilidad tiene de estar enferma? La intuición dice «cerca del 99 %», pero de cada 1000 personas hay unos 10 enfermos (≈10 positivos verdaderos) y 990 sanos, de los que el 5 %, unos 50, dan falsos positivos. Solo 10 de los 60 positivos están enfermos: P(enfermo | +) ≈ 17 %.

Bayes describe cómo actualizar creencias con datos: la probabilidad a priori P(A) se multiplica por la verosimilitud de la evidencia y se normaliza para obtener la probabilidad a posteriori. Cada nueva observación toma la posterior anterior como nueva prior, de modo que las creencias se afinan de forma acumulativa. Este mecanismo es el corazón de los filtros antispam, de los sistemas de diagnóstico y de buena parte de la inteligencia artificial moderna.

Fórmulas clave

  • Probabilidad condicionadaP(A|B) = P(A ∩ B) / P(B)
  • Teorema de BayesP(A|B) = P(B|A) · P(A) / P(B)
  • Probabilidad totalP(B) = P(B|A) P(A) + P(B|Aᶜ) P(Aᶜ)
  • Valor predictivo positivoP(E|+) = sens · prev / [sens · prev + (1 − espec)(1 − prev)]
  • Forma de cocientes (odds)odds posteriores = odds previas × razón de verosimilitud

Dónde se aplica

Los filtros antispam bayesianos calculan la probabilidad de que un correo sea basura a partir de las palabras que contiene, actualizando la estimación palabra a palabra. En medicina, el teorema explica por qué un cribado masivo de una enfermedad rara produce más falsos positivos que verdaderos y por qué un resultado positivo debe confirmarse con una segunda prueba. En los juicios, confundir P(evidencia | inocente) con P(inocente | evidencia) es la «falacia del fiscal»; y los coches autónomos combinan lecturas de sensores ruidosos mediante filtros bayesianos (filtro de Kalman) para estimar su posición.

Con programación (Python)

def bayes(prevalencia, sensibilidad, especificidad):
    p_pos_enfermo = sensibilidad
    p_pos_sano = 1 - especificidad
    p_pos = p_pos_enfermo * prevalencia + p_pos_sano * (1 - prevalencia)
    return p_pos_enfermo * prevalencia / p_pos

prev, sens, esp = 0.01, 0.99, 0.95
vpp = bayes(prev, sens, esp)
print(f"P(enfermo | positivo) = {vpp:.4f}  ({vpp*100:.1f} %)")

# Recuento con 1000 personas
enfermos = round(1000 * prev)
sanos = 1000 - enfermos
vp = round(enfermos * sens)
fp = round(sanos * (1 - esp))
print(f"Verdaderos positivos: {vp}   Falsos positivos: {fp}   -> {vp}/{vp+fp} = {vp/(vp+fp):.3f}")

# Segunda prueba positiva independiente: la posterior es la nueva prior
print(f"Tras dos positivos: {bayes(vpp, sens, esp):.4f}")

# Efecto de la prevalencia
for p in (0.001, 0.01, 0.1, 0.5):
    print(f"prevalencia {p:6.1%} -> P(enfermo | +) = {bayes(p, sens, esp):.3f}")

La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.

Temas relacionados

Probabilidad clásica · Cadenas de Markov · Contraste de hipótesis y prueba t · Test chi-cuadrado

← Todos los temas