Práctica guiada: Simulando una tabla 2×2 con Teorema de Bayes

Simulación de Tabla 2×2 y Cálculo de VPP

Objetivo

Generar 10,000 casos simulados para entender cómo la tasa base (prevalencia) afecta el Valor Predictivo Positivo (VPP) de una prueba diagnóstica.


Paso 1: Definir parámetros

¿Qué estamos haciendo?

Definimos los parámetros clave de nuestro problema: - Prevalencia: Qué tan común es el cáncer en la población (1%) - Sensibilidad: Qué tan buena es la prueba detectando casos reales (90%) - Especificidad: Qué tan buena es la prueba descartando sanos (91%)


Paso 2: Simular la población

¿Qué hace este código?

Usamos rbinom() para simular una moneda sesgada: - Probabilidad de “éxito” (tener cáncer) = 1% - Lanzamos la moneda 10,000 veces - Resultado: vector de 0s (sano) y 1s (enfermo)

Esperamos aproximadamente 100 personas con cáncer (1% de 10,000).


Paso 3: Simular resultados de la prueba

Lógica del código:

Este es el paso CRÍTICO donde aplicamos sensibilidad y especificidad:

  1. Para enfermos: La prueba da positivo con probabilidad = sensibilidad (90%)
  2. Para sanos: La prueba da positivo con probabilidad = 1 - especificidad (9%)

Esperamos aproximadamente: - 90 verdaderos positivos (90% de ~100 enfermos) - 891 falsos positivos (9% de ~9,900 sanos) - Total de positivos ≈ 981


Paso 4: Construir tabla 2×2

Entendiendo la tabla 2×2:

                    Test +    Test -
Tiene cáncer        TP (~90)  FN (~10)
No tiene cáncer     FP (~891) TN (~9,009)
  • TP (Verdadero +): La prueba acertó, detectó un caso real
  • FP (Falso +): Alarma falsa, persona sana con resultado positivo
  • FN (Falso -): La prueba falló, caso real no detectado
  • TN (Verdadero -): Correctamente identificó a persona sana

Paso 5: Calcular métricas diagnósticas

La distinción crítica:

  • Sensibilidad (90%): De los enfermos, ¿cuántos detecta la prueba?
  • VPP (~9%): De los positivos, ¿cuántos son realmente enfermos?

¡NO SON LO MISMO! Confundirlos es el error más común.

La sensibilidad mide la calidad de la prueba.
El VPP mide su utilidad para TI cuando recibes un resultado positivo.


Paso 6: Visualización de la tabla 2×2

Interpretación visual:

  • Rojo oscuro (VP): Casos correctamente detectados
  • Naranja (FP): El “problema” - sanos alarmados falsamente
  • Rosa (FN): Casos perdidos (fallos de la prueba)
  • Verde (VN): Sanos correctamente descartados

¡Nota cómo el rectángulo naranja (FP) es mucho más grande que el rojo (VP)!


Paso 7: Efecto de la tasa base en el VPP

Lecciones del gráfico:

  1. Con prevalencia muy baja (1%), el VPP es terrible (~9%)
  2. A medida que aumenta la prevalencia, el VPP sube no linealmente
  3. Con prevalencia del 20%, el VPP sería ~68% (mucho mejor)
  4. La tasa base importa TANTO como la calidad de la prueba

Implicación para política pública:
Focalizar el tamizaje en población de riesgo mejora drásticamente el VPP.


Paso 8: Comparación de escenarios

Tabla de decisión:

Estrategia Ventaja Desventaja
Universal No perdemos ningún caso 90% de positivos son falsos
Focalizada Mejor VPP, menos desperdicio Podríamos perder casos fuera del grupo
Dos etapas Balance óptimo Más complejo de implementar

Paso 9: Simulación de tamizaje de dos etapas

Ventaja de dos etapas: - Capturamos casi todos los casos (alta sensibilidad en etapa 1) - Descartamos la mayoría de falsos positivos (alta especificidad en etapa 2) - VPP final es mucho más útil para decisiones


Ejercicios para practicar

Ejercicio 1: Cambiar parámetros

Modifica el código del Paso 1 y vuelve a correr toda la simulación:

  1. Cambia prevalencia <- 0.10 (10% en lugar de 1%)
    • ¿Cómo cambia el VPP?
  2. Cambia sensibilidad <- 0.95 (mejor prueba)
    • ¿Vale la pena una prueba más cara pero más sensible?
  3. Cambia especificidad <- 0.80 (prueba menos específica)
    • ¿Cómo explota el número de Falsos Positivos?

Ejercicio 2: Caso de fraude en programas sociales

Imagina un sistema de detección de fraude con: - Prevalencia de fraude: 0.5% (muy raro) - Sensibilidad del algoritmo: 85% - Especificidad del algoritmo: 92%

