Saltar al contenido
coden

Redes bayesianas: por qué está mojada la hierba y qué significa eso para el aspersor

Distribución conjunta y su factorización, red bayesiana y tablas de probabilidades condicionadas, inferencia por enumeración, explicación alternativa, d-separación e inferencia aproximada por muestreo, en la red nublado, aspersor, lluvia, hierba mojada.

13 minutos Matěj Žalmánek 2026-10-15

Serie Fundamentos de IA Parte 40 de 52
  1. Mapa de la inteligencia artificial: qué es cada cosa y cómo encaja todo
  2. Breve historia de la inteligencia artificial: de Turing a los modelos de lenguaje
  3. Datos, modelo, entrenamiento, inferencia: los conceptos básicos en un solo ejemplo
  4. Cómo leer la notación matemática: símbolos, subíndices, sumatorios y cuantificadores
  5. Conjuntos y relaciones: las piezas con las que se construyen las definiciones en IA
  6. Funciones y aplicaciones: por qué todo modelo de IA es una función
  7. Lógica y demostraciones: las reglas con las que se razona en IA
  8. Grafos y árboles: la estructura sobre la que se apoyan la búsqueda y las redes neuronales
  9. Álgebra lineal para aprendizaje automático: vectores, matrices y por qué la IA sobre todo multiplica
  10. Derivadas, gradiente y regla de la cadena: cómo sabe un modelo en qué dirección aprender
  11. Descenso de gradiente: cómo aprende un modelo
  12. Qué es la probabilidad: del lanzamiento de un dado a los axiomas de Kolmogórov
  13. Probabilidad condicionada y teorema de Bayes: cómo cambiar una estimación cuando te enteras de algo nuevo
  14. Variable aleatoria y función de distribución: una sola función que lo dice todo sobre la distribución
  15. Función de densidad y función de probabilidad: por qué una variable continua tiene probabilidad cero en cada punto
  16. Esperanza, varianza y covarianza: dónde está una distribución, qué anchura tiene y qué se relaciona con qué
  17. Resumen de las distribuciones de probabilidad: Bernoulli, binomial, Poisson, uniforme, normal y exponencial
  18. Ley de los grandes números y teorema central del límite: por qué las medias se comportan de forma tan predecible
  19. Estadística y estimación de parámetros: máxima verosimilitud, MAP e intervalos de confianza
  20. Teoría de la información: entropía, entropía cruzada y divergencia KL, el origen de las funciones de pérdida
  21. Búsqueda en el espacio de estados: BFS, DFS, UCS y A* con animaciones
  22. Juegos y adversarios: minimax, poda alfa-beta y Monte Carlo tree search
  23. Satisfacción de restricciones: backtracking, propagación de restricciones y AC-3 con un sudoku y un mapa de regiones checas
  24. Lógica y sistemas basados en conocimiento: encadenamiento hacia delante y hacia atrás, resolución y sistemas expertos
  25. Planificación: STRIPS, el mundo de bloques, heurísticas a partir de la relajación y la planificación en los agentes de IA
  26. Búsqueda local y recocido simulado: un viajante por las capitales regionales checas
  27. Algoritmos genéticos: población, cruce, mutación y selección en una mochila para la excursión
  28. Estrategias evolutivas y programación genética: de la regla de un quinto a la ley de Kepler
  29. Optimización por colonia de hormigas: cómo un rastro de feromona encuentra un camino corto
  30. Optimización por enjambre de partículas: inercia, experiencia propia y experiencia del enjambre
  31. Neuroevolución: evolución de los pesos y la forma de las redes neuronales, y el algoritmo NEAT
  32. Conjuntos difusos y funciones de pertenencia: cómo escribir «algo cálido»
  33. Lógica difusa y probabilidad: por qué «algo cálido» no significa «probablemente cálido»
  34. Lógica difusa: t-normas, implicaciones y reglas SI–ENTONCES
  35. Control difuso: Mamdani y Sugeno, del ventilador al péndulo invertido sobre un carro
  36. Agrupamiento difuso: el algoritmo fuzzy c-means y los puntos entre clusters
  37. Sistemas neuro-difusos (ANFIS): reglas difusas que aprenden de los datos
  38. Cadenas de Markov: matriz de transición, distribución estacionaria y PageRank
  39. Modelos ocultos de Márkov: el algoritmo de Viterbi y el casino deshonesto
  40. Redes bayesianas: por qué está mojada la hierba y qué significa eso para el aspersor
  41. El filtro de Kalman: cómo estimar a partir de mediciones imprecisas dónde está un coche y a qué velocidad va
  42. Tipos de aprendizaje automático: supervisado, no supervisado, semisupervisado y más
  43. Prompts, contexto y RAG: cómo darle a un modelo la información correcta
  44. Autocodificadores variacionales (VAE): imágenes nuevas a partir de un espacio latente continuo
  45. Redes generativas adversarias (GAN): el falsificador contra el detective
  46. Modelos de difusión: cómo el ruido puro se convierte en una imagen
  47. Procesos de decisión de Markov: estados, acciones, recompensas y ecuaciones de Bellman
  48. Q-learning y DQN: aprender el valor de las acciones, de la tabla a la red neuronal
  49. Gradiente de la política y PPO: aprender directamente la política
  50. Cómo funciona un agente de IA: un modelo de lenguaje en un bucle con herramientas
  51. Programación con agentes de IA: encargo, pruebas y revisión
  52. Evaluación y seguridad de los sistemas de IA: cómo medir y cómo vigilar

