Here we go, I thought – yet another mainstream attack on my non-mainstream economics. But why on earth would he see Minsky – my simulation program for modelling the economy as a fundamentally monetary system – as basically absurd? Because "DSGE modelling is so much better”, perhaps? Or because there are so many other good system dynamics programs already, why produce another one?
Guessing that it was the former rather than the latter, I fired back:
The battle was then started:
And then, suddenly, I realised that this wasn’t going to be a battle at all:
"Tell me what the wires do”? Oh dear…
This wasn’t about to be a critique of system dynamics modelling from a DSGE point of view (an prominent branch of applied general equilibrium theory), or even a critique of me adding to the clutter in the system dynamics space. It was going to be a well-trained, intelligent and relatively open-minded mainstream economist innocently demonstrating something that is far too common in economics: woeful ignorance of dynamic tools that are commonplace in other disciplines such as engineering and management.
But this exchange (you can see all the tweets at the end of this post) pointed out the opposite problem about me: I am so used to these dynamic modelling tools that I unconsciously expect others to be able to look at them and instantly realise what they are doing. And of course that’s not the case.
So here’s a quick explanation of "what the wires do” in visual simulation programs like Simulink, XCos, Vissim, Mathematica Modeler, Vensim, Stella – and now Minsky – using economic rather than engineering examples.
"What the wires do” is express equations using a visual metaphor. Before this metaphor was developed, anyone who wanted to simulate a system or procedure had to write a computer program (normally in FORTRAN). The program might well replicate the system accurately, but only the author of the program would know that – everyone else had to take it on faith, because the program code would be indecipherable to everyone but the author.
For example, figure 1 is the Wikipedia’s example of a simple FORTRAN II program to calculate the area of a triangle. Enjoy the 'my eyes glaze over' effect of trying to understand what it does at your leisure.
A more complex problem would involve hundreds of pages of computer code that no-one could understand (bar, one hoped, the person who wrote it). Jay Forrester, an engineer who had designed Whirlwind (the first computer with a video display for output), was confronted with such a problem: working out for GE why a Kentucky appliance factory had a regular three-year cycle in its employment. He developed a diagrammatic representation of the manufacturing and hiring processes at the factory, and showed that its internal hiring practices generated the cycle.
System dynamics was thus born as a visual way of understanding a complex system. With his background in developing computers that produced visual output on a CRT ("cathode ray tube”; before Whirlwind – and for some time after it – most computers printed their results on line printers), it was a logical step for Forrester to move from hand-drawn diagrams to visual representations of a complex model on a computer screen.
The first such program had a hoot of a name: SIMPLE, which stood for "Simulation of Industrial Management Problems with Lots of Equations” (it therefore qualifies for the annual COCOA award, given by the Committee to Outlaw Contrived and Outrageous Acronyms). After SIMPLE came DYNAMO (based on the slightly less outrageous acronym DYNAmic MOdels), and ultimately the proliferation of modern commercial and Open Source system dynamics programs.
Though they differ in appearance, they all work the same way: variables in a set of equations are linked by wires to mathematical operators. What would otherwise be a long list of equations is converted into a flowchart, and the flowchart makes the causal chain in the equations explicit and visually obvious.
Figure 1: The "MEGO" effect. A FORTRAN II program to calculate the area of a triangle
C INPUT - CARD READER UNIT 5, INTEGER INPUT
C OUTPUT - LINE PRINTER UNIT 6, REAL OUTPUT
C INPUT ERROR DISPLAY ERROR OUTPUT CODE 1 IN JOB CONTROL LISTING
READ INPUT TAPE 5, 501, IA, IB, IC
501 FORMAT (3I5)
C IA, IB, AND IC MAY NOT BE NEGATIVE
C FURTHERMORE, THE SUM OF TWO SIDES OF A TRIANGLE
C IS GREATER THAN THE THIRD SIDE, SO WE CHECK FOR THAT, TOO
IF (IA) 777, 777, 701
701 IF (IB) 777, 777, 702
702 IF (IC) 777, 777, 703
703 IF (IA IB-IC) 777,777,704
704 IF (IA IC-IB) 777,777,705
705 IF (IB IC-IA) 777,777,799
777 STOP 1
C USING HERON'S FORMULA WE CALCULATE THE
C AREA OF THE TRIANGLE
799 S = FLOATF (IA IB IC) / 2.0
AREA = SQRT( S * (S - FLOATF(IA)) * (S - FLOATF(IB)) *
(S - FLOATF(IC)))
WRITE OUTPUT TAPE 6, 601, IA, IB, IC, AREA
601 FORMAT (4H A= ,I5,5H B= ,I5,5H C= ,I5,8H AREA= ,F10.2,
13H SQUARE UNITS)
For example, say you wanted to define the rate of employment as depending on output (GDP), labour productivity and population. Then you could define a set of equations in a suitable program (like Mathcad):
Figure 2: Algebraic Equation in Mathcad
Or you could define it in a flowchart, using a program like Vissim:
Figure 3: Algebraic expression in Vissim
For a simple algebraic equation like this, modern computer algebra programs like Mathcad are just as good as a flowchart program like Vissim. But the visual metaphor excels when you want to describe a complex causal chain – as in, for example, Richard Goodwin’s model of cyclical growth, which was the actual model that Noah misinterpreted when he wrote this comment:
In fact, in the Youtube video that Noah was reacting to ("Minsky Cycical Model Demo”) with his initial "absurdity” tweet, I had merely used Minsky to render Goodwin’s model – and this could have been done in any of the simulation programs I’ve mentioned, from Simulink to Stella.
When Forrester first developed this technology back in the 1950s, he believed that economists would adopt it willingly, because it would enable them to build dynamic models of the economy easily: they would finally be freed of the tyranny of having to assume equilibrium. However, he was shocked to find that economists paid no attention to his methodology – as Noah’s innocent "tell me what the wires do” comment, some six decades later, vividly illustrates.
Instead, Forrester’s method took off like wildfire in both engineering and management, because both engineers and managers could see the inherent advantages of this visual equation approach over old-fashioned equations or computer code.
Figure 4 shows the wiring for a four-cylinder car simulation (one of the example files supplied with Vissim). Real-world projects are substantially more complicated, but this gives an idea of the complexity of tasks that can be modelled, and the capability for breaking a complex system into sub-units for design purposes.
Figure 4: A 4 cylinder car engine modelled in Vissim
Figure 5 is a marketing model of customers switching from one product to another:
Figure 5: Stella model of customer switching
Sixty years after Forrester developed system dynamics, I’m trying to introduce it into economics. But I’m far from the first person to do so. That honour of valiant failure belongs to a person whose name every economist knows, but whose work very few understand: Bill Phillips, the developer of the "Phillips Curve”. This alleged relationship between employment and inflation plays a central role in every economic model, and disputes over it played a fundamental role in the development – and derangement – of economics since the late 1950s.
Phillips was an engineer, and his primary work was not on this statistical relationship, but on developing methods for economists to model the economy as a dynamic system. Here’s his plea for economists to move on from comparative statics from his most important paper – published in 1954, well before the "Phillips Curve” paper of 1957:
"Recommendations for stabilising aggregate production and employment have usually been derived from the analysis of multiplier models, using the method of comparative statics. This type of analysis does not provide a very firm basis for policy recommendations, for two reasons.
"First, the time path of income, production and employment during the process of adjustment is not revealed. It is quite possible that certain types of policy may give rise to undesired fluctuations, or even cause a previously stable system to become unstable, although the final equilibrium position as shown by a static analysis appears to be quite satisfactory.
"Second, the effects of variations in prices and interest rates cannot be dealt with adequately with the simple multiplier models which usually form the basis of the analysis."
Using electrical engineering as his inspiration, he developed a dynamic circuit diagram version of a multiplier-accelerator model:
Figure 6: Phillips's circuit diagram of a multiplier-accelerator model
He then built two physical versions – one using water, the other an analog computer using valve technology – but the economists of his day derided this as "hydraulic Keynesianism”, and they completely ignored his plea for economists to adopt dynamic methods.
He then made the fatal mistake of doing empirical work to support a relation he’d hypothesised as part of this model between economic activity and the rate of change of factor prices:
Figure 7: Phillips's hypothesised nonlinear relationship between economic activity and factor price changes
Some loose wording supported the "trade-off” interpretation of this work rather than the use of it in a dynamic model as he intended:
"Ignoring years in which import prices rise rapidly enough to initiate a wage-price spiral, which seem to occur very rarely except as a result of war, and assuming an increase in productivity of 2 per cent per year, it seems from the relation fitted to the data that if aggregate demand were kept at a value which would maintain a stable level of product prices the associated level of unemployment would be a little under per cent. If, as is sometimes recommended, demand were kept at a value which would maintain stable wage rates the associated level of unemployment would be about 5 per cent."
Voila, his attempt to wean economists to dynamics was derailed. Politicians and many economists grasped at this as a simple "menu” for economic management: choose the employment rate and inflation target you’re comfortable with and that’s all there is to it. This "trade-off” model became essentially identified with Keynesian economics.
In practice, the inevitable failure of the Phillips Curve relation to hold as a static inflation-unemployment pair was seen as a failure of Keynes, leading to the rise of Monetarism and everything that has come after it.
I’m trying to succeed where both Forrester and Phillips failed, by developing a dynamic modelling tool for economists to hopefully entice them away from equilibrium modelling. So why do I think I might succeed where they failed?
Basically, because of timing. Forrester and Phillips tried to wean economists off comparative statics back in the 1950s, when computers were primitive, the economy was going gangbusters, and economists thought they knew it all. Today, computers are going gangbusters, the economy is sick, and even economists are being forced to admit that they know very little about the economy (check out this recent post by Mark Thoma on that front). If there’s any time when young economists are likely to consider a different approach to modelling the economy, it’s now.
But there are plenty of programs already out there; why build a new one? I’ll answer that in a later piece. For now, here’s Goodwin’s model as simulated in Minsky.
Figure 8: Goodwin's cyclical growth model in Minsky
And here are the equations behind the model, as generated by Minsky.
The Twitter Dialogue