December 11, 2016

A Look To The Past: Sterman on Systems Dynamics Modeling

Computer simulation is, all things being equal, an rather eccentric way of doing research and analysis. However, it is also older than many of us think. This semester I have been taking a course on one of the earlier and most influential ways of doing it, systems dynamics modeling. The core text used is Business Dynamics by John Sterman. The modeling platform being used is AnyLogic (which can do multi-paradigm modeling). Systems Dynamics models are rooted in several key formalisms:

  1. Stocks: state variables in the system.
  2. Flows: inflows and outflows between stocks (or sources/sinks).
  3. Causal Loops: reinforcing loops (rich get richer dynamics) or balancing loops (limitations to growth).

These are all graphical abstractions designed to make building and explaining models easier, because SD models are really systems of differential equations. In contrast to agent-based models, which are about heterogeneous interaction of agents in a system, systems dynamics takes an aggregate approach. Suppose we want to model some process of interest within an organization. An agent-based modeler would decompose the organization into a series of interacting agents (perhaps worker agents, foremen agents, executive agents) that each have fairly simple decision rules. Every time tick t, the model activates all of the agents and they do their thing (either concurrently or sequentially). An SD modeler would instead likely break the model down into the interaction of component blocks of the organization (how management relates to sales) at most and at least would merely look at something like relationships between revenue, production, and marketing at a fairly high level of abstraction.

What made SD models unique during their Cold War heyday was that they focused squarely on the impact of feedback on social systems. Sterman describes the importance of positive and negative feedback below:

All dynamics arise from the interaction of just two types of feedback loops, positive (or self-reinforcing) and negative (or self-correcting) loops (Figure 1-5). Positive loops tend to reinforce or amplify whatever is happening in the system: The more nuclear weapons NATO deployed during the Cold War, the more the Soviet Union built, leading NATO to build still more. If a firm lowers its price to gain market share, its competitors may respond in kind, forcing the firm to lower its price still more. The larger the installed base of Microsoft software and Intel machines, the more attractive the “Wintel” architecture became as developers sought the largest market for their software and customers sought systems compatible with the most software; the more Wintel computers sold, the larger the installed base. These positive loops are all processes that generate their own growth, leading to arms races, price wars, and the phenomenal growth of Microsoft and Intel, respectively.

Negative loops counteract and oppose change. The less nicotine in a cigarette, the more smokers must consume to get the dose they need. The more attractive a neighborhood or city, the greater the inmigration from surrounding areas will be, increasing unemployment, housing prices, crowding in the schools, and traffic congestion until it is no more attractive than other places people might live. The higher the price of a commodity, the lower the demand and the greater the production, leading to inventory accumulation and pressure for lower prices to eliminate the excess stock. The larger the market share of dominant firms, the more likely is government antitrust action to limit their monopoly power. These loops all describe processes that tend to be self-limiting, processes that seek balance and equilibrium.

There is something to be said for the argument that feedback was the key metaphor of Cold War social science, as seen in both fairly obvious and non-obvious examples in political science and economics. Computer simulation is necessary to examine feedback relationships because they are often difficult to capture or model utilizing other methods. To get a sense of why, consider that there are really two core levels of importance in social modeling using SD:

  1. The way in which goals drive decisions that alter the external environment. This leads to new decisions (still driven by goals) based on new circumstances created by the previous decisions.
  2. The way in which decisions of one actor triggers side effects, delayed reactions, and changes in the goals of others.

This can grow fairly complicated, hence the need for simulation. Why aren't SD models used more today? SD models are mostly endogeneous and closed. In all modeling, where to determine the system boundary of the modeled phenomena is a difficult problem. But in systems dynamics, there are few if often no exogeneous variables at all. Sequences of events are abstracted and compressed into groups of continuous flows, and most important details in general are removed through averaging. That's a decidedly risky bet because systems dynamics models can easily become "monster models" with hundreds and even maybe thousands of variables, subscripts, and delay constructs. Another problem with SD modeling is that, with the exception of OpenModelica and a few others, most of the software tools for developing SD models are closed-source and rather expensive. You can get free personal learning editions of tools like AnyLogic, but there are simply less choices for people doing SD modeling than other types of simulation modeling (to say nothing of mathematical and statistical modeling).

SD models are, however, not just a part of history. Problems should should determine use of tools, and it is important to know what kinds of problems are appropriate for a given tool. Sterman justifies SD models as a kind of "management flight simulator":

The challenge facing us all is how to move from generalizations about accelerating learning and systems thinking to tools and processes that help us understand complexity, design better operating policies, and guide change in systems from the smallest business to the planet as a whole. However, learning about complex systems when you also live in them is difficult. We are all passengers on an aircraft we must not only fly but redesign in flight. System dynamics is a method to enhance learning in complex systems. Just as an airline uses flight simulators to help pilots learn, system dynamics is, partly, a method for developing management flight simulators, often computer simulation models, to help us learn about dynamic complexity, understand the sources of policy resistance, and design more effective policies.

The metaphor is rather telling. In a flight simulator, the trainee has to gain an experential picture of how the myriad components of the plane can and cannot be controlled. In general, much has been written about the problem of "normal accidents" in tightly coupled technical systems. When tightly coupled technical systems interfere with each other, as seen in the Space Shuttle Challenger disaster, unforseen and cascading failures can occur. The human mind is not designed particularly well to think about the complexity of the sociotechnical systems it controls, and just like learning to think logically or probabilistically takes considerable effort so does thinking about complexity. SD models are one way of doing that.

An advantage of SD models is that they are not purely bottom-up. Bottom-up models often assume that complex behavior emerges from a series of extremely low-level, myopic agents and their behaviors and interactions. Yet we also tend to linguistically refer quite often to collectives of individuals ("The CIA overthrew X" or "The Iranians believe Y") or procedures ("word of mouth fuels publicity", "loss of strength gradient/stopping power of water") quite often when qualitatively describing things of interest to us. It may be best to try to find a fit between these qualitative linguistic abstractions and modeling abstractions. If you casually throw around "normal accident" terminology originally developed to explain things like Challenger, then maybe systems dynamics models are the right choice for your research problem.

Tags: modeling