Temario completo de la serie 52 de 83 temas publicados

Qué te llevarás
  • Cómo una red bayesiana reduce una enorme tabla de probabilidades a unas pocas tablas pequeñas.
  • Cómo razona una red de los efectos a las causas y qué es la explicación alternativa (explaining away).
  • Cómo leer en el grafo qué variables son independientes y cómo se estiman probabilidades por muestreo.

Conviene conocer antes: Probabilidad condicionada y teorema de Bayes: cómo cambiar una estimación cuando te enteras de algo nuevo, Grafos y árboles: la estructura sobre la que se apoyan la búsqueda y las redes neuronales

Por la mañana sales de casa y la hierba está mojada. ¿Ha llovido o ha funcionado el aspersor? Y cuando luego el vecino te cuenta que por la noche llovió, ¿cambia eso lo que piensas del aspersor? Las personas razonamos así sin pensarlo. Una máquina también puede hacerlo, si sabe qué está relacionado con qué. Una red bayesiana es un dibujo de esas relaciones a partir del cual se puede calcular la respuesta a cualquier pregunta. Judea Pearl recibió por ella y por la teoría de la causalidad que la siguió el Premio Turing de 2011.

Continúa las partes Probabilidad condicionada y teorema de Bayes y Grafos y árboles.

1. El problema de la tabla enorme

La información completa sobre varias variables aleatorias es su distribución conjunta: la probabilidad de cada combinación de valores. Para cuatro variables de sí/no hay 16 combinaciones, es decir, 15 números independientes. Para 37 variables (las que tiene la conocida red médica ALARM para monitorizar pacientes bajo anestesia) serían más de 137 000 millones de números, aunque todas fueran solo de sí/no. Una tabla así nadie la construye, ni la guarda, ni la estima a partir de datos. Nos salva el hecho de que la mayoría de las variables solo están relacionadas indirectamente.

Definición — distribución conjunta y número de sus parámetros

La distribución conjunta de las variables discretas X1, …, Xn es la función P(x1, …, xn) = P(X1 = x1, …, Xn = xn), que es no negativa y suma 1 sobre todas las combinaciones de valores. Para n variables de sí/no tiene 2n valores; el último se calcula a partir de los demás (la suma es 1), así que hay 2n − 1 parámetros independientes.

Cálculo. 24 − 1 = 15; 237 − 1 = 137 438 953 471.

Teorema — regla de la cadena

Para cualesquiera variables y cada combinación de valores con probabilidad positiva se cumple

P(x1, …, xn) = P(x1) · P(x2 | x1) · P(x3 | x1, x2) ⋯ P(xn | x1, …, xn−1) = ∏i=1n P(xi | x1, …, xi−1).

