🧮 Computational Mathematics

Inicio · Parte 09 — Probabilidad y procesos aleatorios

186 — Teorema de Bayes

universitario clase 6 de 20 4 horas demostración bayes

Un test muy preciso sobre una enfermedad rara produce sobre todo falsos positivos.

Fórmulas

P(H|E) = P(E|H)·P(H) / P(E)
P(E) = P(E|H)·P(H) + P(E|Hᶜ)·P(Hᶜ)
posterior ∝ verosimilitud × prior

Desarrollo

El teorema de Bayes invierte el condicionamiento: convierte P(E|H), que suele ser lo que se sabe del mecanismo, en P(H|E), que es lo que se quiere saber tras observar la evidencia. Su demostración cabe en una línea —basta escribir P(H∩E) de las dos maneras posibles— y su importancia es difícil de exagerar.

La lectura que hay que interiorizar es posterior ∝ verosimilitud × prior. La verosimilitud P(E|H) mide cuán bien la hipótesis explica lo observado; el prior P(H) mide cuán plausible era la hipótesis de entrada. Un test excelente no puede compensar un prior muy bajo, y esa es la fuente de la falacia de la tasa base.

El caso numérico canónico: enfermedad con prevalencia 0,1 %, test con 99 % de sensibilidad y 99 % de especificidad. Entre 100 000 personas hay 100 enfermas, de las que el test marca 99, y 99 900 sanas, de las que marca 999. Total de positivos: 1098, de los cuales solo 99 están enfermos. P(enfermo | positivo) ≈ 9 %. Diez falsos positivos por cada verdadero, y el test no tiene ningún defecto.

La misma estructura aparece en juicios —«la probabilidad de esta coincidencia por azar es 1 entre un millón» no es la probabilidad de inocencia—, en detección de fraude, en alertas de seguridad y en cualquier clasificador aplicado a una clase minoritaria. Por eso los sistemas de detección de eventos raros se evalúan con precisión y exhaustividad, no con exactitud.

Ejemplo trabajado

Prevalencia 0,1 %, sensibilidad 99 %, especificidad 99 %.

Sobre 100 000 personas:

                 enfermos (100)   sanos (99 900)   total
  test +              99               999          1 098
  test −               1            98 901         98 902

P(enfermo | +) = 99 / 1 098 = 0,0902  ≈  9 %

Por la fórmula:
  P(+) = 0,99 × 0,001 + 0,01 × 0,999 = 0,01098
  P(enfermo|+) = (0,99 × 0,001) / 0,01098 = 0,0902     ✓

falsos positivos por cada verdadero: 999 / 99 ≈ 10,1

Si la prevalencia sube al 10 %, P(enfermo|+) sube al 92 %.
Cambió el prior, no el test.

Qué calcula el laboratorio

Test médico: por qué un positivo no significa enfermedad.

python classes/part-09-probabilidad-y-procesos-aleatorios/186-teorema-de-bayes/lab.py
compmath run 186

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "prevalencia_previa": 0.001,
  "sensibilidad_P(+|enfermo)": 0.99,
  "especificidad_P(-|sano)": 0.99,
  "P(+)": 0.01098,
  "P(enfermo|+)": 0.09016393,
  "falsos_positivos_por_verdadero": 10.0909
}

Errores comunes

Dónde se usa

Cribado médico, detección de fraude, filtros antispam, pruebas forenses y evaluación de clasificadores con clases desbalanceadas.

Idea rectora de la parte

P(A|B) y P(B|A) no son intercambiables: confundirlas es la falacia del fiscal.

Error a evitar

Reportar resultados Monte Carlo sin semilla ni intervalo.

Conexión con IA

Un modelo de lenguaje es una distribución condicional sobre el siguiente token; la difusión es un proceso estocástico con reverso aprendido.

Bibliografía de la clase

Archivos de la clase