IARPA, the whackier younger sibling of the government’s wild idea incubator DARPA, wanted to understand the hidden intentions of decision makers. To that end, we delivered a computational model of decision making in Java. By building a model, we enabled users to: (1) perturb the system to estimate the robustness of an outcome, (2) experiment with levers of influence. The model integrated with a complex set of other related systems built by other contractors.

I learned a lot of decision theory as part of implementing this model. My main takeaways are:

  • Individuals’ decisions can be represented as “decision matrices” (interests by available choices, with weights in each cell). We often want the interests to be ranked. Weighting choices ordinally with ties allowed within each interest is often easiest.
  • You can influence an outcome by influencing the decision-making environment. For instance, adding more interests can change outcomes. Changing who is consulted can also change the outcome.
  • Decision matrices can be turned into decisions through multiple techniques, including: (1) maximizing expected utility, (2) eliminating the worst options on the most important dimension (“elimination by aspects”), (3) choosing the best option on the most important dimension (“lexicographic decision heuristic”), (4) and maximin (maximizing the worst-case payoff).
  • The maximin heuristic is very risk averse. People tend to use it when the decision is especially difficult.
  • Social influence and power relationships can weaken/strengthen/change people’s interests and decision matrix weights.
  • The group’s style of decision making (a la the Vroom-Yetton model) informs how individual choices are aggregated.

Using Java professionally (and for the strange bedfellow of modeling) meant a lot of learning for me too. (Once burned by a boxed variable, never again.)