Demostración: por la definición de probabilidad condicionada, P(x1, …, xn) = P(xn | x1, …, xn−1) · P(x1, …, xn−1). Aplicamos lo mismo al segundo factor y así sucesivamente, hasta que queda P(x1). ∎

La regla de la cadena no ahorra nada: el último factor sigue dependiendo de todas las variables anteriores, así que es solo otra forma de escribir la misma tabla enorme. El ahorro llega cuando eliminamos algunas de las condiciones.

2. Red bayesiana

Definición — red bayesiana

Una red bayesiana sobre las variables X1, …, Xn es un grafo dirigido acíclico cuyos vértices son las variables, junto con una tabla de probabilidades condicionadas P(Xi | padres(Xi)) para cada vértice. La red determina la distribución conjunta

P(x1, …, xn) = ∏i P(xi | padres(Xi)).

Dicho de forma sencilla

Las flechas van de las causas a los efectos. De cada variable basta con saber cómo depende de sus causas directas, nada más. La probabilidad de toda la situación es el producto de esos números locales. En lugar de una tabla enorme tienes unas cuantas pequeñas.

¿Por qué puede la red escribir solo P(xi | padres) y no todo el pasado, como la regla de la cadena? Porque supone ciertas independencias condicionales sobre el grafo.

Definición — independencia condicional

Las variables A y C son condicionalmente independientes dado E, y se escribe A ⊥ C | E, si para todos los valores a, c, e con P(c, e) > 0 se cumple

P(a | c, e) = P(a | e)

P(a | c, e)
lo que sabemos de A cuando conocemos E y además C
P(a | e)
lo que sabemos de A solo por E; la igualdad dice que C ya no añade nada: toda la relación entre A y C pasa por E
Equivalentemente, P(a, c | e) = P(a | e) · P(c | e). Con E vacío es la independencia ordinaria.
Teorema — la factorización es la regla de la cadena más independencias locales

Ordenemos las variables topológicamente (cada padre antes que sus hijos). Si cada variable Xi, conocidos sus padres, es condicionalmente independiente de todas las variables que no son descendientes suyos (condición local de Markov), entonces P(x1, …, xn) = ∏i P(xi | padres(Xi)).

Demostración: en la regla de la cadena en orden topológico aparece P(xi | x1, …, xi−1). Entre X1, …, Xi−1 están todos los padres de Xi y ninguno de sus descendientes (un descendiente va después en el orden). Por la condición de Markov podemos eliminar de la condición a todos los demás y queda P(xi | padres(Xi)). ∎

También se cumple al revés: toda distribución dada por un producto de tablas satisface la condición local de Markov. Por eso una red bayesiana se puede definir de cualquiera de las dos maneras.

Nuestra red: cuando está nublado, la lluvia es más probable y es menos probable que alguien encienda el aspersor. Tanto la lluvia como el aspersor dejan la hierba mojada. Los números son del conocido ejemplo de Kevin Murphy:

nublado Z P(Z) 0,5 aspersor P Z P(P) − 0,5 + 0,1 lluvia D Z P(D) − 0,2 + 0,8 hierba mojada T P D P(T) + − 0,9 + + 0,99 − + 0,9 − − 0
Red «hierba mojada» con tablas de probabilidades condicionadas + sí, − no

La red tiene 1 + 2 + 2 + 4 = 9 números en lugar de 15. Con cuatro variables el ahorro es pequeño; con cientos, enorme: si cada vértice tiene como mucho k padres, el número de valores crece con n de forma lineal (n · 2k), no exponencial (2n). La probabilidad de la situación «nublado, el aspersor no funcionó, llovió, hierba mojada» es 0,5 · 0,9 · 0,8 · 0,9 = 0,324.

P(z, p, d, t) = P(z) · P(p | z) · P(d | z) · P(t | p, d)

P(z)
nublado no tiene padres, su tabla es un único número; en el ejemplo 0,5
P(p | z)
el aspersor solo depende de las nubes; aquí no hay ninguna diferencia con la regla de la cadena; en el ejemplo no funcionó con el cielo nublado: 1 − 0,1 = 0,9
P(d | z)
la regla de la cadena pediría P(d | z, p); la red supone que, conocido el cielo, el aspersor no dice nada sobre la lluvia, y así p desaparece de la condición; en el ejemplo 0,8
P(t | p, d)
la regla de la cadena pediría P(t | z, p, d); la hierba solo «sabe» de las nubes a través de la lluvia y el aspersor, y así desaparece z; en el ejemplo (aspersor no, lluvia sí) 0,9
Cada término eliminado de la condición es una independencia condicional que la red supone: justo ellas reducen 15 números a 9.

