Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Distribuição de probabilidade conjunta, marginal e condicional — Variáveis aleatórias discretas

+1 voto
97 visitas
perguntada Abr 25 em Estatística por Vinícius Oliveira (11 pontos)  
editado Mai 21 por Vinícius Oliveira

A distribuição conjunta de probabilidade de duas variáveis aleatórias discretas, \(X\) e \(Y\), é dada na tabela a seguir

A imagem será apresentada aqui.

(a) Encontre as distribuições de probabilidade marginais de \(X\) e \(Y\) e

(b) Encontre a distribuição condicional de probabilidade de \(X\) dado \(Y = 1\), bem como a de \(Y\) dado \(X=1\)

Referência: Questão 1, Problemas do Capítulo 3 do Livro "Mathematical Statistics and Data Analysis" de John A. Rice (3 Edição)

Compartilhe

1 Resposta

0 votos
respondida Abr 25 por Vinícius Oliveira (11 pontos)  
editado Abr 25 por Vinícius Oliveira

Item A

Temos uma variável bidimensional discreta \( (X,Y) \). Se imaginarmos as realizações possíveis de \( X\) e \( Y\) como eventos, a obtenção das distribuições marginais torna-se aplicação direta do Teorema da Probabilidade Total. Ou seja, a ideia é calcular a probabilidade de um evento que pode ocorrer de várias formas possíveis. De fato, suponha que quiséssemos calcular a probabilidade do evento \( B = ( X= 1)\).

Nesse cenário, se definirmos o evento \( A_{i} = (Y = i)\) para \(i \in \{1,2,3,4\}\), então os eventos \(A_{1}, A_{2}, A_{3}, A_{4} \) formam uma partição do espaço amostral de "todos os valores possíveis de \( Y\) ". Portanto, o Teorema da Probabilidade Total nos garante isto:

\( P(B) = \displaystyle \sum_{i=1}^{4} P( A_{i} \cap B) \hspace{0,3cm} (1) \)

Assim, em função de como definimos cada evento \(A_{i}\) e \(B\), se denotarmos \( P\{ (X=1) \cap (Y = i) \} \) para \( i \in \{1,2,3,4\}\) por \( P [ X = 1 \hspace{0,1cm};\hspace{0,1cm} Y = i] \) , a probabilidade de \(X=1\) é obtida se reescrevermos a equação \( (1) \) da seguinte forma:

\( P [X = 1] = \displaystyle \sum_{i=1}^{4} P[ X =1 \hspace{0,1cm}; \hspace{0,1cm} Y = i] \hspace{0,3cm} (2) \)

Substituindo os valores da tabela do enunciado da questão em \( (2)\), temos:

\( P [X = 1] = 0.10 + 0.05 + 0.02 + 0.02 = 0.19 \)

Generalizando a estratégia acima para todos os valores possíveis de \( X\) e \( Y \), as distribuições marginais desejadas são dadas pelas expressões abaixo:

\( P [X = k] = \displaystyle \sum_{i=1}^{4} P[ X =k \hspace{0,1cm}; \hspace{0,1cm} Y = i] \hspace{0,1cm};\hspace{0,1cm} i,k \in \{1,2,3,4\} \hspace{0,3cm} (3) \)

\( P [Y = k] = \displaystyle \sum_{i=1}^{4} P[ Y =k \hspace{0,1cm}; \hspace{0,1cm} X = i] \hspace{0,1cm};\hspace{0,1cm} i,k \in \{1,2,3,4\} \hspace{0,3cm} (4) \)

Se interpretarmos a tabela do enunciado como uma matriz \(C\), a equação \((3)\) elucida que a distribuição marginal de \(X\) é encontrada ao somarmos cada entrada da coluna correspondente de \(C\). Similarmente, a equação \((4)\) sugere que a distribuição marginal de \( Y\) é obtida ao somarmos cada entrada da linha correspondente de \(C\). Na prática, fazer essas somas manualmente pode ser trabalhoso. Por isso, faremos essa conta no Python

