Raciocínio sob Incerteza, Probabilidade e Teorema de Bayes

por Frank de Alcantara em 16/08/2026

Raciocínio sob Incerteza, Probabilidade e Teorema de Bayes

No artigo anterior, fatores de certeza permitiram anexar números às regras de um sistema especialista. Aqueles números eram úteis, mas não obedeciam necessariamente aos axiomas da probabilidade. Agora trocaremos o remendo histórico por uma teoria capaz de responder, sem contradição, quanto uma evidência deve alterar uma crença.

Um agente raramente observa o estado verdadeiro do mundo. Sensores falham, mensagens chegam incompletas e causas diferentes produzem sintomas iguais. A lógica clássica exige escolher entre verdadeiro e falso; a probabilidade permite representar o que o agente sabe antes que a incerteza desapareça. Ela não afirma que o mundo esteja parcialmente verdadeiro. Afirma que nosso conhecimento sobre qual mundo ocorreu é incompleto.

1. Incerteza e grau de crença

Vamos chamar de $\Omega$ o espaço amostral, conjunto de todos os resultados mutuamente exclusivos do experimento. Um evento $A\subseteq\Omega$ reúne os resultados nos quais uma proposição é verdadeira. Uma função de probabilidade $P$ atribui números aos eventos e obedece a três axiomas:

\[P(A)\ge 0,\qquad P(\Omega)=1,\]

e, para eventos disjuntos $A$ e $B$,

\[P(A\cup B)=P(A)+P(B).\]

Desses axiomas deduzimos $P(\varnothing)=0$ e a regra do complemento,

\[P(\neg A)=1-P(A).\]

O número pode representar frequência de longo prazo, grau de crença racional ou uma distribuição aprendida. Para a inferência deste artigo, importa que as mesmas regras algébricas sejam respeitadas. Se um agente atribui $P(A)=0{,}7$ e $P(\neg A)=0{,}6$, o problema não é filosófico; a soma $1{,}3$ viola a normalização.

2. Probabilidade conjunta, marginal e condicional

A probabilidade conjunta $P(A,B)$ mede a chance de $A$ e $B$ ocorrerem. Considere uma população hipotética de $10\,000$ pessoas:

  teste positivo teste negativo total
doente 99 1 100
saudável 495 9 405 9 900
total 594 9 406 10 000

A célula superior esquerda representa

\[P(D,+)=\frac{99}{10\,000}=0{,}0099.\]

Uma marginal elimina uma variável somando seus valores. A probabilidade de resultado positivo é

\[P(+)=P(D,+)+P(\neg D,+) =\frac{99+495}{10\,000}=0{,}0594.\]

A probabilidade condicional restringe o universo aos casos em que a condição ocorreu:

\[P(A\mid B)=\frac{P(A,B)}{P(B)},\qquad P(B)>0.\]

Logo,

\[P(D\mid +)=\frac{99}{594}=\frac16\approx 0{,}1667.\]

Da definição obtemos a regra do produto,

\[P(A,B)=P(A\mid B)P(B),\]

e, repetindo-a, a regra da cadeia:

\[P(A,B,C)=P(A)P(B\mid A)P(C\mid A,B).\]

Exercícios resolvidos

1. Calcule todas as condicionais da tabela.

Solução:

Temos $P(+\mid D)=99/100=0{,}99$, $P(-\mid D)=0{,}01$, $P(+\mid\neg D)=495/9\,900=0{,}05$ e $P(-\mid\neg D)=0{,}95$.

2. Marginalize o estado de saúde.

Solução:

$P(+)=0{,}0099+0{,}0495=0{,}0594$ e $P(-)=0{,}9406$.

3. Use a cadeia com $P(A)=0{,}4$, $P(B\mid A)=0{,}5$ e $P(C\mid A,B)=0{,}2$.

Solução:

O produto dá $P(A,B,C)=0{,}04$.

4. Verifique se doença e resultado positivo são independentes.

Solução:

Não são: $P(D,+)=0{,}0099$, enquanto $P(D)P(+)=0{,}01\cdot0{,}0594=0{,}000594$.

5. Calcule $P(D\cup +)$.

Solução:

Pela inclusão e exclusão, $0{,}01+0{,}0594-0{,}0099=0{,}0595$.

3. Independência e independência condicional

Dois eventos são independentes quando conhecer um não altera a probabilidade do outro:

\[P(A\mid B)=P(A).\]