3. Inferencia: del efecto a la causa

Definición — inferencia por enumeración

La probabilidad de la consulta Q dada la evidencia E = e es

P(Q | e) = ∑y P(Q, e, y) / ∑q, y P(q, e, y),

donde se suma sobre todos los valores y de las demás variables (ocultas) y cada término es un producto de la factorización de la red.

Dicho de forma sencilla

Recorremos todos los mundos posibles que concuerdan con lo que sabemos (la hierba está mojada) y miramos qué peso tienen entre ellos aquellos en los que llovió. Es el teorema de Bayes de la parte sobre probabilidad condicionada, solo que se suma sobre más variables a la vez.

P(Q | e) = ∑y P(Q, e, y) / ∑q, y P(q, e, y)

e
evidencia: los valores que hemos observado (en nuestro caso, la hierba mojada); en todos los mundos sumados están fijos
∑y
las variables ocultas (en nuestro caso, nublado y aspersor) no las conocemos y no nos interesan, así que sumamos todas sus posibilidades: marginalización; los mundos son mutuamente excluyentes, así que sus probabilidades se suman
P(Q, e, y)
probabilidad de un mundo completo en el que se cumplen la consulta y la evidencia: producto de números de las tablas según la factorización
∑q, y P(q, e, y)
= P(e), el peso de todos los mundos que concuerdan con la evidencia; la división es la definición de probabilidad condicionada P(Q | e) = P(Q, e) / P(e) y garantiza que P(Q | e) + P(¬Q | e) = 1
Ejemplo — P(lluvia | hierba mojada) por enumeración

La evidencia es T = sí, la consulta D, y las ocultas son Z y P. Hay 23 = 8 mundos con la hierba mojada; cada uno es el producto P(z) · P(p | z) · P(d | z) · P(t | p, d):

lluvianubladoaspersorproductoP(mundo)
sísísí0,5 · 0,1 · 0,8 · 0,990,0396
sínosí0,5 · 0,5 · 0,2 · 0,990,0495
sísíno0,5 · 0,9 · 0,8 · 0,90,3240
sínono0,5 · 0,5 · 0,2 · 0,90,0450
nosísí0,5 · 0,1 · 0,2 · 0,90,0090
nonosí0,5 · 0,5 · 0,8 · 0,90,1800
nosíno0,5 · 0,9 · 0,2 · 00,0000
nonono0,5 · 0,5 · 0,8 · 00,0000

Las cuatro primeras filas (llovió) dan P(D, T) = 0,4581, y las ocho juntas P(T) = 0,6471. Las dos últimas filas son nulas: sin lluvia y sin aspersor la hierba no está mojada. Por tanto,

P(D | T) = 0,4581 / 0,6471 = 0,708.

def dotaz(Q, dukazy, sit):
    citatel = jmenovatel = 0.0
    for svet in vsechna_prirazeni(sit):              # 2^n mundos completos
        if any(svet[k] != v for k, v in dukazy.items()):
            continue                                 # no concuerda con la evidencia
        p = 1.0
        for uzel in sit:                             # factorización de la red
            p *= P(uzel, svet[uzel], svet[rodice(uzel)])
        jmenovatel += p                              # → P(e)
        if svet[Q]:
            citatel += p                             # → P(Q, e)
    return citatel / jmenovatel

A priori (sin ninguna observación), la probabilidad de lluvia es 0,5 y la del aspersor 0,3. La hierba mojada aumenta ambas: P(lluvia | hierba mojada) = 0,708 y P(aspersor | hierba mojada) = 0,430. La lluvia es la explicación más probable, porque llueve más a menudo de lo que funciona el aspersor. La hierba mojada aumenta también la probabilidad de que estuviera nublado, de 0,5 a 0,576, aunque la hierba y las nubes no están relacionadas directamente. La información fluye por la red en contra de las flechas.