Contudo, antes disso, vamos deixar a matriz \(C\) mais explícita para percebermos um detalhe importante

\[ C= \left[ \begin{array}{cccc} 0.10 & 0.05 & 0.02 & 0.02 \\ 0.05 & 0.20 & 0.05 & 0.02 \\ 0.02 & 0.05 & 0.20 & 0.04 \\ 0.02 & 0.02 & 0.04 & 0.10 \\ \end{array} \right] \hspace{0,15cm} (5) \]

A partir de \((5)\), note que \(C\) é simétrica. Ou seja, \( c_{ij} = c_{ji} \hspace{0,15cm} \forall \hspace{0,15cm} i \not = j \hspace{0,1cm} ; \hspace{0,1cm} i,j \in \{1,2,3,4\} \). Logo, por exemplo, as soma das entradas da primeira coluna de \(C\) é igual a soma das entradas da primeira linha de \(C\). E isso vale para todas as colunas e linhas correspondentes. Ou seja, as distribuições marginais de \(X\) e \(Y\) são iguais. Logo, basta calcular uma delas e repeti-la para a outra variável

Tendo isso em em mente, comecemos importando as bibliotecas necessárias:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

Em seguida, escrevemos a matriz \(C\) e, com base em \((3)\) e \((4)\), duas linhas a mais de código são suficientes para encontrarmos as distribuições marginais desejadas

C = np.array([[0.1, 0.05, 0.02, 0.02], [0.05, 0.2, 0.05, 0.02],
              [0.02, 0.05, 0.2, 0.04], [0.02, 0.02, 0.04, 0.1] ])
C = pd.DataFrame(C)
dist = C.sum(axis=1)  # vetor com a soma de cada linha de C

Note que poderíamos parar a resolução do "Item A" por aqui. Afinal, a primeira entrada do vetor dist corresponde a \( P[X=1] = P[Y=1] \) e assim por diante até a quarta entrada desse vetor. Para verificar quais quais são esses valores e checar que eles somam 1, basta fazer isto:

dist # mostra as entradas de dist
sum(dist) # soma as entradas de dist

O único detalhe é que é necessário se atentar a uma particularidade do Python, o qual, em geral, começa a indexar as entradas de um vetor pelo número 0. Por isso, a "entrada 0" de dist correponde a \( P[X=1] = P[Y=1] \) e a "entrada 3" corresponde a \( P[X=4] = P[Y=4] \)

Embora isso já seja suficiente para resolver o "Item A", com o intuito de deixar a solução mais visual, vamos plotar um gráfico de barras com as distribuições marginais de \(X\) e \(Y\). O código a seguir realiza essa tarefa:

z = (1,2,3,4) #  valores do eixo horizontal do gráfico

x = np.arange(len(z))  # localização dos labels
width = 0.35  # espessura das barras

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, dist, width, color ='blue', label='X')
rects2 = ax.bar(x + width/2, dist, width, color = 'green', label='Y')

# Custumiza os labels e título do gráfico
ax.set_ylabel('Pr(Z)')
ax.set_title('Distribuições Marginais de X e Y')
ax.set_xticks(x)
ax.set_xticklabels(z)
ax.legend()

fig.tight_layout()

plt.show()

O código acima deve resultar na figura a seguir:

A imagem será apresentada aqui.

Item B

A obtenção das distribuições condicionais é aplicação direta do conceito de probabilidade condicional. Por exemplo, suponha que quiséssemos calcular a probabilidade de \(X\) ser igual a \(2\), dado que \(Y\) é igual a \(1\). Nesse caso, mantendo a notação do item anterior, temos:

\( P[X = 2 \mid Y = 1] = \dfrac{P[X=2 \hspace{0,1cm} ; \hspace{0,1cm} Y=1]}{P[Y=1]} \hspace{0,3cm} (6) \)

