Pré-requisito assumido: domínio de \(P(A \mid B)\) e do Teorema de Bayes (Aula 1).
Bloco A — DAG, CPT e d-Separação
Origem Histórica: Judea Pearl
Redes bayesianas surgiram no final da década de 1980, propostas por Judea Pearl, filósofo e cientista da computação
Objetivo original: facilitar predição, indução e dedução em sistemas de inteligência artificial
Também chamadas de redes de crença ou grafos de dependência probabilística
Combinam Teoria de Grafos, Teoria de Probabilidades, Ciência da Computação e Estatística
Aplicações em diagnóstico de falhas, agricultura, cibersegurança, mudanças climáticas e, especialmente, diagnóstico médico
Vantagens das Redes Bayesianas
Segundo Uusitalo (2007) e Chen & Pollino (2012), as redes bayesianas se destacam por:
Adequação para conjuntos de dados pequenos e incompletos
Possibilidade de aprendizagem estrutural a partir dos dados
Combinação de diferentes fontes de conhecimento (dados + opinião de especialista)
Tratamento explícito da incerteza e suporte direto à análise de decisão
Descoberta de conhecimento, síntese de dados e identificação de lacunas
Importante
Ao contrário de muitos modelos, dados incompletos não quebram uma rede bayesiana — ela codifica naturalmente essas dependências.
O que é uma Rede Bayesiana? Dois Componentes
Uma Rede Bayesiana (BN) é definida por:
Estrutura gráfica (\(G\)): um Grafo Acíclico Direcionado (DAG) — quem depende de quem
Distribuições locais (\(P(\mathbf{X})\)): uma distribuição de probabilidade para cada variável, condicional aos seus pais no grafo
A representação visual de uma rede bayesiana é, do ponto de vista probabilístico, uma sumarização da distribuição de probabilidade conjunta das variáveis (Ben-Gal, 2008).
Grafos Acíclicos Direcionados (DAG)
Nó: cada variável do domínio (ex.: fator de risco, sintoma, diagnóstico)
Arco direcionado (\(X \rightarrow Y\)): \(Y\) depende diretamente de \(X\); \(X\) é pai, \(Y\) é filho
Caminho: sequência de arcos ligando dois nós, mesmo que não diretamente
Acíclico: nenhum caminho pode retornar a um nó já visitado
Importante
Um arco \(X \rightarrow Y\) representa dependência estatística, não necessariamente causalidade. Redes bayesianas causais exigem suposições adicionais.
Redes Bayesianas Discretas e Contínuas
Dados multinomiais: distribuições conjuntas, marginais e condicionais tratadas como multinomiais, representadas em tabelas — são as redes bayesianas discretas (o caso mais comum)
Dados normais multivariados: a conjunta é normal multivariada, e as condicionais são variáveis normais univariadas ligadas por combinações lineares — chamadas redes bayesianas gaussianas
Métodos híbridos (redes gaussianas condicionais) combinam variáveis discretas e contínuas, mas não serão aprofundados aqui
Exemplo Clínico: Triagem de Dor Torácica
Cenário-guia da aula: triagem de dor torácica aguda no pronto-socorro, com quatro variáveis:
Fator de Risco (FR): presença de fatores de risco cardiovascular (sim/não)
O DAG diz exatamente como fatorar a distribuição conjunta: um termo por variável, condicional aos seus pais
Sem essa estrutura, precisaríamos de uma tabela conjunta com \(2^4 = 16\) combinações — 15 parâmetros livres
Com a fatoração: \(2 + 2 + 2 + 2 = 8\) parâmetros — metade, e a economia cresce exponencialmente com mais variáveis
Importante
Essa fatoração é a regra da cadeia aplicada à estrutura do grafo — a mesma lógica da probabilidade condicional da Aula 1, agora para várias variáveis.
Tabelas de Probabilidade Condicional (CPT)
CPT: tabela que especifica \(Pr(\text{variável} \mid \text{pais})\) para cada combinação de estados dos pais
Variáveis sem pais (raízes do DAG): tabela unidimensional — distribuição marginal
Variáveis com pais: uma coluna para cada combinação de estados dos pais — cada coluna soma 1
DAG + conjunto de CPTs = rede bayesiana completamente especificada
CPTs do Exemplo Clínico em R
library(bnlearn)dag_clin <-model2network("[FR][D|FR][ECG|D][Tn|D]")FR.prob <-array(c(0.30, 0.70), dim =2, dimnames =list(FR =c("sim", "nao")))D.prob <-array(c(0.35, 0.65, 0.05, 0.95), dim =c(2, 2),dimnames =list(D =c("sim", "nao"), FR =c("sim", "nao")))ECG.prob <-array(c(0.75, 0.25, 0.10, 0.90), dim =c(2, 2),dimnames =list(ECG =c("sim", "nao"), D =c("sim", "nao")))Tn.prob <-array(c(0.85, 0.15, 0.06, 0.94), dim =c(2, 2),dimnames =list(Tn =c("sim", "nao"), D =c("sim", "nao")))bn_clin <-custom.fit(dag_clin, list(FR = FR.prob, D = D.prob, ECG = ECG.prob, Tn = Tn.prob))nparams(bn_clin)
[1] 7
Independência Condicional e Separação Gráfica
Duas variáveis sem caminho aberto entre si são condicionalmente independentes
O DAG permite ler diretamente relações de (in)dependência, sem calcular nada numericamente
Conceito-chave: d-separação (separação direcional) — generaliza “bloquear um caminho” no grafo
Se todo caminho entre \(X\) e \(Y\) é bloqueado por \(Z\): \(X \perp\!\!\!\perp Y \mid Z\)
As Três Conexões Fundamentais (1/2): Serial e Divergente
Serial (\(FR \rightarrow D \rightarrow ECG\)): condicionar no nó do meio bloqueia o caminho
Divergente (\(ECG \leftarrow D \rightarrow Tn\)): condicionar no “pai comum” também bloqueia — é exatamente o nosso exemplo clínico
As Três Conexões Fundamentais (2/2): Convergente (V-estrutura)
Convergente (\(A \rightarrow E \leftarrow S\)): o oposto das anteriores
Sem condicionar em \(E\): \(A\) e \(S\) são independentes
Condicionando em \(E\) (ou descendente): \(A\) e \(S\) tornam-se dependentes
Sem arco entre os pais: chamada de v-estrutura, essencial para aprendizado de estrutura (Bloco D)
d-Separação em R: dsep()
dsep(dag_clin, x ="ECG", y ="Tn")
[1] FALSE
dsep(dag_clin, x ="ECG", y ="Tn", z ="D")
[1] TRUE
dsep(dag_clin, x ="FR", y ="ECG")
[1] FALSE
dsep(dag_clin, x ="FR", y ="ECG", z ="D")
[1] TRUE
Exercício — Bloco A
Exercício: usando o DAG clínico do Bloco A (\(FR \rightarrow D \rightarrow ECG\), \(D \rightarrow Tn\)), determine, apenas pela leitura do grafo (sem calcular nada numericamente):
\(FR\) e \(Tn\) são d-separados, sem condicionar em nada?
\(FR\) e \(Tn\) são d-separados, condicionando em \(D\)?
\(ECG\) e \(Tn\) são d-separados, condicionando em \(FR\)?
dsep(dag_clin, x ="FR", y ="Tn")
[1] FALSE
dsep(dag_clin, x ="FR", y ="Tn", z ="D")
[1] TRUE
dsep(dag_clin, x ="ECG", y ="Tn", z ="FR")
[1] FALSE
Síntese do Bloco A
Uma rede bayesiana = DAG (estrutura) + CPTs (distribuições locais)
O DAG permite fatorar a conjunta e ler independências via d-separação
As três conexões fundamentais — serial, divergente, convergente — são a base de toda a teoria de redes bayesianas
Próximo passo: como estimamos os parâmetros dessas CPTs a partir de dados? É o tema do Bloco B, inferência bayesiana
Inferência por Evidências: Retomando o Conceito
Em redes bayesianas, “inferência” é também chamada atualização de crença (belief updating)
Mecanismo para calcular a distribuição a posteriori de uma ou mais variáveis, dado um conjunto de evidências — variáveis observadas ou assumidas conhecidas
Existem métodos exatos (via árvore de junção, pacote gRain) e métodos aproximados, por simulação (cpquery), quando a rede é grande
O tempo computacional da inferência não depende apenas do número de variáveis: uma rede com poucas variáveis, mas relações complexas, pode ser mais lenta que uma rede com milhares de variáveis, mas estrutura simples.
Redes Bayesianas Causais: uma Nota de Cautela
Um DAG por si só codifica dependência estatística, não causalidade
Uma rede bayesiana causal exige suposições adicionais: suficiência causal (sem confundidores não observados) e fidelidade (as independências observadas refletem a estrutura, não coincidências)
Sob essas suposições, arcos podem ser interpretados como relações causais diretas (Pearl, 1988; 2009)
Importante
Os algoritmos de aprendizado de estrutura do Bloco D não garantem causalidade — apenas encontram estruturas consistentes com as (in)dependências observadas nos dados.
Bloco B — Inferência Bayesiana Paramétrica
Frequentista vs. Bayesiano: Duas Filosofias
Inferência frequentista: probabilidades são propriedades físicas, interpretadas como frequências a longo prazo
Inferência bayesiana: probabilidades são graus subjetivos de crença
A conjectura bayesiana apoia-se em três postulados (Wasserman, 2013):
Probabilidade descreve crença, não apenas frequência
É possível fazer afirmações probabilísticas sobre parâmetros, mesmo que sejam constantes fixas
A inferência sobre um parâmetro \(\theta\) produz uma distribuição de probabilidade para \(\theta\)
Essa é exatamente a conjugação Multinomial-Dirichlet que fundamenta a estimação de qualquer CPT discreta de uma rede bayesiana — o problema de estimar parâmetros vira uma simples contagem.
Síntese do Bloco B
Inferência bayesiana trata parâmetros como variáveis aleatórias, com priori e posteriori
Distribuições conjugadas (Beta-Binomial, Dirichlet-Multinomial) tornam a atualização uma simples soma de contagens
É exatamente esse mecanismo que estima as CPTs de uma rede bayesiana discreta a partir de dados reais
Com estrutura e parâmetros formalizados, podemos agora usar redes bayesianas para uma tarefa concreta: classificação — tema do Bloco C
Bloco C — Classificadores Bayesianos
A Tarefa de Classificação
Seja \(\mathbf{X}\) um vetor de \(p\) variáveis explicativas (sintomas, exames) e \(Y\) uma variável categórica de saída (diagnóstico), \(y \in \{1, \ldots, c\}\)
Como \(P(\mathbf{X}=\mathbf{x})\) não depende de \(y\): basta maximizar \(P(\mathbf{X}=\mathbf{x}, Y=y)\)
Importante
A decomposição direta de \(P(\mathbf{X}\mid Y)\) é computacionalmente exaustiva: o número de parâmetros cresce exponencialmente com o número de variáveis de entrada.
Classificadores Bayesianos como DAGs Especiais
Um classificador bayesiano é uma rede bayesiana cujo propósito é prever \(Y\)
São, por definição, DAGs com parâmetros estimados como no Bloco B
Limitação: por causa da forma específica de fatoração, não têm interpretação causal direta sobre as demais variáveis
Quatro classificadores clássicos: Naïve Bayes, TAN, KDB e AODE — cada um relaxando progressivamente uma suposição de independência
Medidas de Informação: Informação Mútua
Da Teoria da Informação (Shannon, 1948), mede a dependência entre duas variáveis:
A suposição de independência é ingênua (daí o nome) e raramente se sustenta na prática — mas reduz o número de parâmetros de exponencial para linear, e frequentemente funciona bem mesmo assim.
Diagrama do Naïve Bayes
\(Y\) é raiz e pai de todas as variáveis de entrada — estrutura em “estrela”
Estimação de parâmetros: caso conjugado Multinomial-Dirichlet, conhecido como m-estimador (Cestnik, 1990)
Caso contínuo: tipicamente \(X_i \mid y \sim N(\mu_{i\mid y}, \sigma^2_{i\mid y})\) — Naive Bayes Gaussiano
Tree-Augmented Naïve Bayes (TAN)
Proposto por Friedman & Goldszmidt (1996): relaxa a independência do Naive Bayes
\(Y\) continua pai de todos os \(X_i\), mas cada \(X_i\) pode depender de no máximo mais uma covariável \(X_j\)
\[P(\mathbf{X}, Y) = P(Y) \prod_{i=1}^{p} P(X_i \mid Y, X_j)\]
É um caso especial de rede bayesiana, com \(\Pi_{X_i} = \{Y, X_j\}\)
Usa o Algoritmo de Chow-Liu para decidir qual \(X_j\) escolher para cada \(X_i\)
Algoritmo de Chow-Liu
Calcule a informação mútua condicional\(I(X_i, X_j \mid Y)\) para todo par \(i \neq j\)
Construa um grafo completo não direcionado, com a informação mútua como peso de cada aresta
Encontre a árvore geradora de peso máximo (maximum weighted spanning tree)
Direcione a árvore: escolha uma variável como raiz e oriente os arcos a partir dela
Chow & Liu (1968) provam que esse procedimento encontra a árvore que maximiza a função de verossimilhança entre todas as estruturas em árvore possíveis.
K-Dependence Bayesian Classifier (KDB)
Proposto por Sahami (1996): generaliza o TAN permitindo até \(K\) pais adicionais por variável (além da classe), \(K \in \{0, \ldots, p-1\}\)
\(K\) maior: mais dependências capturadas, ao custo de mais parâmetros
O algoritmo constrói a rede incrementalmente, adicionando a cada passo a variável com maior informação mútua com \(Y\), e conectando-a às \(m = \min(|S|, K)\) variáveis já incluídas com maior informação mútua condicional.
Averaged One-Dependence Estimator (AODE)
Proposto por Webb, Boughton & Wang (2005): evita o custo computacional de seleção de modelo dos classificadores de uma dependência (TAN, 1-DB)
Ideia: calcular a média de vários classificadores SPODE (SuperParent One-Dependence Estimator), cada um com uma variável diferente como “superpai”
É um classificador do tipo ensemble: agrega várias estruturas plausíveis em vez de escolher uma só
Comparando os Quatro Classificadores
Classificador
Dependências permitidas
Complexidade de parâmetros
Naive Bayes
Nenhuma (só \(Y\))
\(\mathcal{O}(cpv)\)
TAN
Até 1 por variável
\(\mathcal{O}(c(pv)^2)\)
KDB
Até \(K\) por variável
\(\mathcal{O}(p(c+v^K))\)
AODE
Ensemble de 1 dependência
\(\mathcal{O}(c(pv)^2)\)
sendo \(c\) o número de categorias de \(Y\), \(p\) o número de variáveis de entrada e \(v\) o número médio de estados por variável.
Síntese do Bloco C
Classificadores bayesianos são DAGs com propósito preditivo, com \(Y\) sempre em posição especial
Naive Bayes (independência total) → TAN (uma dependência extra, via Chow-Liu) → KDB (até \(K\) dependências) → AODE (ensemble de estruturas de uma dependência)
Avaliação exige métricas robustas a desbalanceamento, como o MCC, especialmente em saúde
Próxima pergunta: e quando não sabemos o DAG de antemão — como aprendê-lo dos dados? Tema do Bloco D
Bloco D — Aprendizado de Estrutura
O Problema do Aprendizado de Estrutura
A estimação de uma rede bayesiana envolve duas tarefas: aprender a estrutura \(G\) e aprender os parâmetros de \(P(\mathbf{X})\) (Bloco B)
A estrutura pode vir de especialistas — e então só resta estimar parâmetros — ou ser aprendida dos dados
Chickering (1995): encontrar a estrutura ótima é NP-difícil, mesmo restringindo cada nó a no máximo dois pais
NP-difícil significa que o número de estruturas candidatas cresce tão rapidamente com o número de variáveis que não existe algoritmo conhecido capaz de garantir a solução ótima em tempo viável — testar todos os DAGs possíveis, um a um, seria impraticável mesmo para poucas variáveis.
Importante
Apesar da dificuldade computacional, os algoritmos de aprendizado de estrutura são eficazes na prática e escalam bem, sem sofrer tanto da maldição da dimensionalidade — problema pelo qual métodos estatísticos costumam perder desempenho quando o número de variáveis cresce muito (Scutari, 2010).
Duas Famílias de Algoritmos
Métodos baseados em restrição (constraint-based): usam testes de independência condicional para decidir quais arcos existem, construindo um DAG consistente com as d-separações observadas
Métodos baseados em pontuação (score-based): atribuem uma pontuação a cada estrutura candidata e buscam maximizá-la via heurísticas de busca
Uma terceira classe, híbrida, combina as duas — mas não é sistematicamente mais precisa (Scutari, Graafland & Gutiérrez, 2019)
Métodos Baseados em Restrição: Principais Algoritmos
Usam testes de independência condicional para decidir quais arcos existem, apoiando-se nas conexões fundamentais do Bloco A (especialmente as v-estruturas, único padrão que deixa uma “assinatura” detectável sem ambiguidade).
Algoritmo
Características principais
PC (Spirtes, Glymour & Scheines)
O mais clássico; implementação do algoritmo conceitual IC (Pearl & Verma, 1991); sensível à ordem em que as variáveis são testadas
PC-estável (Colombo & Maathuis, 2014)
Corrige a dependência de ordem do PC original — resultado não muda conforme a organização das colunas dos dados
Grow-Shrink (GS)
Baseado em testes de Markov blanket; simples e eficiente para bases de tamanho moderado
IAMB e variantes
Família de algoritmos que refinam a identificação do Markov blanket de cada variável antes de montar o DAG completo
Métodos Baseados em Pontuação
Atribuem uma pontuação \(s(G\mid D)\) a cada estrutura candidata, medindo o quão bem ela descreve os dados
Via Teorema de Bayes: \(s(G\mid D) \propto P(D\mid G) = L(G\mid D)\) — a verossimilhança da estrutura
Forma geral com penalização por complexidade (navalha de Occam):
Pontuação BDeu (Bayesian-Dirichlet equivalent uniform): generaliza o K2 com um tamanho amostral equivalente \(\alpha\)
O BDeu é a única pontuação, no caso Multinomial-Dirichlet, que atribui o mesmo valor a DAGs na mesma classe de equivalência — por isso é preferida quando se busca interpretação causal (Pearl, 2009).
Métodos Baseados em Pontuação: Principais Algoritmos
Exploram o espaço de DAGs por meio de adição, remoção ou reversão de arcos, sempre orientados por uma pontuação (AIC, BIC, K2 ou BDeu).
Algoritmo
Características principais
Hill-Climbing (subida de encosta)
Greedy search: move-se sempre para o vizinho de maior pontuação; simples e rápido, mas sofre de ótimos locais
Reinicializações aleatórias
Executa o hill-climbing várias vezes a partir de pontos de partida diferentes, reduzindo o risco de ficar preso num ótimo local
Busca Tabu (Glover, 1986)
Permite aceitar temporariamente uma estrutura de pontuação pior, mantendo uma lista de estruturas recentes (“tabu”) que não podem ser revisitadas
Simulated Annealing
Aceita pioras com probabilidade decrescente ao longo das iterações — outra estratégia para escapar de ótimos locais
No bnlearn: hc() para hill-climbing e tabu() para busca tabu — ambas aceitam qualquer uma das pontuações vistas (score = "aic", "bic", "k2", "bde").
Listas de Permissões e de Bloqueios: Incorporando Conhecimento Prévio
Lista de permissões (allowlist): conexões fixas, sempre incluídas na estimação, independentemente da pontuação
Lista de bloqueios (blocklist): conexões proibidas, nunca testadas ou incluídas
Permite combinar opinião de especialista com aprendizado orientado a dados
No pacote bnlearn, esses argumentos aparecem nas funções de aprendizado como whitelist e blacklist
No exemplo clínico, poderíamos usar uma lista de bloqueios para proibir arcos de ECG ou Troponina para Fator de Risco — dado que sabemos, por conhecimento médico, que a ordem causal não poderia ser essa.
Equivalência de Markov e Direção de Arcos
Estruturas Markov equivalentes (mesmo esqueleto, mesmas v-estruturas) são, em geral, score equivalentes para a maioria das pontuações usadas
Isso dificulta a orientação de arcos que não fazem parte de uma v-estrutura — métodos baseados em restrição produzem, nesses casos, um grafo parcialmente direcionado
Arcos do tipo \(A \rightarrow B\) fora de uma v-estrutura devem ser interpretados com cautela
Importante
A escolha de orientação nesses arcos ambíguos deve se apoiar em conhecimento prévio ou opinião de especialista — o próprio bootstrap de arco (direction) também ajuda nessa decisão.
Síntese do Bloco D
Duas famílias de algoritmos: baseados em restrição (PC, PC-estável, GS, IAMB — via testes de independência e v-estruturas) e baseados em pontuação (hill-climbing, busca tabu — via AIC/BIC/K2/BDeu)
Ambas as abordagens são heurísticas, pois o problema exato é NP-difícil
Listas de permissões e de bloqueios permitem incorporar conhecimento clínico ao processo de estimação
A equivalência de Markov lembra que nem toda orientação de arco pode ser decidida só pelos dados
Conexão com a Aula 2: de Regras Fixas a Redes Probabilísticas
Na Aula 2, sistemas especialistas usavam regras fixas do tipo “SE-ENTÃO”, com encadeamento forward e backward
Redes bayesianas generalizam essa lógica: em vez de regras binárias, cada relação é probabilística e quantificada
O raciocínio não monotônico da Aula 2 — a hipótese diagnóstica mudando à medida que chegam evidências — é formalizado de maneira rigorosa e consistente pela atualização de crença (Bloco E)
Aplicações em Saúde: Panorama
Diagnóstico diferencial: atualização simultânea da probabilidade de múltiplas doenças candidatas, à medida que chegam sintomas e exames
Predição de desfechos: classificadores bayesianos para prever readmissão, mortalidade ou complicações
Apoio a políticas de saúde pública: redes bayesianas para modelar fatores de risco populacionais (como o exemplo de trânsito do Bloco E, adaptável a epidemiologia)
Integração com registros eletrônicos: tolerância nativa a dados faltantes, comum em prontuários reais
Exercício Integrador
Exercício: um posto de saúde possui dados de 300 pacientes triados para suspeita de dengue, com variáveis: Idade, Fator de Risco, Resultado do Teste Rápido, e Confirmação Laboratorial (classe).
(Bloco A) Proponha um DAG plausível para essas quatro variáveis, com base em julgamento clínico.
(Bloco C) Se você fosse construir um classificador Naive Bayes para prever a Confirmação Laboratorial, qual seria a fatoração da conjunta? Compare com o DAG proposto no item 1.
(Bloco D) Se preferisse aprender a estrutura dos dados em vez de especificá-la, qual algoritmo você escolheria — baseado em restrição ou em pontuação? Justifique.
Lista de Verificação: O que Você Deve Saber Após Esta Aula
✅ Definir os dois componentes de uma rede bayesiana (DAG e CPTs) e fatorar uma conjunta a partir do grafo
✅ Reconhecer as três conexões fundamentais (serial, divergente, convergente) e aplicar d-separação
✅ Diferenciar dependência estatística de causalidade num DAG
✅ Explicar a diferença entre inferência frequentista e bayesiana, e o papel de distribuições conjugadas (Beta-Binomial, Dirichlet-Multinomial)
✅ Descrever a fatoração e a lógica do Naive Bayes, TAN, KDB e AODE
✅ Diferenciar métodos de aprendizado de estrutura baseados em restrição (PC) e em pontuação (hill-climbing/tabu, AIC/BIC/K2/BDeu)
✅ Explicar por que a equivalência de Markov limita a orientação de alguns arcos
Atividade
Para reflexão: pense numa base de dados real ou hipotética da sua área de atuação (enfermagem, fisioterapia, fonoaudiologia, medicina). Esboce:
Um DAG plausível com 4 a 6 variáveis
Qual classificador bayesiano (NB, TAN, KDB ou AODE) você usaria se o objetivo fosse prever um desfecho, e por quê
Elabore um pequeno texto (no máximo uma página), justificando cada escolha
Leitura Complementar e Preparação para a Prova
Handouts do Prof. Anderson Ara (UFPR):Redes Bayesianas e Aplicações, Handouts #01 a #04 — referência central desta aula
SCUTARI, M.; DENIS, J.-B.Bayesian Networks: With Examples in R, 2. ed. — aprofundamento prático em R