Assume there are three types (sets) of variables $X$, $Y$ and $Z$ in a graphical model where $X = \{x_1,x_2,\dots,x_m\}$, $Y = \{y_1,y_2,\dots,y_n \}$ and $Z = \{z_1,z_2,\dots,z_k\}$. Further, $Z$ is dependent on both $X$ and $Y$, e.g. there is a path $x_1 \rightarrow z_5 \leftarrow y_3$ in the model. Let Z be the observed variables and $X$ and $Y$ be the latent variables. To maximize the probability $p(X,Y|Z)$. One can choose to (1) minimize its log likelyhood and find the assignments for variables in $X$ and $Y$, or (2) use belief propagation. My question is which of the two methods are better, is there any rules to choose one over the other?


I think it depends what you want to infer and what you want to do with it. If you need point estimates of parameters, MAP may do just fine. If you want to quantify uncertainty of parameter estimates and want to query the posterior distributions (eg. asking probability related questions), then a full Bayesian approach is needed.

To me, this model looks very simple. Take a look at PyMC3 (python), Stan (C++,R,Python) or Infer.NET (C#). Stan does not allow directly to work with discrete data but there are ways dealing with that. If you are comfortable with Python, I suggest to play with PyMC3. It can return MAP estimates as well by the way.

Your model is a textbook model of the so-called "Wet Grass/Sprinkler/Rain" model. PyMC3 and Infer.NET have examples of this model and sample queries that you can make.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.