Influence diagrams / Decision models in Stan and PyMC3

163 views Asked by At

Is it possible to write decision-making models in either Stan or PyMC3? By that I mean: we define not only the distribution of random variables, but also the definition of decision and utility variables, and determine the decisions maximizing expected utility.

My understanding is that Stan is more of a general optimizer than PyMC3, so that suggests decision models would be more directly implemented in it, but I would like to hear what people have to say.

Edit: While it is possible to enumerate all decisions and compute their corresponding expected utility, I am wondering about more efficient methods since the number of decisions could be combinatorially too many (for example, how many items to buy from a list with thousands of products). Influence diagram algorithms exploit factorizations in the model to identify independences that allow computing of the decisions on only a smaller set of relevant random variables. I wonder if either Stan or PyMC3 do that kind of thing.

1

There are 1 answers

2
Ben Goodrich On

The basic steps for Bayesian decision theory are:

  1. Enumerate a finite set of decisions that could be made
  2. Specify a utility function of the decision and perhaps other things
  3. Draw from the posterior distribution of all the unknowns given the known data
  4. Evaluate the utility function for each possible decision and each posterior draw
  5. Make the decision with the highest expected utility, averaging over the posterior draws.

You can do those five steps with any software --- Stan and PyMC3 included --- that produces (valid) draws from the posterior distribution. In Stan, the utility function should be evaluated in the generated quantities block.