Problema de diagrama en árbol y teorema de Bayes

El ejercicio que se muestra en esta entrada es un ejercicio tipo de teorema de Bayes en el que se debe realizar un diagrama en árbol para resolverlo. Para esto último se usa el paquete de LaTeX forest. El código python usado en esta plantilla es mínimo. Al final de la entrada hay enlaces para descargar el fichero fuente así como el pdf que se obtendría.

El enunciado del ejercicio a resolver es de la forma:

Se ha propuesto solo a tres personas (María, Ana y Juan) para ocupar la presidencia de una comuniddad de vecinos. La probabilidad de que se elija a María es del \(0,3\) y de que elija a Ana del \(0,5\). Si se elije a María, la probabilidad de que se incremente la cuota anual de la comunidad es del \(0,3\), si se elije a Ana del \(0,5\) y si se elije a Juan del \(0,4\).

  1. Realiza un diagrama en árbol que resuma el problema.
  2. ¿Cuál es la probabilidad de que haya un incremento de la cuota anual?
  3. Si tras elegir al nuevo presidente sabemos que se han aumentado las cuotas anuales, ¿cuál es la probabilidad de Ana haya sido elegida presidenta del Club?

En la plantilla podemos modificar el texto para adecuarlo a otro tipo de enunciados así como las probabilidades iniciales del problema. Para eso se usan la variables:

#redondeo
r=4
#datos del problema
pm=0.3
pa=0.5
pim=0.3
pia=0.5
pij=0.4

Lo más interesante de la solución consiste en ver que se puede mezclar el valor de las variables de python con el código del paquete forest, se puede ver la forma de hacerlo en el código que se usa en el programa:

\begin{forest}
for tree={
  if n=0{coordinate}{circle,draw=black,fill=red!10},
  grow=0,
  l=4cm
}
[
 [J,edge label={node[midway,below=5pt,font=\scriptsize]{$P(J)=\py{pj}$}}
  [$\bar {I}$,edge label={node[midway,below,font=\scriptsize]{$P(\bar{I}/J)=\py{pnij}$}}]
  [I,edge label={node[midway,above,font=\scriptsize]{$P(I/J)=\py{pij}$}}]
 ]
 [A,edge label={node[midway,above=-2pt,font=\scriptsize]{$P(A)=\py{pa}$}}
  [$\bar {I}$,edge label={node[midway,below,font=\scriptsize]{$P(\bar{I}/A)=\py{pnia}$}}]
  [I,edge label={node[midway,above,font=\scriptsize]{$P(I/A)=\py{pia}$}}]
 ]
 [M,edge label={node[midway,above=5pt,font=\scriptsize]{P(M)=$\py{pm}$}}
  [$\bar {I}$,edge label={node[midway,below,font=\scriptsize]{$P(\bar{I}/M)=\py{pnim}$}}]
  [I,edge label={node[midway,above,font=\scriptsize]{$P(I/M)=\py{pim}$}}]
 ]
]
\end{forest}

A partir del mínimo código python del inicio así como del anterior, al compilar el fichero se obtiene de resultado:

image