Multiplicando por $P(B)$, obtemos a forma equivalente

\[P(A,B)=P(A)P(B).\]

Independência não significa impossibilidade de ocorrerem juntos, nem ausência de relação causal em qualquer modelo concebível. Significa uma igualdade precisa na distribuição considerada.

A independência condicional acrescenta uma informação $C$:

\[P(A,B\mid C)=P(A\mid C)P(B\mid C).\]

Dois testes realizados com o mesmo método podem ser aproximadamente independentes dado o estado real da doença, mas não são independentes sem essa condição. Se o primeiro teste veio positivo, passamos a considerar mais provável que a pessoa esteja doente; isso eleva a chance do segundo positivo. A causa comum cria associação marginal.

Essa propriedade produz uma economia combinatória. Uma distribuição conjunta de $n$ variáveis binárias exige $2^n-1$ parâmetros livres. Se as dependências condicionais permitem fatorá-la em tabelas locais pequenas, o crescimento pode cair de exponencial para linear. No próximo artigo, redes bayesianas desenharão exatamente essa fatoração.

4. O teorema de Bayes

Podemos escrever a mesma conjunta em duas direções:

\[P(H,E)=P(E\mid H)P(H)=P(H\mid E)P(E).\]

Isolando o termo que queremos:

\[P(H\mid E)=\frac{P(E\mid H)P(H)}{P(E)}.\]

$P(H)$ é a probabilidade a priori, anterior à evidência. $P(E\mid H)$ é a verossimilhança, o quanto a hipótese prevê a evidência. $P(H\mid E)$ é a probabilidade a posteriori. O denominador normaliza:

\[P(E)=\sum_h P(E\mid h)P(h),\]

quando as hipóteses $h$ são mutuamente exclusivas e cobrem todos os casos.

Para duas hipóteses, a forma de chances deixa o mecanismo visível:

\[\frac{P(H\mid E)}{P(\neg H\mid E)} = \frac{P(E\mid H)}{P(E\mid\neg H)} \frac{P(H)}{P(\neg H)}.\]

O primeiro fator é a razão de verossimilhanças. Evidência nova multiplica as chances anteriores; não apaga a taxa-base.

Exercícios resolvidos

1. Derive Bayes.

Solução:

Igualamos $P(E\mid H)P(H)$ a $P(H\mid E)P(E)$ e dividimos ambos os lados por $P(E)$.

2. Identifique os termos em um diagnóstico.

Solução:

Prevalência é a prior; sensibilidade é $P(+\mid D)$; positividade total é a evidência; $P(D\mid+)$ é a posterior.

3. Considere três máquinas com produções $0{,}5$, $0{,}3$, $0{,}2$ e taxas de defeito $0{,}01$, $0{,}02$, $0{,}04$. Qual produziu uma peça defeituosa?

Solução:

As massas são $0{,}005$, $0{,}006$ e $0{,}008$; normalizando pela soma $0{,}019$, obtemos $26{,}32\%$, $31{,}58\%$ e $42{,}11\%$.

4. Converta o teste da tabela para chances.

Solução:

As chances anteriores são $0{,}01/0{,}99$ e a razão positiva é $0{,}99/0{,}05=19{,}8$. O produto vale $0{,}2$, correspondente a $0{,}2/(1+0{,}2)=1/6$.

5. Duas urnas são escolhidas com a mesma chance. A primeira tem três bolas vermelhas e uma azul; a segunda, uma vermelha e três azuis. Qual a chance da primeira após retirar uma vermelha?

Solução:

A evidência vale $0{,}75\cdot0{,}5+0{,}25\cdot0{,}5=0{,}5$; Bayes dá $0{,}75$.

5. O exemplo do teste médico

Vamos retomar o exemplo hipotético: prevalência de $1\%$, sensibilidade de $99\%$ e especificidade de $95\%$. Especificidade é $P(-\mid\neg D)$, portanto a taxa de falso positivo é $5\%$. Bayes produz

\[P(D\mid+) = \frac{0{,}99\cdot0{,}01} {0{,}99\cdot0{,}01+0{,}05\cdot0{,}99} =0{,}1667.\]

Não há paradoxo. Em $10\,000$ pessoas esperamos $99$ verdadeiros positivos e $495$ falsos positivos. A sensibilidade responde qual é a chance de um resultado positivo se há doença?. A pergunta clínica depois de um resultado é a inversa: qual é a chance de doença se houve um resultado positivo?. Confundir as duas condicionais é trocar numerador e universo.