4. Explicación alternativa

Ahora nos enteramos de que por la noche llovió de verdad. ¿Qué pasa con el aspersor?

00,51 0,30 0,43 0,19 aspersor 0,50 0,71 0,32 lluvia causa de la hierba mojada (categoría) probabilidad P (0–1)
Aspersor y lluvia: a priori, con la hierba mojada y con la hierba mojada sabiendo la otra causa a priori la hierba está mojada y sabemos la otra causa

La probabilidad del aspersor cae de 0,430 a 0,194. La lluvia ya ha explicado la hierba mojada, así que al aspersor no le queda motivo. Al revés, si sabemos que funcionó el aspersor, la probabilidad de lluvia baja de 0,708 a 0,320. Este fenómeno se llama explicación alternativa (explaining away). Dos causas que a priori solo estaban relacionadas débilmente empiezan a «desplazarse» mutuamente en cuanto observamos su efecto común. Y si supiéramos que no llovió, el aspersor tendría que haber funcionado: P(aspersor | hierba mojada, no lluvia) = 1, porque en nuestra red la hierba no puede mojarse por sí sola.

Ejemplo — explicación alternativa en números

De la tabla del ejemplo anterior: los mundos en los que llovió, funcionó el aspersor y la hierba está mojada tienen en conjunto P(P, D, T) = 0,0396 + 0,0495 = 0,0891. Por tanto,

P(P | T, D) = P(P, D, T) / P(D, T) = 0,0891 / 0,4581 = 0,194,

P(D | T, P) = P(P, D, T) / P(P, T) = 0,0891 / 0,2781 = 0,320.

Formalmente, la explicación alternativa es la desigualdad P(P | T, D) < P(P | T): confirmar una causa reduce la probabilidad de la otra (0,194 < 0,430).

5. Lo que se lee en la red: d-separación

El grafo no solo dice cómo calcular: dice también qué variables son independientes entre sí, y eso sin un solo número. Todas las posibilidades se componen de tres formas básicas:

  • Cadena A → B → C: A y C están relacionadas, pero cuando conocemos B, ya no. (Nublado → lluvia → hierba mojada: a quien sabe si llovió, las nubes no le dicen nada sobre la hierba).
  • Bifurcación A ← B → C: una causa común hace dependientes a A y C; cuando la conocemos, la dependencia desaparece. (El aspersor y la lluvia están relacionados a priori a través de las nubes: P(aspersor | lluvia) = 0,18, pero P(aspersor | no llovió) = 0,42. Cuando sabemos si está nublado, son independientes).
  • Colisionador A → B ← C: las causas son independientes mientras no observemos el efecto común; entonces se vuelven dependientes. Esa es la explicación alternativa.
Definición — d-separación

Un camino en el grafo (sin tener en cuenta la dirección de las flechas) está bloqueado por el conjunto E si en él hay una cadena o una bifurcación con el centro en E, o un colisionador cuyo centro no está en E y ninguno de sus descendientes tampoco. Las variables A y C están d-separadas por el conjunto E si E bloquea todos los caminos entre ellas. Entonces, en toda distribución determinada por la red, son condicionalmente independientes dado E.

Dicho de forma sencilla

La información fluye por el grafo a lo largo de los caminos. Una variable conocida en medio de una cadena o una bifurcación detiene el flujo: ya está «explicada». En el colisionador es al revés: mientras no conoces el efecto, el flujo está detenido; en cuanto lo observas, se abre. Así, del dibujo puedes leer qué hace falta medir y qué sobra.

En nuestra red, nublado y hierba mojada están d-separados cuando conocemos el aspersor y la lluvia, y el cálculo lo confirma: la probabilidad de cielo nublado ya no depende en absoluto de la hierba.

