Distribuição binomial
Os códigos desta página rodam no navegador, mas não sozinhos: clique em Run Code em cada bloco, de cima para baixo.
A ideia
Na Aula 10 passamos de um único ensaio (Bernoulli) para vários. Exemplos dos slides: 50 renovações em 200 assinaturas; 2 de 5 clientes aceitarem uma proposta; 2 de 10 carros autônomos errarem ao estacionar. Em todos, contamos quantos sucessos houve em um número fixo de tentativas.
Antes de usar a binomial, confira as quatro condições do experimento binomial:
- são \(n\) repetições idênticas (o número de tentativas é fixo);
- cada repetição tem só dois resultados: sucesso ou fracasso;
- a probabilidade de sucesso \(p\) é a mesma em todas as repetições;
- as repetições são independentes.
Se valem as quatro, a probabilidade de exatamente \(y\) sucessos é
\[ P(Y = y) = \binom{n}{y}\, p^{y}\, (1-p)^{n-y}, \qquad y = 0, 1, \dots, n, \]
e a média e a variância são \(E(Y) = np\) e \(Var(Y) = np(1-p)\).
Exemplo resolvido: de onde vem a fórmula
Um aluno compra um pacote com 3 resistores. Cada um falha com probabilidade 0,2, independente dos outros. Seja \(Y\) o número de resistores com falha. As quatro condições valem: 3 resistores, falha ou não, \(p = 0{,}2\) para todos, independência.
Qual é \(P(Y = 2)\)? Na árvore há 3 sequências com exatamente duas falhas: (F, F, ok), (F, ok, F) e (ok, F, F). Pela independência, cada uma tem probabilidade \(0{,}2 \times 0{,}2 \times 0{,}8 = 0{,}032\). Somando as três:
\[ P(Y = 2) = 3 \times 0{,}2^2 \times 0{,}8 = 0{,}096. \]
O “3” é \(\binom{3}{2}\), o número de jeitos de escolher quais 2 dos 3 resistores falham. \(0{,}2^2\) vem das duas falhas e \(0{,}8^1\) do resistor bom. É exatamente a fórmula geral. A distribuição completa é:
| \(y\) | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| \(P(Y = y)\) | 0,512 | 0,384 | 0,096 | 0,008 |
No código
Quem calcula tudo isso é scipy.stats.binom. A ordem dos argumentos é sempre (valor, n, p):
Com 3 resistores ainda dá para fazer a árvore. Com um pacote de 100 resistores, não. As três perguntas do exemplo da Aula 10:
pmf(probability mass function) dá a probabilidade de um valor: \(P(Y = 20) = 0{,}0993\).cdf(cumulative distribution function) dá a probabilidade acumulada até o valor, incluindo ele: \(P(Y \le 20) = 0{,}5595\).- Para “pelo menos 20”, o complemento é “no máximo 19”, por isso
1 - cdf(19): \(0{,}5398\). Todas as traduções estão em usar a cdf.
A média e a variância também vêm prontas e batem com \(np\) e \(np(1-p)\):
Em média, 20 dos 100 resistores falham, com desvio padrão de 4. O gráfico da distribuição mostra que os valores perto de 20 concentram quase toda a probabilidade:
Armadilhas comuns
- Trocar
pmfecdf. “Exatamente” épmf; “no máximo” écdf. Na dúvida, escreva a probabilidade com a notação \(P(Y \dots)\) antes de digitar o código. - Errar o complemento. \(P(Y \ge 20) = 1 - P(Y \le 19)\), e não \(1 - P(Y \le 20)\). Com variável discreta, \(P(Y \le 20)\) inclui o 20.
- Trocar a ordem dos argumentos.
stats.binom.pmf(y, n, p): primeiro o valor, depois \(n\), depois \(p\). - Usar a probabilidade do evento errado. Se você conta falhas, \(p\) é a probabilidade de falhar. Se o enunciado dá a chance de funcionar (0,8), use \(1 - 0{,}8\) ou conte o outro evento.
- Aplicar a binomial sem conferir as condições. Sortear sem reposição de um grupo pequeno muda \(p\) a cada sorteio; itens de natureza diferente (os 14 itens do Detran) podem ter probabilidades diferentes. Nesses casos a binomial é, no máximo, uma aproximação.
- Receber a média em vez de \(p\). Se o enunciado diz que “em média 5,5 de 40 clientes ficam satisfeitos”, use \(E(Y) = np\) para achar \(p = 5{,}5 / 40\).
Exercícios aqui na página
Complete os ______ e clique em Run Code: a correção aparece logo abaixo. Use Show Hint para uma dica e Show Solution para ver uma resolução. O Python roda no seu navegador; na primeira vez ele leva alguns segundos para carregar.
Exercício 1
Um lote tem 12 chips, e cada um sai defeituoso com probabilidade 0,1, independentemente dos outros. Seja \(Y\) o número de chips defeituosos. Calcule \(P(Y = 2)\).
A ordem dos argumentos é (valor, n, p).
p_y_2 = stats.binom.pmf(2, 12, 0.1)
p_y_2Exercício 2
Agora com dados: sorteamos 8 passageiros do Titanic com reposição e contamos quantas são mulheres. Estime \(p\) pela proporção de mulheres na base e calcule \(P(Y = 3)\) para \(Y \sim Bin(8;\ p)\).
O \(p\) vem dos dados; o \(n\) vem do experimento.
p = (titanic['Sex'] == 'female').mean()
p_y_3 = stats.binom.pmf(3, 8, p)
p_y_3Exercício 3
Se a máquina que produz os chips esquenta ao longo do dia e a chance de defeito aumenta, qual condição da binomial deixa de valer? Responda 'p constante' ou 'dois resultados'.
Releia as quatro condições do experimento binomial.
resposta = 'p constante'
respostaComandos e documentação oficial
stats.binom.pmf(y, n, p)formuláriostats.binom.cdf(y, n, p)formuláriostats.binom.mean(n, p)formuláriostats.binom.var(n, p)formuláriostats.binom.std(n, p)formulário
formulário o comando está no formulário que você pode consultar na prova.
Pontes com o outro lado do mapa
Este tópico aparece nestas paradas da revisão guiada, em que cada ponte vira um exercício resolvido pelos dois caminhos:
- Parada 9: Da Bernoulli à binomial: dados × modelo exercícios ao vivo · ver no mapa · no Colab
Pratique
As listas novas de revisão abrem no Google Colab (use Arquivo → Salvar uma cópia no Drive). As listas das aulas estão no Blackboard, na pasta de cada aula.
- Revisão B · Pontes: cada conteúdo por dois caminhos (com correção automática) nova (Parte 9)Abrir no ColabBaixar .ipynb
- Aula 10 · Exemplo: binomial com resistores (itens a a f)Blackboard · slides e exemplos da Aula 10
- Aula 10 · Exercícios de modelos discretos (binomial) APS6 (Exercícios 1 a 4)Blackboard · conteúdo do curso
- Aula 11 · Exercícios: corretor e pronto-socorro (binomial) (Exercícios 1 e 2)Blackboard · conteúdo do curso