.. _sec_prob:
Probabilidade
=============
De uma forma ou de outra, o aprendizado de máquina envolve fazer
previsões. Podemos querer prever a *probabilidade* de um paciente sofrer
um ataque cardíaco no próximo ano, considerando seu histórico clínico.
Na detecção de anomalias, podemos avaliar quão *provável* seria um
conjunto de leituras do motor a jato de um avião, se ele estivesse
operando normalmente. Na aprendizagem por reforço, queremos que um
agente aja de forma inteligente em um ambiente. Isso significa que
precisamos pensar sobre a probabilidade de obter uma alta recompensa em
cada uma das ações disponíveis. E quando construímos sistemas de
recomendação, também precisamos pensar sobre probabilidade. Por exemplo,
diga *hipoteticamente* que trabalhamos para uma grande livraria online.
Podemos querer estimar a probabilidade de um determinado usuário comprar
um determinado livro. Para isso, precisamos usar a linguagem da
probabilidade. Cursos inteiros, graduações, teses, carreiras e até
departamentos são dedicados à probabilidade. Então, naturalmente, nosso
objetivo nesta seção não é ensinar todo o assunto. Em vez disso,
esperamos fazer você decolar, ensinar apenas o suficiente para que você
possa começar a construir seus primeiros modelos de *Deep Learning* e
dar-lhe um sabor suficiente para o assunto que você pode começar a
explorá-lo por conta própria, se desejar.
Já invocamos as probabilidades nas seções anteriores, sem articular o
que são precisamente ou dar um exemplo concreto. Vamos ser mais sérios
agora, considerando o primeiro caso: distinguir cães e gatos com base em
fotografias. Isso pode parecer simples, mas na verdade é um desafio
formidável. Para começar, a dificuldade do problema pode depender da
resolução da imagem.
.. _fig_cat_dog:
.. figure:: ../img/cat-dog-pixels.png
:width: 300px
Imagens de diferentes resoluções (:math:`10 \times 10`,
:math:`20 \times 20`, :math:`40 \times 40`, :math:`80 \times 80`, e
:math:`160 \times 160` pixels).
Conforme mostrado em :numref:`fig_cat_dog`, embora seja fácil para os
humanos reconhecerem cães e gatos na resolução de :math:`160 \times 160`
pixels, torna-se um desafio em :math:`40 \times 40` pixels e quase
impossível em :math:`10 \times 10` pixels. Em outras palavras, nossa
capacidade de distinguir cães e gatos a uma grande distância (e,
portanto, em baixa resolução) pode se aproximar de uma suposição
desinformada. A probabilidade nos dá um maneira formal de raciocinar
sobre nosso nível de certeza. Se tivermos certeza absoluta que a imagem
representa um gato, dizemos que a *probabilidade* de que o rótulo
:math:`y` correspondente seja “cat”, denotado :math:`P(y=`
“cat”\ :math:`)` é igual a :math:`1`. Se não tivéssemos nenhuma
evidência para sugerir que :math:`y =` “cat” ou que :math:`y =` “dog”,
então poderíamos dizer que as duas possibilidades eram igualmente
*provavelmente* expressando isso como :math:`P(y=`
“cat”\ :math:`) = P(y=` “dog”\ :math:`) = 0.5`. Se estivéssemos
razoavelmente confiantes, mas não temos certeza de que a imagem
representava um gato, podemos atribuir um probabilidade $0,5
.. raw:: html
.. code:: python
%matplotlib inline
import random
from mxnet import np, npx
from d2l import mxnet as d2l
npx.set_np()
.. raw:: html
.. raw:: html
.. code:: python
%matplotlib inline
import torch
from torch.distributions import multinomial
from d2l import torch as d2l
.. raw:: html
.. raw:: html
.. code:: python
%matplotlib inline
import numpy as np
import tensorflow as tf
import tensorflow_probability as tfp
from d2l import tensorflow as d2l
.. raw:: html
.. raw:: html
Em seguida, queremos ser capazes de lançar o dado. Nas estatísticas,
chamamos este processo de colher exemplos de *amostragem* de
distribuições de probabilidade . A distribuição que atribui
probabilidades a uma série de escolhas discretas é chamado de
*distribuição multinomial*. Daremos uma definição mais formal de
*distribuição* mais tarde, mas em um alto nível, pense nisso como apenas
uma atribuição de probabilidades para eventos.
Para obter uma única amostra, simplesmente passamos um vetor de
probabilidades. A saída é outro vetor do mesmo comprimento: seu valor no
índice :math:`i` é o número de vezes que o resultado da amostragem
corresponde a :math:`i`.
.. raw:: html
.. raw:: html
.. code:: python
fair_probs = [1.0 / 6] * 6
np.random.multinomial(1, fair_probs)
.. parsed-literal::
:class: output
array([0, 0, 0, 1, 0, 0], dtype=int64)
.. raw:: html
.. raw:: html
.. code:: python
fair_probs = torch.ones([6]) / 6
multinomial.Multinomial(1, fair_probs).sample()
.. parsed-literal::
:class: output
tensor([0., 0., 0., 0., 1., 0.])
.. raw:: html
.. raw:: html
.. code:: python
fair_probs = tf.ones(6) / 6
tfp.distributions.Multinomial(1, fair_probs).sample()
.. parsed-literal::
:class: output
.. raw:: html
.. raw:: html
Se você executar o amostrador várias vezes, descobrirá que sai
aleatoriamente valores de cada vez. Tal como acontece com a estimativa
da justiça de um dado, muitas vezes queremos gerar muitas amostras da
mesma distribuição. Seria insuportavelmente lento para fazer isso com um
loop Python ``for``, então a função que estamos usando suporta gerar
várias amostras de uma vez, retornando uma matriz de amostras
independentes em qualquer forma podemos desejar.
.. raw:: html
.. raw:: html
.. code:: python
np.random.multinomial(10, fair_probs)
.. parsed-literal::
:class: output
array([1, 1, 5, 1, 1, 1], dtype=int64)
.. raw:: html
.. raw:: html
.. code:: python
multinomial.Multinomial(10, fair_probs).sample()
.. parsed-literal::
:class: output
tensor([0., 4., 1., 1., 2., 2.])
.. raw:: html
.. raw:: html
.. code:: python
tfp.distributions.Multinomial(10, fair_probs).sample()
.. parsed-literal::
:class: output
.. raw:: html
.. raw:: html
Agora que sabemos como obter amostras de um dado, podemos simular 1000
execuções. Podemos então passar e contar, após cada um dos 1000
lançamentos, quantas vezes cada número foi rolado. Especificamente,
calculamos a frequência relativa como a estimativa da probabilidade
verdadeira.
.. raw:: html
.. raw:: html
.. code:: python
counts = np.random.multinomial(1000, fair_probs).astype(np.float32)
counts / 1000
.. parsed-literal::
:class: output
array([0.162, 0.149, 0.178, 0.17 , 0.166, 0.175])
.. raw:: html
.. raw:: html
.. code:: python
# Store the results as 32-bit floats for division
counts = multinomial.Multinomial(1000, fair_probs).sample()
counts / 1000 # Relative frequency as the estimate
.. parsed-literal::
:class: output
tensor([0.1830, 0.1600, 0.1660, 0.1380, 0.1570, 0.1960])
.. raw:: html
.. raw:: html
.. code:: python
counts = tfp.distributions.Multinomial(1000, fair_probs).sample()
counts / 1000
.. parsed-literal::
:class: output
.. raw:: html
.. raw:: html
Como geramos os dados de um dado justo, sabemos que cada resultado tem
probabilidade real :math:`\frac{1}{6}`, cerca de :math:`0,167`,
portanto, as estimativas de saída acima parecem boas.
Também podemos visualizar como essas probabilidades convergem ao longo
do tempo para a probabilidade verdadeira. Vamos conduzir 500 grupos de
experimentos onde cada grupo extrai 10 amostras.
.. raw:: html
.. raw:: html
.. code:: python
counts = np.random.multinomial(10, fair_probs, size=500)
cum_counts = counts.astype(np.float32).cumsum(axis=0)
estimates = cum_counts / cum_counts.sum(axis=1, keepdims=True)
d2l.set_figsize((6, 4.5))
for i in range(6):
d2l.plt.plot(estimates[:, i].asnumpy(),
label=("P(die=" + str(i + 1) + ")"))
d2l.plt.axhline(y=0.167, color='black', linestyle='dashed')
d2l.plt.gca().set_xlabel('Groups of experiments')
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend();
.. figure:: output_probability_245b7d_51_0.svg
.. raw:: html
.. raw:: html
.. code:: python
counts = multinomial.Multinomial(10, fair_probs).sample((500,))
cum_counts = counts.cumsum(dim=0)
estimates = cum_counts / cum_counts.sum(dim=1, keepdims=True)
d2l.set_figsize((6, 4.5))
for i in range(6):
d2l.plt.plot(estimates[:, i].numpy(),
label=("P(die=" + str(i + 1) + ")"))
d2l.plt.axhline(y=0.167, color='black', linestyle='dashed')
d2l.plt.gca().set_xlabel('Groups of experiments')
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend();
.. figure:: output_probability_245b7d_54_0.svg
.. raw:: html
.. raw:: html
.. code:: python
counts = tfp.distributions.Multinomial(10, fair_probs).sample(500)
cum_counts = tf.cumsum(counts, axis=0)
estimates = cum_counts / tf.reduce_sum(cum_counts, axis=1, keepdims=True)
d2l.set_figsize((6, 4.5))
for i in range(6):
d2l.plt.plot(estimates[:, i].numpy(),
label=("P(die=" + str(i + 1) + ")"))
d2l.plt.axhline(y=0.167, color='black', linestyle='dashed')
d2l.plt.gca().set_xlabel('Groups of experiments')
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend();
.. figure:: output_probability_245b7d_57_0.svg
.. raw:: html
.. raw:: html
Cada curva sólida corresponde a um dos seis valores do dado e dá nossa
probabilidade estimada de que o dado aumente esse valor conforme
avaliado após cada grupo de experimentos. A linha preta tracejada
fornece a verdadeira probabilidade subjacente. À medida que obtemos mais
dados conduzindo mais experimentos, as curvas sólidas de :math:`6`
convergem para a probabilidade verdadeira.
Axiomas da Teoria de Probabilidade
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ao lidar com as jogadas de um dado, chamamos o conjunto
:math:`\mathcal{S} = \{1, 2, 3, 4, 5, 6\}` o *espaço de amostra* ou
*espaço de resultado*, onde cada elemento é um *resultado*. Um *evento*
é um conjunto de resultados de um determinado espaço amostral. Por
exemplo, “ver :math:`5`” (:math:`\{5 \}`) e “ver um número ímpar”
(:math:`\{1, 3, 5 \}`) são eventos válidos de lançar um dado. Observe
que se o resultado de um experimento aleatório estiver no evento
:math:`\mathcal {A}`, então o evento :math:`\mathcal {A}` ocorreu. Ou
seja, se :math:`3` pontos virados para cima após rolar um dado, uma vez
que :math:`3 \in \{1, 3, 5 \}`, podemos dizer que o evento “ver um
número ímpar” ocorreu.
Formalmente, *probabilidade* pode ser pensada como uma função que mapeia
um conjunto para um valor real. A probabilidade de um evento
:math:`\mathcal {A}` no espaço amostral dado :math:`\mathcal {S}`,
denotado como :math:`P (\mathcal {A})`, satisfaz as seguintes
propriedades:
- Para qualquer evento :math:`\mathcal {A}`, sua probabilidade nunca é
negativa, ou seja, :math:`P (\mathcal {A}) \geq 0`;
- A probabilidade de todo o espaço amostral é :math:`1`, ou seja,
:math:`P (\mathcal {S}) = 1`;
- Para qualquer sequência contável de eventos
:math:`\mathcal {A} _1, \mathcal {A} _2, \ldots` que são *mutuamente
exclusivos* (:math:`\mathcal{A}_i \cap \mathcal{A}_j = \emptyset`
para todo :math:`i \neq j`), a probabilidade de que aconteça é igual
à soma de suas probabilidades individuais, ou seja,
:math:`P(\bigcup_{i=1}^{\infty} \mathcal{A}_i) = \sum_{i=1}^{\infty} P(\mathcal{A}_i)`.
Esses também são os axiomas da teoria das probabilidades, propostos por
Kolmogorov em 1933. Graças a este sistema de axiomas, podemos evitar
qualquer disputa filosófica sobre aleatoriedade; em vez disso, podemos
raciocinar rigorosamente com uma linguagem matemática. Por exemplo,
permitindo que o evento :math:`\mathcal{A}_1` seja todo o espaço da
amostra e :math:`\mathcal{A}_i = \emptyset` para todos :math:`i> 1`,
podemos provar que :math:`P(\emptyset) = 0`, ou seja, a probabilidade de
um evento impossível é :math:`0`.
Variáveis Aleatórias
~~~~~~~~~~~~~~~~~~~~
Em nosso experimento aleatório de lançar um dado, introduzimos a noção
de uma *variável aleatória*. Uma variável aleatória pode ser
praticamente qualquer quantidade e não é determinística. Pode assumir um
valor entre um conjunto de possibilidades em um experimento aleatório.
Considere uma variável aleatória :math:`X` cujo valor está no espaço
amostral :math:`\mathcal {S} = \{1, 2, 3, 4, 5, 6 \}` do lançamento de
um dado. Podemos denotar o evento “vendo :math:`5`” como
:math:`\{X = 5 \}` ou :math:`X = 5`, e sua probabilidade como
:math:`P (\{X = 5 \})` ou :math:`P (X = 5)`. Por :math:`P (X = a)`,
fazemos uma distinção entre a variável aleatória :math:`X` e os valores
(por exemplo, :math:`a`) que :math:`X` pode assumir. No entanto, esse
pedantismo resulta em uma notação complicada. Para uma notação compacta,
por um lado, podemos apenas denotar :math:`P (X)` como a *distribuição*
sobre a variável aleatória :math:`X`: a distribuição nos diz a
probabilidade de que :math:`X` assuma qualquer valor. Por outro lado,
podemos simplesmente escrever :math:`P (a)` para denotar a probabilidade
de uma variável aleatória assumir o valor :math:`a`. Uma vez que um
evento na teoria da probabilidade é um conjunto de resultados do espaço
amostral, podemos especificar um intervalo de valores para uma variável
aleatória assumir. Por exemplo, :math:`P(1 \leq X \leq 3)` denota a
probabilidade do evento :math:`\{1 \leq X \leq 3\}`, o que significa
:math:`\{X = 1, 2, \text{or}, 3\}`. De forma equivalente,
:math:`\{X = 1, 2, \text{or}, 3\}` representa a probabilidade de que a
variável aleatória :math:`X` possa assumir um valor de
:math:`\{1, 2, 3\}`.
Observe que há uma diferença sutil entre variáveis aleatórias
*discretas*, como os lados de um dado, e *contínuas*, como o peso e a
altura de uma pessoa. Não adianta perguntar se duas pessoas têm
exatamente a mesma altura. Se tomarmos medidas precisas o suficiente,
você descobrirá que duas pessoas no planeta não têm exatamente a mesma
altura. Na verdade, se fizermos uma medição suficientemente precisa,
você não terá a mesma altura ao acordar e ao dormir. Portanto, não há
nenhum propósito em perguntar sobre a probabilidade que alguém tem
1,80139278291028719210196740527486202 metros de altura. Dada a população
mundial de humanos, a probabilidade é virtualmente 0. Faz mais sentido,
neste caso, perguntar se a altura de alguém cai em um determinado
intervalo, digamos entre 1,79 e 1,81 metros. Nesses casos, quantificamos
a probabilidade de vermos um valor como uma *densidade*. A altura de
exatamente 1,80 metros não tem probabilidade, mas densidade diferente de
zero. No intervalo entre quaisquer duas alturas diferentes, temos
probabilidade diferente de zero. No restante desta seção, consideramos a
probabilidade no espaço discreto. Para probabilidade sobre variáveis
aleatórias contínuas, você pode consultar
:numref:`sec_random_variables`.
Lidando com Múltiplas Variáveis Aleatórias
------------------------------------------
Muitas vezes, queremos considerar mais de uma variável aleatória de cada
vez. Por exemplo, podemos querer modelar a relação entre doenças e
sintomas. Dados uma doença e um sintoma, digamos “gripe” e “tosse”,
podem ou não ocorrer em um paciente com alguma probabilidade. Embora
esperemos que a probabilidade de ambos seja próxima de zero, podemos
estimar essas probabilidades e suas relações entre si para que possamos
aplicar nossas inferências para obter um melhor atendimento médico.
Como um exemplo mais complicado, as imagens contêm milhões de pixels,
portanto, milhões de variáveis aleatórias. E, em muitos casos, as
imagens vêm com um rótulo, identificando objetos na imagem. Também
podemos pensar no rótulo como um variável aleatória. Podemos até pensar
em todos os metadados como variáveis aleatórias como local, tempo,
abertura, comprimento focal, ISO, distância de foco e tipo de câmera.
Todas essas são variáveis aleatórias que ocorrem em conjunto. Quando
lidamos com múltiplas variáveis aleatórias, existem várias quantidades
de interesse.
Probabilidade Conjunta
~~~~~~~~~~~~~~~~~~~~~~
O primeiro é chamado de *probabilidade conjunta* :math:`P(A = a, B=b)`.
Dados quaisquer valores :math:`a` e :math:`b`, a probabilidade conjunta
nos permite responder, qual é a probabilidade de que :math:`A = a` e
:math:`B = b` simultaneamente? Observe que, para quaisquer valores
:math:`a` e :math:`b`, :math:`P (A = a, B = b) \leq P (A = a)`. Tem de
ser este o caso, visto que para :math:`A = a` e :math:`B = b` acontecer,
:math:`A = a` tem que acontecer *e* :math:`B = b` também tem que
acontecer (e vice-versa). Assim, :math:`A = a` e :math:`B = b` não podem
ser mais prováveis do que :math:`A = a` ou :math:`B = b`
individualmente.
Probabilidade Condicional
~~~~~~~~~~~~~~~~~~~~~~~~~
Isso nos leva a uma razão interessante:
:math:`0 \leq \frac {P (A = a, B = b)} {P (A = a)} \leq 1`. Chamamos
essa proporção de *probabilidade condicional* e denotá-lo por
:math:`P (B = b \mid A = a)`: é a probabilidade de :math:`B = b`, desde
que :math:`A = a` ocorreu.
Teorema de Bayes
~~~~~~~~~~~~~~~~
Usando a definição de probabilidades condicionais, podemos derivar uma
das equações mais úteis e celebradas em estatística: *Teorema de Bayes*.
Por construção, temos a *regra de multiplicação* que
:math:`P(A, B) = P(B \mid A) P(A)`. Por simetria, isso também é válido
para :math:`P(A, B) = P(A \mid B) P(B)`. Suponha que :math:`P(B)> 0`.
Resolvendo para uma das variáveis condicionais, obtemos
.. math:: P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)}.
Observe que aqui usamos a notação mais compacta em que :math:`P(A, B)` é
uma *distribuição conjunta* e :math:`P(A \mid B)` é uma *distribuição
condicional*. Essas distribuições podem ser avaliadas para valores
particulares :math:`A = a, B = b`.
Marginalização
~~~~~~~~~~~~~~
O teorema de Bayes é muito útil se quisermos inferir uma coisa da outra,
digamos causa e efeito, mas só conhecemos as propriedades na direção
reversa, como veremos mais adiante nesta seção. Uma operação importante
de que precisamos para fazer esse trabalho é a *marginalização*. É a
operação de determinar :math:`P(B)` de :math:`P(A, B)`. Podemos ver que
a probabilidade de :math:`B` equivale a contabilizar todas as escolhas
possíveis de :math:`A` e agregar as probabilidades conjuntas de todas
elas:
.. math:: P(B) = \sum_{A} P(A, B),
que também é conhecida como *regra da soma*. A probabilidade ou
distribuição como resultado da marginalização é chamada de
*probabilidade marginal* ou *distribuição marginal*.
Independencia
~~~~~~~~~~~~~
Outra propriedade útil para verificar é *dependência* vs.
*independência*. Duas variáveis aleatórias :math:`A` e :math:`B` sendo
independentes significa que a ocorrência de um evento de :math:`A` não
revela nenhuma informação sobre a ocorrência de um evento de :math:`B`.
Neste caso :math:`P(B \mid A) = P(B)`. Os estatísticos normalmente
expressam isso como :math:`A \perp B`. Do teorema de Bayes, segue
imediatamente que também :math:`P(A \mid B) = P(A)`. Em todos os outros
casos, chamamos :math:`A` e :math:`B` de dependente. Por exemplo, duas
jogadas sucessivas de um dado são independentes. Em contraste, a posição
de um interruptor de luz e a luminosidade da sala não são (eles não são
perfeitamente determinísticos, pois podemos sempre ter uma lâmpada
quebrada, falha de energia ou um interruptor quebrado).
Dado que :math:`P(A \mid B) = \frac{P(A, B)}{P(B)} = P(A)` é equivalente
a :math:`P(A, B) = P(A)P(B)`, duas variáveis aleatórias são
independentes se e somente se sua distribuição conjunta é o produto de
suas distribuições individuais. Da mesma forma, duas variáveis
aleatórias :math:`A` e :math:`B` são *condicionalmente independentes*
dada outra variável aleatória :math:`C` se e somente se
:math:`P(A, B \mid C) = P(A \mid C)P(B \mid C)`. Isso é expresso como
:math:`A \perp B \mid C`.
.. _subsec_probability_hiv_app:
Aplicação
~~~~~~~~~
Vamos colocar nossas habilidades à prova. Suponha que um médico
administre um teste de HIV a um paciente. Este teste é bastante preciso
e falha apenas com 1% de probabilidade se o paciente for saudável, mas
relatá-lo como doente. Além disso, nunca deixa de detectar o HIV se o
paciente realmente o tiver. Usamos :math:`D_1` para indicar o
diagnóstico (:math:`1` se positivo e :math:`0` se negativo) e :math:`H`
para denotar o estado de HIV (:math:`1` se positivo e :math:`0` se
negativo). :numref:`conditional_prob_D1` lista tais probabilidades
condicionais. : Probabilidade condicional de :math:`P(D_1 \mid H)`.
.. table:: label:\ ``conditional_prob_D1``
+---------------------------+-------------+-------------+
| Probabilidade Condicional | :math:`H=1` | :math:`H=0` |
+===========================+=============+=============+
| :math:`P(D_1 = 1 \mid H)` | 1 | 0.01 |
+---------------------------+-------------+-------------+
| :math:`P(D_1 = 0 \mid H)` | 0 | 0.99 |
+---------------------------+-------------+-------------+
Observe que as somas das colunas são todas 1 (mas as somas das linhas
não), uma vez que a probabilidade condicional precisa somar 1, assim
como a probabilidade. Vamos calcular a probabilidade de o paciente ter
HIV se o teste der positivo, ou seja, :math:`P(H = 1 \mid D_1 = 1)`.
Obviamente, isso vai depender de quão comum é a doença, já que afeta o
número de alarmes falsos. Suponha que a população seja bastante
saudável, por exemplo, :math:`P(H=1) = 0.0015`. Para aplicar o teorema
de Bayes, precisamos aplicar a marginalização e a regra de multiplicação
para determinar
.. math::
\begin{aligned}
&P(D_1 = 1) \\
=& P(D_1=1, H=0) + P(D_1=1, H=1) \\
=& P(D_1=1 \mid H=0) P(H=0) + P(D_1=1 \mid H=1) P(H=1) \\
=& 0.011485.
\end{aligned}
Portanto, obtemos:
.. math::
\begin{aligned}
&P(H = 1 \mid D_1 = 1)\\ =& \frac{P(D_1=1 \mid H=1) P(H=1)}{P(D_1=1)} \\ =& 0.1306 \end{aligned}.
Em outras palavras, há apenas 13,06% de chance de que o paciente
realmente tem HIV, apesar de usar um teste muito preciso. Como podemos
ver, a probabilidade pode ser contra-intuitiva.
O que o paciente deve fazer ao receber notícias tão terríveis?
Provavelmente, o paciente pediria ao médico para administrar outro teste
para obter clareza. O segundo teste tem características diferentes e não
é tão bom quanto o primeiro, como mostrado em
:numref:conditional_prob_D2`.
.. _conditional_prob_D2:
.. table:: Probabilidade Condicional de :math:`P(D_2 \mid H)`.
+---------------------------+-------------+-------------+
| Probabilidade Condicional | :math:`H=1` | :math:`H=0` |
+===========================+=============+=============+
| :math:`P(D_2 = 1 \mid H)` | 0.98 | 0.03 |
+---------------------------+-------------+-------------+
| :math:`P(D_2 = 0 \mid H)` | 0.02 | 0.97 |
+---------------------------+-------------+-------------+
Infelizmente, o segundo teste também deu positivo. Vamos trabalhar as
probabilidades necessárias para invocar o teorema de Bayes assumindo a
independência condicional:
.. math::
\begin{aligned}
&P(D_1 = 1, D_2 = 1 \mid H = 0) \\
=& P(D_1 = 1 \mid H = 0) P(D_2 = 1 \mid H = 0) \\
=& 0.0003,
\end{aligned}
.. math::
\begin{aligned}
&P(D_1 = 1, D_2 = 1 \mid H = 1) \\
=& P(D_1 = 1 \mid H = 1) P(D_2 = 1 \mid H = 1) \\
=& 0.98.
\end{aligned}
Agora podemos aplicar a marginalização e a regra de multiplicação:
.. math::
\begin{aligned}
&P(D_1 = 1, D_2 = 1) \\
=& P(D_1 = 1, D_2 = 1, H = 0) + P(D_1 = 1, D_2 = 1, H = 1) \\
=& P(D_1 = 1, D_2 = 1 \mid H = 0)P(H=0) + P(D_1 = 1, D_2 = 1 \mid H = 1)P(H=1)\\
=& 0.00176955.
\end{aligned}
No final, a probabilidade de o paciente ter HIV, dado ambos os testes
positivos, é
.. math::
\begin{aligned}
&P(H = 1 \mid D_1 = 1, D_2 = 1)\\
=& \frac{P(D_1 = 1, D_2 = 1 \mid H=1) P(H=1)}{P(D_1 = 1, D_2 = 1)} \\
=& 0.8307.
\end{aligned}
Ou seja, o segundo teste nos permitiu ganhar uma confiança muito maior
de que nem tudo está bem. Apesar do segundo teste ser consideravelmente
menos preciso do que o primeiro, ele ainda melhorou significativamente
nossa estimativa.
Expectativa e Variância
-----------------------
Para resumir as principais características das distribuições de
probabilidade, precisamos de algumas medidas. A *expectativa* (ou média)
da variável aleatória :math:`X` é denotada como
.. math:: E[X] = \sum_{x} x P(X = x).
Quando a entrada de uma função :math:`f (x)` é uma variável aleatória
retirada da distribuição :math:`P` com valores diferentes :math:`x`, a
expectativa de :math:`f (x)` é calculada como
.. math:: E_{x \sim P}[f(x)] = \sum_x f(x) P(x).
Em muitos casos, queremos medir o quanto a variável aleatória :math:`X`
se desvia de sua expectativa. Isso pode ser quantificado pela variação
.. math::
\mathrm{Var}[X] = E\left[(X - E[X])^2\right] =
E[X^2] - E[X]^2.
Sua raiz quadrada é chamada de *desvio padrão*. A variância de uma
função de uma variável aleatória mede pelo quanto a função se desvia da
expectativa da função, como diferentes valores :math:`x` da variável
aleatória são amostrados de sua distribuição:
.. math:: \mathrm{Var}[f(x)] = E\left[\left(f(x) - E[f(x)]\right)^2\right].
Sumário
-------
- Podemos obter amostras de distribuições de probabilidade.
- Podemos analisar múltiplas variáveis aleatórias usando distribuição
conjunta, distribuição condicional, teorema de Bayes, marginalização
e suposições de independência.
- A expectativa e a variância oferecem medidas úteis para resumir as
principais características das distribuições de probabilidade.
Exercícios
----------
1. Conduzimos :math:`m = 500` grupos de experimentos onde cada grupo
extrai :math:`n = 10` amostras. Varie :math:`m` e :math:`n`. Observe
e analise os resultados experimentais.
2. Dados dois eventos com probabilidade :math:`P(\mathcal{A})` e
:math:`P(\mathcal{B})`, calcule os limites superior e inferior em
:math:`P(\mathcal{A} \cup \mathcal{B})` e
:math:`P(\mathcal{A} \cap \mathcal{B})`. (Dica: exiba a situação
usando um `Diagrama de
Venn `__.)
3. Suponha que temos uma sequência de variáveis aleatórias, digamos
:math:`A`, :math:`B` e :math:`C`, onde :math:`B` depende apenas de
:math:`A` e :math:`C` depende apenas de :math:`B`, você pode
simplificar a probabilidade conjunta :math:`P (A, B, C)`? (Dica: esta
é uma `Cadeia de
Markov `__.)
4. Em :numref:`subsec_probability_hiv_app`, o primeiro teste é mais
preciso. Por que não executar o primeiro teste duas vezes em vez de
executar o primeiro e o segundo testes?
.. raw:: html
.. raw:: html
`Discussão `__
.. raw:: html
.. raw:: html
`Discussão `__
.. raw:: html
.. raw:: html
`Discussão `__
.. raw:: html
.. raw:: html
.. raw:: html