Da tabela do enunciado da questão, sabemos que \(P[X=2 \hspace{0,1cm} ; \hspace{0,1cm} Y=1]= 0.05 \). Por outro lado, no "Item A", ao derivarmos a distribuição marginal de \(Y\), encontramos \(P[Y=1] = 0.19\). Substituindo esses valores em \((6)\):

\( P[X = 2 \mid Y = 1] = \dfrac{0.05}{0.19} = 0.263 \)

Generalizando a estratégia acima para todos os possíveis valores de \( X\) dado \(Y=1\) e de \( Y\) dado \(X=1\), obtemos as distribuições condicionais desejadas por meio das expressões abaixo:

\(P[X=k \mid Y=1] = \dfrac{P[X=k \hspace{0,1cm};\hspace{0,1cm}Y=1 ]}{P[Y=1]} \hspace{0,1cm};\hspace{0,1cm} k \in \{1,2,3,4\} \hspace{0,3cm} (7) \)

\(P[Y=k \mid X=1] = \dfrac{P[Y=k \hspace{0,1cm};\hspace{0,1cm}X=1 ]}{P[X=1]} \hspace{0,1cm};\hspace{0,1cm} k \in \{1,2,3,4\} \hspace{0,3cm} (8) \)

Em termos da matriz \(C\), a equação \((7)\) esclarece que a distribuição de \(X\) condicional em \(Y=1\) corresponde ao quociente de cada entrada da primeira coluna de \(C\) por \(P[Y=1]\). Similarmente, a equação \((8)\) sugere que a distribuição de \(Y\) condicional em \(X=1\) corresponde ao quociente de cada entrada da primeira linha de \(C\) por \(P[X=1]\)

Vejamos como, com base em \( (7) \) e em \( (8) \), implementar a solução em Python. Supondo que o leitor tenha acompanhado a resolução do "Item A", as bibliotecas necessárias já foram importadas, a matriz \(C\) já foi construída, o vetor auxiliar z já foi definido e o vetor dist contém as distribuições marginais de \(X\) e \(Y\), que são iguais. Novamente, como \(C\) é simétrica, as distribuições condicionais dessas duas variáveis também serão iguais. Logo, basta, por exemplo, dividir cada entrada da primeira coluna de \( C \) por \(P[X=1] = 0.19\) (a primeira entrada do vetor dist). É o que fazemos no código a seguir

k = C[0] # 1a coluna de C    

Pc = np.empty(len(z)) # vetor com distrib. condicional

for i in range(len(z)):
    Pc[i] =  k[i]/dist[0]

Note que poderíamos parar a resolução do "Item B" por aqui. Afinal, a primeira entrada do vetor Pc corresponde a \( P[X=1 \mid Y=1] = P[Y=1 \mid X=1] \) e assim por diante até a quarta entrada desse vetor. Para verificar quais são esses valores e checar que eles somam 1, basta fazer isto:

Pc # mostra as entradas de Pc
sum(Pc) # soma as entradas de Pc

As mesmas observações feitas no item anterior quanto a particularidade do Python cabem aqui

Embora isso já seja suficiente para resolver o "Item B", com o intuito de deixar a solução mais visual, vamos plotar um gráfico de barras com as distribuições condicionais de \(X\) e \(Y\). O código a seguir realiza essa tarefa:

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, Pc, width, color ='red', label='X/Y=1')
rects2 = ax.bar(x + width/2, Pc, width, color = 'yellow', label='Y/X=1')

# Custumiza os labels e título do gráfico
ax.set_ylabel('Pr(Z / W=1)')
ax.set_title('Distribuições Condicionais de X e Y')
ax.set_xticks(x)
ax.set_xticklabels(z)
ax.legend()

fig.tight_layout()

plt.show()

O código acima deve resultar na figura a seguir:

A imagem será apresentada aqui.

comentou Mai 4 por Luiz Guilherme Hass (11 pontos)  
A resposta dada está muito bem elaborada. Os recursos do Python utilizados puderam tratar a questão de maneira bem didática. Alguns comentários adicionais podem ser feitos para contribuir com o entendimento do exercício.

