⏱️ 0:00
Docente: Fabio Cop (fcferreira@unifesp.br) | Curso: Bacharelado Interdisciplinar em Ciências do Mar - Bict Mar | UC: Probabilidade e Estatística - Aula 03

Modelos Generativos

Do parâmetro discreto ao parâmetro contínuo

Onde paramos na Aula 02

✅ O problema das bolinhas: caixa com 4 bolinhas, 5 hipóteses possíveis para $p$

✅ A verossimilhança binomial mede a compatibilidade de cada hipótese com os dados: $$\mathcal{L}(p;\, k, n) = \binom{n}{k}\, p^k\,(1-p)^{n-k}$$

✅ O Teorema de Bayes combina verossimilhança com distribuição a priori para gerar a distribuição a posteriori

✅ A atualização sequencial produz o mesmo resultado que a incorporação simultânea de todos os dados

A pergunta desta aula

Na Aula 02: $p \in \{0;\; 0{,}25;\; 0{,}50;\; 0{,}75;\; 1\}$ — cinco valores fixos impostos pelo problema das bolinhas
Aula 03: O que acontece quando $p$ pode ser qualquer número real em $[0, 1]$?

Essa extensão requer uma nova ferramenta numérica: a aproximação por grade

Roteiro da Aula

  1. De hipóteses discretas ao parâmetro contínuo
  2. O experimento da atirada de globo
  3. A verossimilhança binomial como curva contínua
  4. Aproximação por grade e atualização sequencial
  5. Efeito da distribuição a priori
  6. O modelo como gerador de dados: dbinom(), pbinom(), rbinom()

Do Discreto ao Contínuo

O experimento da atirada de globo

O experimento

🌍 Um globo terrestre é lançado ao ar.

✋ Ao capturá-lo, registramos a cor sob o dedo indicador:

  • W — água (oceano)
  • T — terra (continente)

🎯 Objetivo: estimar $p$ = proporção de oceano na Terra

$p \in [0,\, 1]$ é um parâmetro contínuo. Não está restrito a frações de um denominador fixo.

Dados: McElreath, 2020

Os dados observados

$$\text{W, T, W, W, W, T, W, T, W}$$
Águas ($k$) Total ($n$) Proporção $k/n$
6 9 $6/9 \approx 0{,}67$
A proporção observada $k/n \approx 0{,}67$ é uma estimativa direta. O valor exato de $p$ permanece desconhecido. A distribuição a posteriori quantifica a incerteza sobre $p$.

A transição do discreto ao contínuo

Número de bolinhas Valores possíveis de $p$ Pontos na grade
4 $\{0;\; 0{,}25;\; 0{,}50;\; 0{,}75;\; 1\}$ 5 — resultado da Aula 02
100 $0/100,\; 1/100,\; \ldots,\; 100/100$ 101
1000 $0/1000,\; 1/1000,\; \ldots,\; 1$ 1001
$\infty$ Qualquer real em $[0, 1]$ $\infty$
A discretização em 5 valores era uma propriedade do problema das bolinhas, não do modelo binomial. Com infinitas bolinhas, $p$ torna-se um parâmetro contínuo.

A Verossimilhança Binomial

De cinco valores a uma curva contínua

A fórmula da verossimilhança

$$P(k \mid n,\, p) = \binom{n}{k}\, p^k\, (1-p)^{n-k}$$

Com os dados fixos ($k = 6$, $n = 9$), a expressão acima torna-se uma função de $p$:

$$\mathcal{L}(p;\; k=6,\; n=9) = \binom{9}{6}\, p^6\, (1-p)^{3}$$
A verossimilhança mede a compatibilidade de cada valor de $p$ com os dados observados. O máximo ocorre em $p = k/n = 6/9 \approx 0{,}67$.

Grade grosseira e grade fina: a mesma função

Grade com 11 pontos

p_grade <- seq(0, 1, by = 0.1)
lik <- dbinom(6, 9, p_grade)
plot(p_grade, lik, type = "b")

Padrão geral visível. Os pontos intermediários ficam em branco.

Grade com 200 pontos

p_fino <- seq(0, 1, length.out = 200)
lik <- dbinom(6, 9, p_fino)
plot(p_fino, lik, type = "l")

Os pontos estão tão próximos que o gráfico parece uma curva contínua.

Os dois gráficos descrevem a mesma função. A diferença é apenas a resolução da grade. Aumentar o número de pontos não muda a forma da função.

Verossimilhança e distribuição a posteriori

Verossimilhança $\mathcal{L}(p)$

Dados fixos, $p$ varia.
Mede a compatibilidade entre cada valor de $p$ e os dados.
Não precisa integrar 1.

Distribuição a posteriori $P_{\text{post}}(p)$

Produto verossimilhança × distribuição a priori, normalizado.
Integra (ou soma) 1.
É uma distribuição de probabilidade sobre $p$.

Com distribuição a priori uniforme, as duas curvas têm a mesma forma e diferem apenas na altura. A normalização transforma plausibilidades relativas em probabilidades.

Aproximação por Grade

Calculando a distribuição a posteriori numericamente

O algoritmo em três passos

Passo 1. Calcular a verossimilhança em cada ponto $p_i$ da grade:

$$\mathcal{L}(p_i) = \text{dbinom}(k,\; n,\; p_i)$$

Passo 2. Multiplicar pela distribuição a priori em cada ponto:

$$w_i = \mathcal{L}(p_i) \times P_{\text{priori}}(p_i)$$

Passo 3. Normalizar para obter a distribuição a posteriori:

$$P_{\text{post}}(p_i) = \dfrac{w_i}{\displaystyle\sum_j w_j}$$