Exercícios resolvidos

1. Reproduza a posterior.

Solução:

$0{,}0099/(0{,}0099+0{,}0495)=0{,}1667$.

2. Use prevalências de $0{,}1\%$ e $10\%$.

Solução:

As probabilidades posteriores são, respectivamente, $1{,}943\%$ e $68{,}750\%$.

3. Eleve a especificidade de $95\%$ para $99\%$, mantendo prevalência e sensibilidade.

Solução:

A posterior sobe para $0{,}0099/(0{,}0099+0{,}0099)=50\%$.

4. Conte resultados em $10\,000$ pessoas.

Solução:

Esperamos $99$ verdadeiros positivos, $1$ falso negativo, $495$ falsos positivos e $9\,405$ verdadeiros negativos.

5. Explique a taxa-base.

Solução:

Mesmo uma pequena fração de falsos positivos aplicada aos $9\,900$ casos saudáveis supera os verdadeiros positivos produzidos entre apenas $100$ casos doentes.

6. Atualização sequencial

Depois de observar $E_1$, a posterior torna-se a nova prior. Sob independência condicional das evidências dada a hipótese:

\[P(H\mid E_1,E_2) \propto P(E_2\mid H)P(E_1\mid H)P(H).\]

Dois resultados positivos no teste hipotético levam a

\[P(D\mid +,+)\approx 0{,}7984.\]

Um positivo seguido de negativo leva a aproximadamente $0{,}0021$. A ordem não altera o valor quando usamos as mesmas verossimilhanças, pois a multiplicação comuta. Na prática, testes podem compartilhar erros de coleta, equipamento ou população. Tratar evidências correlacionadas como independentes conta a mesma informação duas vezes e produz confiança excessiva.

Exercícios resolvidos

1. Calcule dois positivos.

Solução:

A primeira atualização produz $1/6$; usando-a como nova prior, a segunda produz $79{,}84\%$.

2. Calcule positivo e negativo.

Solução:

A razão do negativo é $0{,}01/0{,}95$; combinada com a razão positiva e as chances iniciais, resulta em $0{,}2101\%$.

3. Troque a ordem.

Solução:

O produto das razões $19{,}8\cdot(0{,}01/0{,}95)$ não muda, logo a posterior é igual.

4. Combine três positivos.

Solução:

As chances finais são $(0{,}01/0{,}99)\cdot19{,}8^3\approx78{,}41$; a probabilidade é $98{,}74\%$.

5. Explique a convergência.

Solução:

Repetir uma evidência com razão maior que $1$ multiplica as chances por essa razão; sob o modelo de independência, elas tendem ao infinito e a probabilidade tende a $1$.

7. Atualização bayesiana em C++23

O programa abaixo mantém a matemática explícita. Teste guarda sensibilidade e especificidade; atualizar escolhe a verossimilhança de um resultado positivo ou negativo; std::span permite receber qualquer sequência contígua de evidências sem copiar nem possuir os dados.

#include <array>
#include <cassert>
#include <iomanip>
#include <iostream>
#include <span>

struct Teste {
    double sensibilidade;
    double especificidade;
};

[[nodiscard]] constexpr double atualizar(
    const double priori,
    const Teste teste,
    const bool positivo) noexcept {
    const double p_evidencia_se_doente =
        positivo ? teste.sensibilidade : 1.0 - teste.sensibilidade;
    const double p_evidencia_se_saudavel =
        positivo ? 1.0 - teste.especificidade : teste.especificidade;
    const double numerador = p_evidencia_se_doente * priori;
    const double denominador =
        numerador + p_evidencia_se_saudavel * (1.0 - priori);
    return numerador / denominador;
}

[[nodiscard]] double atualizar_sequencia(
    double priori,
    const Teste teste,
    const std::span<const bool> evidencias) {
    for (const bool evidencia : evidencias) {
        priori = atualizar(priori, teste, evidencia);
    }
    return priori;
}

static_assert(atualizar(0.01, Teste{0.99, 0.95}, true) > 0.1666);
static_assert(atualizar(0.01, Teste{0.99, 0.95}, true) < 0.1667);

