O primeiro passo é inserir os dados do problema nas estruturas de dados que estudamos do R:
Prob_S <- c(.25,.75) Prob_G <- c(.62,.38) Prob_CdadoSG <- array(c(.05,.20,.74,.96,.95,.8,.26,.04), c(2,2,2)) Prob_VdadoC <- array(c(.10,.75,.9,.25),c(2,2))As distribuições da safra (S) e do subsídio governamental (G) estão em vetores simples de dois elementos cada, porque essas variáveis são independentes de qualquer outra na topologia da rede bayesiana que estudamos em sala. A situação é mais complicada com as distribuições condicionais de C e V. Os comandos acima armazenam a distribuição P(C|SG) num arranjo 2x2x2, que pode ser entendido alternativamente como duas matrizes 2x2. A primeira matriz é Prob_CdadoSG[,,1] e ela contém as probabilidades de um valor "baixo" para C (o custo da mercadoria) dadas as quatro combinações possíveis de S e G:
> Prob_CdadoSG[,,1]
[,1] [,2]
[1,] 0.05 0.74
[2,] 0.20 0.96
Nessa matriz, os valores de S estão nas colunas; os valores de G, nas linhas. Assim, a primeira coluna da matriz contém as probabilidades condicionais dado um valor "baixo" da safra (S). A segunda coluna, as probabilidades condicionais dado um valor "alto" da safra. Olhando agora ortogonalmente: a primeira linha da matriz contém as probabilidades condicionais dado um valor "baixo" do subsídio governamental (G). A segunda linha, as probabilidades condicionais dado um valor "alto" do subsídio. Para testar a sua compreensão, diga: o que contém Prob_CdadoSG[1,2,1]? Resposta: P(C=B|S=A,G=B).
A segunda matriz Prob_CdadoSG[,,2] contém as probabilidades de um valor "alto" para C dadas as quatro combinações de S e G, e a sua estrutura é idêntica à da primeira matriz. Observe que essa segunda matriz é que contém os dados encontrados no slide. Naturalmente, cada elemento da primeira matriz contém a diferença entre o número 1 e o elemento correspondente nesta segunda matriz:
> Prob_CdadoSG[,,2]
[,1] [,2]
[1,] 0.95 0.26
[2,] 0.80 0.04
Veja agora que a distribuição condicional P(V|C) foi armazenada numa matriz 2x2 onde os valores de V estão estão nas colunas e os de C, nas linhas. Por exemplo, Prob_VdadoC[1,2] contém P(V=A|C=B):
> Prob_VdadoC
[,1] [,2]
[1,] 0.10 0.90
[2,] 0.75 0.25
Como devia ser, os elementos de cada linha da matriz somam 1. (Por quê?)
Agora começamos a construir, passo a passo, a distribuição conjunta das quatro variáveis do modelo. Primeiro, calculamos a distribuição conjunta de S e G, usando o produto externo de dois vetores:
Prob_SG <- Prob_G %o% Prob_S
O resultado é uma matriz 2x2 onde os valores de S estão nas colunas e os de G, nas linhas. Cada elemento da matriz contém a probabilidade conjunta de se observar a combinação correspondente de valores de S e G:
> Prob_SG
[,1] [,2]
[1,] 0.155 0.465
[2,] 0.095 0.285
Podemos então construir a distribuição conjunta de C, S e G. Este é o comando:
O comando parece complicado à primeira vista, mas ele é uma aplicação direta da expressão:
P(CSG) = P(C|SG) x P(SG).
A distribuição conjunta P(CSG) é estruturada num arranjo 2x2x2 parecido com o arranjo Prob_CdadoSG que criamos no início. Ele é composto por duas matrizes. A primeira contém as probabilidades de se observar C "baixo" conjuntamente com as quatro combinações possíveis de S e G, onde, novamente, os valores de S estão nas colunas e os de G, nas linhas:
> Prob_CSG[,,1]
[,1] [,2]
[1,] 0.00775 0.3441
[2,] 0.01900 0.2736
A segunda matriz contém as probabilidades de se observar C "alto" conjuntamente com as quatro combinações possíveis de S e G:
> Prob_CSG[,,2]
[,1] [,2]
[1,] 0.14725 0.1209
[2,] 0.07600 0.0114
O passo final é obter a distribuição conjunta das quatro variáveis. Para isso, usaremos a relação:
P(VCSG) = P(V|CSG) x P(CSG)
a qual simplifica para
P(VCSG) = P(V|C) x P(CSG)
pois V é condicionalmente independente de S e de G, dado C.
Este é o comando em R:
Prob_VCSG <- array(c(Prob_VdadoC[1,1]*Prob_CSG[,,1], Prob_VdadoC[2,1]*Prob_CSG[,,2], Prob_VdadoC[1,2]*Prob_CSG[,,1], Prob_VdadoC[2,2]*Prob_CSG[,,2]), c(2,2,2,2))
O arranjo final pode ser entendido como uma "supermatriz" 2x2 onde cada elemento é uma matriz 2x2. A primeira subrmatriz Prob_VCSG[,,1,1] contém as probabilidades conjuntas para as quatro combinações de S e G, mantendo C "baixo" e V "baixo" também. A segunda submatriz Prob_VCSG[,,2,1] contém as probabilidades conjuntas para as quatro combinações de S e G, mantendo C "alto" e V "baixo"; e assim por diante. Observe que, da forma que construímos o arranjo, os seus índices referem-se às variáveis em ordem inversa daquela em que elas aparecem no nome do arranjo. Isto é, o primeiro índice refere-se a G; o segundo, a S; o terceiro, a C; e o quarto e último, a V.
Este, sem dúvida, foi o desafio mais complexo de todo o nosso curso. Parabéns a todos os alunos que conseguiram resolver pelo menos parte dele!
Nenhum comentário:
Postar um comentário