Heart of the Systemâ„¢ shows how each rate in your model responds when a stock is moved away from its current value - not by a tiny amount, but across a wide range. It turns each causal link between a stock and a rate into a curve you can look at.
The other two structural intelligence methods, loop impact and eigenvalue analysis, are based on a straight-line (linear) picture of the model at each analysis point: they use only the slope of each link at the current value. Heart of the System shows the whole curve, so you can see whether that straight-line picture is a good one, and where the model has thresholds, saturation or other strong nonlinear effects.
Heart of the System is a Ventana Systems method, developed by David Peterson.
How it works
At each analysis point Vensim takes each stock in turn and sets it to 21 different values around its current value, while holding every other stock where it is. For each value it recalculates the rates that the stock affects. This gives one curve for every causal (stock, rate) pair, at every analysis time.
•The scan runs from the stock's lower limit (or zero) up to its upper limit (or twice its current value). If you have given the stock a range in its equation, the scan uses that range.
•Only rates that the stock can actually affect are included.
•The point in the middle of each curve is the model's actual state at that time. The slope of the curve at that point is exactly the number that loop impact and eigenvalue analysis use.
Turning it on
•In the Simulation Control dialog, on the Run Information page, check Heart of the System in the Heart of the system box. It can be used on its own or together with Loop impact and energy and Eigenvalue analysis (slower).
•In a command script (Vensim DSS only), use SIMULATE>LIN_HEART|1. See LINEARIZE, LIN_HEART, LIN_INTEL, LIN_CREATE_FILES.
Heart of the System uses the same analysis points as the other methods, so LINEAR SAVEPER and LINEAR TRIGGER control how often it runs, and it only runs for an ordinary single simulation. See Structural Intelligence (Loop Dominance) for these settings.
If Create analysis output files (.tab) is checked, the results are also written to two tab-delimited files in the model folder: <run>_linear_hos.tab, which holds every point on every curve, and <run>_linear_hos_meta.tab, which has one summary row per curve, including how far the curve is from a straight line, whether it changes direction, and how lopsided it is. The summary file is a quick way to find the most nonlinear links in a large model.
Viewing the results
Heart of the System is an analysis tool. If it is not on your analysis toolbar, add it to your toolset (see Changing the Default Analysis Toolset and Using Analysis Tools). After simulating with Heart of the System turned on, click the tool to open its window.
Control |
What it does |
|---|---|
Runs |
Chooses which run to show. The run must have been simulated with Heart of the System turned on. |
Perturbed stock |
The stock that is moved across its range (the horizontal axis). |
Rate |
The rate whose response is shown (the vertical axis). |
Show all graphs |
Shows the curves for all the rates the selected stock affects, instead of one at a time. |
Highlight series |
Picks out the curve for one analysis time, so you can follow how the curve changes during the run. |
The graph type is set in the tool's options (Heart of the system, output options):
•XY - rate against stock value, with one curve for each analysis time.
•3D Scatter and 3D Surface - add time as a third axis, so you can see how the whole curve changes over the run. Use the sliders to turn the view.
The options dialog also sets the width and height of the output window.
Reading the curves
What you see |
What it means |
|---|---|
A straight line |
The link behaves linearly around the current state. Loop impact and eigenvalue analysis describe it well. |
A curve |
The link is nonlinear. The linear results are accurate close to the current state, but less so for larger changes. |
A flat section |
A threshold or saturation: over that range the stock has little or no effect on the rate. If the current state is on a flat section, the link looks inactive to the linear methods even though it is there in the model. |
A curve that changes shape over the run |
The strength of the link changes as the model moves. A link that is nearly straight early on can become strongly curved later. |
A curve that rises then falls (or the reverse) |
The effect of the stock reverses part way through its range. This is often behind loops that change polarity. |
Using it with the other methods
•Use eigenvalue analysis or loop impact to find the loops and stocks that dominate at a particular time.
•Look at the Heart of the System curves for the links in those loops at that time.
•If the curves are close to straight, the dominance results can be trusted over a wide range of conditions. If they are strongly curved, or the current state sits near a bend or a flat section, treat the results as true only close to the current state - a small change could shift which loop dominates.
Limitations
•Each stock is moved on its own, with all other stocks held fixed. In a real simulation stocks move together, so effects that depend on two stocks changing at once are not shown.
•The default range (zero to twice the current value) is a rule of thumb. For stocks that are close to zero, or that can be negative, give the stock a range in its equation so the scan covers sensible values.
•The scan evaluates the model many times at each analysis point, so it adds to the simulation time. Use LINEAR SAVEPER to analyze less often if it is slow.
See also