int main() {
    constexpr Teste teste{0.99, 0.95};
    constexpr std::array dois_positivos{true, true};
    constexpr std::array positivo_negativo{true, false};

    const double um_positivo = atualizar(0.01, teste, true);
    const double dois = atualizar_sequencia(0.01, teste, dois_positivos);
    const double misto = atualizar_sequencia(0.01, teste, positivo_negativo);

    assert(um_positivo > 0.16 && um_positivo < 0.17);
    assert(dois > 0.79 && dois < 0.81);
    assert(misto > 0.002 && misto < 0.003);

    std::cout << std::fixed << std::setprecision(4)
              << "P(doente | +)   = " << um_positivo << '\n'
              << "P(doente | +,+) = " << dois << '\n'
              << "P(doente | +,-) = " << misto << '\n';
}

O código foi compilado com MSVC 19.51, /std:c++latest /permissive- /W4 /EHsc /utf-8 /O2. As três saídas foram 0.1667, 0.7984 e 0.0021.

O laboratório permite alterar prevalência, sensibilidade e especificidade. Observe primeiro um resultado positivo; depois acrescente outro resultado e compare a contagem esperada de verdadeiros e falsos positivos.

Conclusão

Probabilidade condicional não é uma troca de etiquetas. $P(E\mid H)$ e $P(H\mid E)$ respondem perguntas diferentes, e Bayes é a ponte entre elas. A prior impede que uma evidência impressionante apague a frequência básica; a verossimilhança mede quanto a hipótese previa o observado; a normalização força hipóteses concorrentes a compartilhar uma unidade de crença.

Ainda há um problema: uma tabela conjunta cresce exponencialmente. No próximo artigo, transformaremos independências condicionais em um grafo e construiremos redes bayesianas e o classificador Naive Bayes.

Acrônimos e Abreviações neste artigo

A seguir está a lista de todos os acrônimos e abreviações identificados no texto, organizados em ordem alfabética com o termo original em inglês e a tradução para o português:

Acrônimo / Abreviação Definição em Inglês Tradução em Português
BLAS Basic Linear Algebra Subprograms Subprogramas Básicos de Álgebra Linear
CPU / CPUs Central Processing Unit Unidade Central de Processamento
FLOPs Floating Point Operations Operações de Ponto Flutuante
FP32 32-bit Floating Point Ponto Flutuante de 32 bits
GEMM General Matrix Multiply Multiplicação Geral de Matrizes
GPU Graphics Processing Unit Unidade de Processamento Gráfico
IA Artificial Intelligence Inteligência Artificial
I-JEPA Image Joint-Embedding Predictive Architecture Arquitetura Preditiva de Incorporação Conjunta de Imagem
JEPA Joint-Embedding Predictive Architecture Arquitetura Preditiva de Incorporação Conjunta
KiB Kibibyte Kibibyte
MAE Masked Autoencoder Autocodificador Mascarado
MSE Mean Squared Error Erro Quadrático Médio
MSVC Microsoft Visual C++ Microsoft Visual C++
PCA Principal Component Analysis Análise de Componentes Principais
SIMD Single Instruction, Multiple Data Instrução Única, Múltiplos Dados
SimCLR Simple Framework for Contrastive Learning of Visual Representations Estrutura Simples para Aprendizado Contrastivo de Representações Visuais

Referências

GIGERENZER, G.; EDWARDS, A. Simple tools for understanding risks: from innumeracy to insight. BMJ, London, v. 327, p. 741–744, 2003. DOI: https://doi.org/10.1136/bmj.327.7417.741. Acesso em: 24 jul. 2026.

LUGER, G. F. Artificial Intelligence: structures and strategies for complex problem solving. 6. ed. Albuquerque: University of New Mexico, 2009. Disponível em: https://www.cs.unm.edu/~luger/ai-final/. Acesso em: 24 jul. 2026.

MICROSOFT. Microsoft C/C++ language conformance by Visual Studio version. Redmond, 2026. Disponível em: https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170. Acesso em: 24 jul. 2026.

RUSSELL, S.; NORVIG, P. Artificial Intelligence: a modern approach. 4. ed. Hoboken: Pearson, 2020. Disponível em: https://aima.cs.berkeley.edu/. Acesso em: 24 jul. 2026.

UNIVERSITY OF CALIFORNIA, BERKELEY. Introduction to Artificial Intelligence: probability rundown. Berkeley, 2024. Disponível em: https://inst.eecs.berkeley.edu/~cs188/textbook/bayes-nets/probability.html. Acesso em: 24 jul. 2026.

(Updated: )