Distribuição marginal e conjunta são temas que às vezes podem causar confusão em estudantes que estão vendo o tema pela primeira vez. Uma maneira interessante de analisar a distribuição é tratar de cada variável separadamente.

Assim, vamos primeiro analisar a variável X:

Com os dados da tabela:

\(P[X = 1] = P[X = 1; Y =1] + P[X = 1; Y =2] + P[X = 1; Y =3]\)

\(+ P[X = 1; Y =4]\) , ou seja, \(P[X = 1] =\) 0,10 + 0,05 + 0,02 + 0,02 = 0,19 ou 19%.

Assim sucessivamente, calculamos:

\(P[X = 1] =\) 0,19 ou 19%

\(P[X = 2] =\) 0,32 ou 32%

\(P[X = 3] =\) 0,31 ou 31%

\(P[X = 4] =\) 0,18 ou 18%

\(P[X = 1] + P[X = 2]  + P[X = 3]  + P[X = 4] =\) 1 ou 100%

Da mesma forma, calculamos para Y:

\(P[Y = 1] = P[Y = 1; X =1] + P[Y = 1; X =2] + P[Y = 1; X =3]\)

\(+ P[Y = 1; X =4]\) , ou seja, \(P[Y = 1] =\) 0,10 + 0,05 + 0,02 + 0,02 = 0,19 ou 19%

Assim sucessivamente, calculamos:

\(P[Y = 1] =\) 0,19 ou 19%

\(P[Y = 2] =\) 0,32 ou 32%

\(P[Y = 3] =\) 0,31 ou 31%

\(P[Y = 4] =\) 0,18 ou 18%

\(P[Y = 1] + P[Y = 2]  + P[Y = 3]  + P[Y = 4] =\) 1 ou 100%

Uma questão muito comum em provas quando é dada uma distribuição conjunta é calcular o valor esperado e a variância de X e de Y. Para o cálculo do valor esperado, são usadas as distribuições marginais.

Com os dados da tabela:

\(E(X) =\) 1*\(P[X = 1]\) + 2*\(P[X = 2]\) + 3*\(P[X = 3]\) + 4*\(P[X = 4]\)

\(E(X) =\) 1*0,19 + 2*0,32 + 3*0,31 + 4*0,18 = 2,48

\(E(Y) =\) 1*\(P[Y = 1]\) + 2*\(P[Y = 2]\) + 3*\(P[Y = 3]\) + 4*\(P[Y = 4]\)

\(E(Y) =\) 1*0,19 + 2*0,32 + 3*0,31 + 4*0,18 = 2,48

Os valores esperados de X e Y são iguais, dado que a tabela de dados é simétrica.

\(E(X^2) =\) \(1^2\)*\(P[X = 1]\) + \(2^2\)*\(P[X = 2]\) + \(3^2\)*\(P[X = 3]\) + \(4^2\)*\(P[X = 4]\)

\(E(X^2) =\) 1*0,19 + 4*0,32 + 9*0,31 + 16*0,18 = 7,14

\(E(Y^2) =\) \(1^2\)*\(P[Y = 1]\) + \(2^2\)*\(P[Y = 2]\) + \(3^2\)*\(P[Y = 3]\) + \(4^2\)*\(P[Y = 4]\)

\(E(Y^2) =\) 1*0,19 + 4*0,32 + 9*0,31 + 16*0,18 = 7,14

\(var(X)\) = \(E(X^2)\) - \([E(X)]^2 =\) 7,14 - 2,48*2,48 = 0,9896

\(var(Y)\) = \(E(Y^2)\) - \([E(Y)]^2 =\) 7,14 - 2,48*2,48 = 0,9896

As variâncias X e Y também são iguais, dado que a tabela de dados é simétrica.
comentou Mai 21 por Vinícius Oliveira (11 pontos)  
Obrigado pelo comentário, Luiz!
...