Ejemplo — las tres formas comprobadas con cálculos
  • Bifurcación aspersor ← nublado → lluvia. Sin conocer el cielo: P(P | D) = 0,18 ≠ P(P) = 0,3, dependientes. Conocido el cielo: P(P | Z, D) = 0,1 = P(P | Z), es decir, P ⊥ D | Z.
  • Colisionador aspersor → hierba mojada ← lluvia. Conocido el cielo, P y D son independientes (P(P | Z, D) = P(P | Z, ¬D) = 0,1), pero en cuanto observamos la hierba, ya no: P(P | Z, D, T) = 0,109, mientras que P(P | Z, ¬D, T) = 1.
  • D-separación de cielo nublado y hierba mojada por el conjunto {P, D}: los dos caminos Z → P → T y Z → D → T son cadenas con el centro conocido, así que están bloqueados. Y, en efecto: P(Z | P, D) = 0,444 y P(Z | P, D, T) = 0,444; P(Z | P, ¬D) = 0,048 y P(Z | P, ¬D, T) = 0,048.

6. Inferencia aproximada por muestreo

La inferencia por enumeración recorre todas las combinaciones de las variables ocultas, que en una red general son exponencialmente muchas. La inferencia exacta en redes bayesianas es NP-difícil. Por eso, en redes grandes las probabilidades se estiman mediante simulación.

Algoritmos — muestreo por rechazo y ponderación por verosimilitud

Muestreo por rechazo: genera mundos a partir de la red (de las causas a los efectos, según las tablas), descarta los que no concuerdan con la evidencia y, entre los restantes, calcula la proporción en la que se cumple la consulta.

Ponderación por verosimilitud: no sortees la evidencia, fíjala; pondera cada mundo generado con el producto de las probabilidades de la evidencia dados los valores de sus padres. La estimación es la proporción ponderada.

Dicho de forma sencilla

El rechazo es honesto, pero derrochador: cuando la evidencia es rara, descarta casi todas las muestras. La ponderación por verosimilitud no descarta nada: solo asigna a cada muestra un peso según lo bien que encaja con lo que sabemos.

def zamitani(Q, dukazy, n, sit):
    prijato = ano = 0
    for _ in range(n):
        svet = {}
        for uzel in sit:                             # de las causas a los efectos
            svet[uzel] = nahoda() < P(uzel, True, svet[rodice(uzel)])
        if any(svet[k] != v for k, v in dukazy.items()):
            continue                                 # a la papelera
        prijato += 1
        ano += svet[Q]
    return ano / prijato

def vazena(Q, dukazy, n, sit):
    s = s_ano = 0.0
    for _ in range(n):
        svet, w = {}, 1.0
        for uzel in sit:
            p = P(uzel, True, svet[rodice(uzel)])
            if uzel in dukazy:                       # la evidencia no se sortea…
                svet[uzel] = dukazy[uzel]
                w *= p if dukazy[uzel] else 1 - p    # …pero ponderamos lo probable que es
            else:
                svet[uzel] = nahoda() < p
        s += w
        s_ano += w * svet[Q]
    return s_ano / s

P̂(Q | e) = ∑k wk [Q se cumple en la muestra k] / ∑k wk,   wk = ∏j P(ej | padresk)

wk
peso de la muestra (en verde, como la curva de ponderación por verosimilitud en el gráfico): producto de las probabilidades de toda la evidencia ej dados los valores de sus padres que salieron en la muestra k; la evidencia no la sorteamos, la impusimos, así que hay que tener en cuenta lo probable que sería con los demás valores sorteados; de lo contrario, la estimación estaría sesgada
[Q se cumple en la muestra k]
1 si en la muestra se cumple la consulta y 0 en caso contrario: solo contamos el peso de las muestras en las que llovió
∑k wk
peso total; al dividir por él obtenemos una proporción, igual que al dividir por P(e) en la enumeración. Gracias a ello no importa que los pesos no sumen 1
El rechazo es un caso particular: el peso es 1 para las muestras que concuerdan con la evidencia y 0 para las demás.
Ejemplo — pesos con la evidencia «la hierba está mojada»

La única evidencia es T = sí, y sus padres son el aspersor y la lluvia. Por eso el peso de la muestra es simplemente P(T = sí | p, d) de la tabla de la hierba mojada:

  • aspersor y lluvia: w = 0,99,
  • solo uno de los dos: w = 0,9,
  • ninguno: w = 0; una muestra así no contribuye a nada, igual que si el rechazo la hubiera descartado.

El peso no depende del cielo: nublado no es padre de la hierba.