Preguntas: 1. Si el sistema marca a alguien, ¿qué probabilidad hay de que sea fraude real? 2. ¿Conviene auditar a todos los marcados? 3. ¿Qué estrategia de dos etapas propondrías?

Ejercicio 3: Screening en educación

Screening para identificar niños con retraso del desarrollo: - Prevalencia: 5% - Sensibilidad de prueba inicial: 90% - Especificidad: 88%

Preguntas: 1. Calcula el VPP 2. ¿Qué pasa si focalizas en escuelas de alta vulnerabilidad (prevalencia 15%)? 3. Diseña protocolo de dos etapas


Preguntas de reflexión

  1. ¿Por qué el VPP es tan bajo (9.2%) aunque la prueba sea 90% sensible?
    • Porque la tasa base es muy baja (1%)
    • Los Falsos Positivos dominan numéricamente
  2. ¿En qué contexto de política pública usarías tamizaje universal vs focalizado?
    • Universal: cuando el costo de FP es bajo y el de FN es alto (ej: COVID)
    • Focalizado: cuando procesar FP es costoso (ej: auditorías)
  3. Si tienes recursos limitados, ¿prefieres mejorar sensibilidad o especificidad?
    • Depende del contexto:
      • Enfermedades graves: prioriza sensibilidad (no perder casos)
      • Recursos escasos: prioriza especificidad (evitar desperdicio en FP)
  4. ¿Cómo comunicarías estos resultados al público?
    • Usar frecuencias naturales: “De cada 100 positivos, solo 9 tienen cáncer”
    • Evitar porcentajes anidados que confunden
    • Mostrar tabla 2×2 con números concretos

Conceptos clave para recordar

1. Tasa base (prevalencia) importa tanto como la calidad de la prueba - Misma prueba → VPPs muy diferentes según población

2. No confundir sensibilidad con VPP - Sensibilidad: P(+ | caso) = calidad de la prueba - VPP: P(caso | +) = utilidad para tu decisión

3. Diseño de dos etapas puede resolver el problema - Etapa 1: sensible (captura casos) - Etapa 2: específica (filtra falsos positivos)

4. Comunicar con frecuencias naturales - “9 de cada 100 positivos tienen cáncer” - Es más claro que “VPP = 9.2%”

5. Decisión depende de los costos relativos - Costo de FP vs costo de FN - No hay respuesta única “correcta”


Recursos adicionales

Fórmula de Bayes (recordatorio):

\[\text{VPP} = P(\text{caso}|+) = \frac{P(+|\text{caso}) \cdot P(\text{caso})}{P(+)}\]

Donde: \[P(+) = P(+|\text{caso}) \cdot P(\text{caso}) + P(+|\text{sano}) \cdot P(\text{sano})\]

Para profundizar: - Gigerenzer, G. (2002). “Reckoning with Risk” - Spiegelhalter, D. (2019). “The Art of Statistics” - Kahneman, D. (2011). “Thinking, Fast and Slow” (Capítulo sobre tasa base)

Herramientas en línea: - https://www.thennt.com/ (comunicación de riesgo) - https://seeing-theory.brown.edu/bayesian-inference/ (visualizaciones)


Código completo para copy-paste

Si quieres todo el código de una sola vez para correr en R:

# CÓDIGO COMPLETO - Simulación de Bayes
set.seed(2026)

# Parámetros
prevalencia <- 0.01
sensibilidad <- 0.90
especificidad <- 0.91
n <- 10000

# Simular población
tiene_cancer <- rbinom(n, 1, prevalencia)

# Simular resultados de prueba
resultado_prueba <- numeric(n)
resultado_prueba[tiene_cancer == 1] <- rbinom(sum(tiene_cancer), 1, sensibilidad)
resultado_prueba[tiene_cancer == 0] <- rbinom(sum(1 - tiene_cancer), 1, 1 - especificidad)

# Tabla 2x2
TP <- sum(tiene_cancer == 1 & resultado_prueba == 1)
FP <- sum(tiene_cancer == 0 & resultado_prueba == 1)
FN <- sum(tiene_cancer == 1 & resultado_prueba == 0)
TN <- sum(tiene_cancer == 0 & resultado_prueba == 0)

# Calcular VPP
VPP <- TP / (TP + FP)

# Imprimir resultados
cat("Tabla 2x2:\n")
cat("          Test+   Test-\n")
cat("Caso     ", TP, "    ", FN, "\n")
cat("Sano     ", FP, "   ", TN, "\n\n")
cat("VPP = ", round(VPP * 100, 1), "%\n")

Este es el fin del ejercicio aplicado. Ahora entiendes por qué la tasa base es crítica y cómo diseñar sistemas de tamizaje efectivos en política pública.