✅ 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
Essa extensão requer uma nova ferramenta numérica: a aproximação por grade
dbinom(), pbinom(), rbinom()🌍 Um globo terrestre é lançado ao ar.
✋ Ao capturá-lo, registramos a cor sob o dedo indicador:
🎯 Objetivo: estimar $p$ = proporção de oceano na Terra
Dados: McElreath, 2020
| Águas ($k$) | Total ($n$) | Proporção $k/n$ |
|---|---|---|
| 6 | 9 | $6/9 \approx 0{,}67$ |
| 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$ |
Com os dados fixos ($k = 6$, $n = 9$), a expressão acima torna-se uma função de $p$:
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.
Dados fixos, $p$ varia.
Mede a compatibilidade entre cada valor de $p$ e os dados.
Não precisa integrar 1.
Produto verossimilhança × distribuição a priori, normalizado.
Integra (ou soma) 1.
É uma distribuição de probabilidade sobre $p$.
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}$$# 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")
| 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 |
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:
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$.
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.
📊 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
dbinom(), pbinom(), rbinom()| 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 |
rbinom() usa o modelo como modelo generativo: gera dados a partir de $p$.
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")
likelihood <- dbinom(k, size = n, prob = p_grid)
posterior <- prior * likelihood
posterior <- posterior / sum(posterior)
Cada linha corresponde a um passo do algoritmo:
| 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 |