0,60,70,8 101001 00010 000 muestras (número, escala log.) estimación de P(lluvia | mojada) (0–1)
Estimación de P(lluvia | hierba mojada) según el número de muestras rechazo ponderación por verosimilitud exacto 0,708

Con cien muestras, el rechazo dio la estimación 0,686 y solo usó 70: las otras 30 tenían la hierba seca y fueron a la papelera. Con 10 000 muestras (de las que quedaron 6 524), la estimación es 0,703, cerca del valor exacto 0,708. El error disminuye como 1/√N, como dice el teorema central del límite: para una estimación diez veces más precisa hacen falta cien veces más muestras.

σP̂ = √(p(1 − p) / Nacep),   Nacep ≈ N · P(e)

p(1 − p)
varianza de una muestra de tipo sí/no (distribución de Bernoulli con probabilidad p); es máxima para p = 0,5, cuando una sola muestra es menos predecible
Nacep
número de muestras que realmente cuentan; en el rechazo, solo las que pasaron, que en promedio son una fracción P(e), y con una evidencia rara casi ninguna. La varianza de la media de N muestras independientes es N veces menor
La raíz cuadrada devuelve la varianza a unidades de probabilidad: por eso el error solo disminuye como 1/√N. (La igualdad es aproximada: el número de muestras aceptadas es en sí aleatorio).
Ejemplo — qué error cabe esperar

El valor exacto es p = 0,708 y P(e) = P(T) = 0,6471, así que de 10 000 muestras esperamos unas 6 471 aceptadas (en realidad fueron 6 524).

  • Nacep = 70: σ = √(0,708 · 0,292 / 70) = 0,054; error real |0,686 − 0,708| = 0,022.
  • Nacep = 6 524: σ = 0,0056; error real 0,0050.

Los dos errores reales son menores que una desviación típica, lo que concuerda con que unas dos terceras partes de las estimaciones caen dentro de ±σ (distribución normal según el teorema central del límite).

7. Redes bayesianas en la práctica

  • Diagnóstico. Redes médicas (ALARM, QMR-DT con cientos de enfermedades y miles de síntomas) y diagnóstico de averías de máquinas y redes: a partir de los síntomas observados, inferir la causa más probable y proponer qué medir a continuación.
  • Aprendizaje a partir de datos. Las tablas se pueden estimar a partir de datos contando (por máxima verosimilitud, de la parte sobre estadística), incluso cuando faltan algunos valores: con el algoritmo EM, pariente del algoritmo de Baum-Welch de la parte anterior.
  • Causalidad. Pearl mostró que una red leída como grafo de causas puede responder también a preguntas del tipo «qué pasaría si interviniéramos» (si encendiéramos nosotros el aspersor), algo que no se puede leer en las correlaciones por sí solas. En eso se basa la inferencia causal actual en epidemiología y economía.
  • Parientes. El clasificador bayesiano ingenuo es una red bayesiana con una causa y muchos efectos independientes. Los modelos ocultos de Markov de la parte anterior son una red bayesiana desplegada en el tiempo.

8. Resumen

  • Una red bayesiana es un grafo dirigido acíclico con tablas P(X | padres); la distribución conjunta es el producto de esas tablas. Nuestra red necesita 9 números en lugar de 15.
  • La inferencia va también en contra de las flechas: la hierba mojada aumenta la probabilidad de lluvia a 0,708 y la del aspersor a 0,430.
  • Explicación alternativa: cuando sabemos que llovió, la probabilidad del aspersor baja a 0,194.
  • La d-separación lee las independencias directamente del grafo: la cadena y la bifurcación se cierran al observar, el colisionador se abre.
  • La inferencia exacta es en general NP-difícil; el muestreo da estimaciones con un error que disminuye como 1/√N.

¿Quieres tocarlo con tus propias manos? Pide a un agente de IA que construya una red bayesiana para una avería de tu coche o de tu ordenador («no arranca: ¿la batería o el motor de arranque?») y prueba cómo cambian las sospechas a medida que añades observaciones.

¿Lo ves de otra manera? Escribe a support@coden-app.com.

Un Agente en tu ordenador, controlado desde el móvil