Implementação em R

# Grade com 100 pontos
p_grid <- seq(0, 1, length.out = 100)

# Dados
k <- 6; n <- 9

# Passo 1: verossimilhança
likelihood <- dbinom(k, size = n, prob = p_grid)

# Passo 2: distribuição a priori uniforme e produto
prior_unif <- dunif(p_grid, min = 0, max = 1)
peso       <- prior_unif * likelihood

# Passo 3: normalização
posterior_unif <- peso / sum(peso)

# Visualização
plot(p_grid, posterior_unif, type = "l", lwd = 2,
     xlab = "p", ylab = "Probabilidade a posteriori")

Efeito da resolução da grade

Pontos na grade Aparência Conexão com a Aula 02
5 Cinco barras isoladas Resultado idêntico ao da Aula 02
20 Curva ainda granular Forma geral visível
100 Curva suave Boa aproximação da solução exata
1000 Praticamente contínua Indistinguível da solução analítica
Com 5 pontos, a aproximação por grade reproduz exatamente o resultado da Aula 02. O caso discreto é um caso especial da aproximação por grade com resolução mínima.

Atualização sequencial com $p$ contínuo

Sequência: W T W W W T W T W

A distribuição a posteriori após cada observação serve como distribuição a priori da próxima atualização:

  • Após W (obs. 1): curva desloca-se para valores altos de $p$
  • Após T (obs. 2): $p = 1$ torna-se implausível
  • Após 9 observações: curva concentra-se em $p \approx 0{,}67$
A distribuição a posteriori obtida por atualização sequencial é matematicamente idêntica à obtida incorporando todas as observações de uma só vez.

Efeito da Distribuição a Priori

Uniforme versus informativa

Comparando distribuições a posteriori

Distribuição a priori uniforme

prior_unif <- rep(1, 100)
post_unif  <- prior_unif * likelihood
post_unif  <- post_unif / sum(post_unif)

Toda a informação vem dos dados. Pico em $p \approx 0{,}67$.

Distribuição a priori informativa

prior_info <- ifelse(p_grid < 0.5, 0, 1)
post_info  <- prior_info * likelihood
post_info  <- post_info / sum(post_info)

Valores abaixo de 0,5 são eliminados. Pico levemente à direita.

A distribuição a posteriori como compromisso

A distribuição a posteriori é sempre um compromisso entre a distribuição a priori e a verossimilhança.

📊 Com mais dados: a verossimilhança domina e a influência da distribuição a priori diminui

📊 Com poucos dados: a distribuição a priori pode exercer influência considerável

📊 Com distribuição a priori muito restritiva: a distribuição a posteriori fica confinada ao intervalo definido pela distribuição a priori

Explicitar e justificar a distribuição a priori é parte fundamental da análise bayesiana.

O Modelo como Gerador de Dados

dbinom(), pbinom(), rbinom()

Três modos de uso do modelo binomial

Função Pergunta respondida Uso principal
dbinom(k, n, p) Qual a probabilidade de exatamente $k$ águas em $n$ lançamentos dado $p$? Calcular verossimilhança
pbinom(k, n, p) Qual a probabilidade acumulada de até $k$ águas em $n$ lançamentos? Calcular probabilidades de eventos
rbinom(m, n, p) Gere $m$ realizações de $n$ lançamentos dado $p$ Simular dados — modelo generativo
As três funções descrevem o mesmo modelo binomial em três direções diferentes. rbinom() usa o modelo como modelo generativo: gera dados a partir de $p$.

Checagem preditiva a priori

Em vez de fixar $p$ em um único valor, amostramos $p$ da distribuição a priori e simulamos um experimento para cada $p$ amostrado:

# Amostrar 1000 valores de p da distribuição a priori uniforme
p_amostrado <- runif(1000, min = 0, max = 1)

# Para cada p amostrado, simular 9 lançamentos
k_pred <- rbinom(1000, size = 9, prob = p_amostrado)

# Histograma das contagens simuladas
hist(k_pred, breaks = -0.5 + (0:10),
     xlab = "Número de águas simuladas",
     main = "Checagem preditiva a priori")
"O modelo, antes de qualquer dado, gera observações fisicamente plausíveis?"

A aproximação por grade em três linhas

likelihood <- dbinom(k, size = n, prob = p_grid)
posterior  <- prior * likelihood
posterior  <- posterior / sum(posterior)

Cada linha corresponde a um passo do algoritmo:

  • Linha 1: verossimilhança em cada ponto da grade
  • Linha 2: produto verossimilhança × distribuição a priori
  • Linha 3: normalização para obter a distribuição a posteriori
Exatamente isso que vimos na teoria vamos fazer rodar no laboratório.

Recapitulação

Conceitos centrais da Aula 03

Conceitos centrais desta aula

Conceito Descrição Conexão com a Aula 02
Parâmetro contínuo $p \in [0, 1]$ pode assumir infinitos valores Generaliza os cinco valores discretos
Verossimilhança como curva $\mathcal{L}(p)$ é uma função contínua com máximo em $k/n$ Eram cinco pontos, agora é uma curva
Aproximação por grade Três passos: verossimilhança, produto, normalização Com 5 pontos, reproduz a Aula 02
Efeito da priori Distribuição a posteriori é compromisso entre distribuição a priori e verossimilhança Mesma lógica, agora com distribuição a priori contínua
Modelo generativo rbinom() gera dados a partir de $p$ Nova perspectiva: modelo como gerador
Checagem preditiva a priori Simular dados antes de observar os dados reais Conceito novo introduzido nesta aula

Dúvidas?