Please enable JavaScript to view this site.

Vensim Help

Navigation: Reference Guide

Structural Intelligence (Loop Dominance)

Scroll Prev Top Next More

A simulation shows you what a model does. Structural intelligence (loop dominance) analysis helps explain why: it identifies which feedback loops are responsible for the behavior at each point in time.

The strength of a loop is not fixed. As a model runs, the loops that drive its behavior change: a reinforcing loop may drive early growth, and then a balancing loop may take over and cause the slowdown. Finding these shifts by hand is slow and difficult, especially in larger models. Vensim can measure them automatically while the model simulates, and show the result on the sketch.

Two ways of measuring dominance

Vensim offers two complementary methods. Both start from the same information about the model, but they answer different questions.

Method

Question it answers

Cost

Loop impact and energy (Hayward and Boswell; Hayward and Roach)

Which loop is pushing each stock right now, and which loop has done the most work on it over the run?

Fast

Eigenvalue analysis (Forrester; Kampmann; Oliva)

Which loops control the system's behavior modes - its growth, decay and oscillation?

Slower, especially for large feedback blocks

The two methods usually point to the same loops at about the same times. Where they disagree, that is often worth looking into: for example, a loop that never dominates at any one moment but does the most work over the whole run.

How it works

At regular points during the simulation Vensim works out how each rate would change if each stock changed by a small amount. This gives a linearized version of the model at that moment (the Jacobian, or dynamics matrix). Vensim then:

•splits the model into feedback blocks - groups of stocks that feed back on each other. Stocks that only feed forward into other parts of the model are handled separately;

•finds an independent loop set for each block - a set of loops that between them describe all the feedback in that block (Kampmann; Oliva);

•calculates a dominance measure for each loop at each analysis time.

All of this happens automatically. You do not need to identify the loops yourself.

Turning the analysis on

Structural intelligence (loop dominance) analysis is switched off by default. You can turn it on in any of these ways:

•In the Simulation Control dialog, use the Structural intelligence (loop dominance) group. Check Loop impact and energy for the fast analysis, or Eigenvalue analysis (slower) for both. Eigenvalue analysis always includes loop impact, so the loop impact box is checked and greyed out when eigenvalue analysis is on.

•In a command script (Vensim DSS only), use SIMULATE>LINEARIZE|1 for loop impact, or SIMULATE>LIN_INTEL|1 for eigenvalue analysis.

The setting is saved with the model, so it stays on for later runs until you turn it off.

After simulating, click the Replay button on the main toolbar to step through the run and see the dominant loops highlighted on the sketch. See Replaying simulations.

Output files

The results are always stored in the run (the dataset), where the Simulation replay tools read them. If you also want the results as tab-delimited text files, for example to analyze them in Python or a spreadsheet, check Create analysis output files (.tab) in the Simulation Control dialog, or, in Vensim DSS, use SIMULATE>LIN_CREATE_FILES|1 in a command script. The files are written to the model folder and their names start with the run name, for example base_linear_narrative.tab. The narrative file is a readable summary and is the best place to start.

New models have this option on by default. Models created in older versions of Vensim have it off, so that opening an old model does not fill its folder with files you did not ask for.

When the analysis runs

The analysis describes a single simulation, so it only runs for an ordinary simulation of a model that has at least one stock. It does not run:

•in SyntheSim;

•during sensitivity simulations;

•during optimization. To analyze an optimized result, simulate the model normally using the optimizer's .out file as a changes file;

•in games or Reality Check runs.

Control settings

You can fine-tune the analysis by adding any of these constants to your model. All are optional.

Constant

What it does

LINEAR SAVEPER

The time between analysis points. If it is not set, Vensim uses (FINAL TIME - INITIAL TIME) / 20, or SAVEPER if that is larger. A smaller value gives a more detailed picture but takes longer.

LINEAR TRIGGER

If this exists, Vensim analyzes the model at every time step where it is non-zero, and LINEAR SAVEPER is ignored. Use it to focus on a particular period, for example with a PULSE TRAIN or an IF THEN ELSE on Time.

LINEAR MAX SIZE

The largest feedback block (in number of stocks) that will be analyzed. Default 500, minimum 10. Larger blocks are skipped and Vensim shows a warning that names the block size and this constant.

LINEAR ACTIVE ONLY

If non-zero, stocks that are not changing are left out of the analysis.

The limit in LINEAR MAX SIZE applies to each feedback block, not to the whole model. A model with thousands of stocks can still be analyzed quickly if its feedback is organized into small blocks.

Things to keep in mind

•Setup time. Before the first time step Vensim traces the causal structure of the whole model. This is instant for small models but can take a noticeable time for models with thousands of stocks.

•The results are local. Each analysis point describes the model as if it were linear around its current state. Most models are nonlinear, which is exactly why dominance shifts, so read the results as "what is driving the model at this moment" rather than as a fixed property of the model.

•Watch for sudden changes. Where a lookup reaches the end of its range or a MIN or MAX function switches, the linear picture can change abruptly. The loop impact results report how much of each stock's behavior the linear model cannot explain (the residual), which shows you where this is happening.

•It explains the model, not the real system. Dominance analysis tells you why your model behaves as it does. It is an aid to understanding and testing a model, not a substitute for validation.

See also

•Eigenvalue analysis

•Loop impact and energy

•Replaying simulations

•Showing loop dominance on the sketch

•Structural intelligence (loop dominance) references