Loop Analyst

Software for Qualitative Loop Analysis

Software

Installation

About Loop Analysis

To Do List

Contact

Software

Screenshot of Loop Anlayst showing a ten variable system graphed using an emanating colors scheme There is a beta standalone GUI version of Loop Analyst for OS X 10.8.5 and higher v. beta 5 (59 MB). It is much faster than the R version. A help page is available here, and I am highly ammenable to suggestions, and questions. The archive includes a comunity matrix library file of five published community matrices (Published.cml), and the python sources to this version. Graphing capability is provided through graphviz. Please see the installation instructions on the help page for details.

An R package has implemented the method without a GUI. Loop Analyst provides tools for the construction and output of community matrices, computation and output of community effect matrices, tables of predicted correlations, and feedback, path and loop enumeration tools. This implementation includes output support for graphs in .dot file format for use with visualization software such as graphviz (graphviz.org).

The latest update adds a new function, make.clem(), to compute a matrix of changes in life expectancy/turnover in each variable given a press perturbation in any variable.

The make.cem() function was validated against loop analyses in numerous published studies (list forthcoming). The weighted feedback functions have been validated against results from the analysis of 30 randomly-generated community matrices (five in each size category ranging from three variables to eight variables) with moderate connectance using Jeffrey Dambacher’s software for Maple in Revision 2 of Ecological Archives E083-022-S1, Supplement 1 to Ecology 83:1372-1385. The results matched exactly. Here are the 30 matrices in Rdata format, and the results from the analysis using Dambacher’s software in pdf.

About Loop Analysis

Loop analysis is a body of methods for understanding the nature of system behavior in systems of causal feedback. Originally devised by Richard Levins as a means of creating testable hypotheses about the behavior of dynamic systems in population biology, loop analysis has a very general application in sciences concerned with modeling causal feedback.

The core of the method involves the representation of a system in both a graphical form using signed digraphs, and in matrix form using square (-1, 0, 1) matrices. These representations are used to qualitatively describe direct causal effects (including self-effects) between the component variables of the system as increases, decreases, or has no effect, under and assumption that the turnover of each variable is within approximately an order of magnitude. The community effect formula below is then applied to create a table of predictions of the indirect effect on each variable given a positive signal to any particular variable.

where:

for L(m,n) = m disjoint loops (simple cycles) spanning exactly n variables.

References

To Do List

There are big plans afoot for Loop Analyst, albeit slow moving ones. I am migrating the code to python to create more platform independent code, and independent binaries with a snazzy GUI driven interface for the management and analysis of libraries of matrix models, with graph layout built in. See the software section for the beta version. My current to do list also includes:

  • Add a function F.k to compute the feedback for a system at a specific level
  • Identification of specific ambiguous subsystems in the community effect matrix
  • A menu interface for the command line programs
  • Performance tweaks: Levins’ equation becomes uncomputable in an acceptable time frame with great rapidity as the number of variables increases. My algorithm takes advantage of non-connectance between variables and moment of identifying ambiguity to cut out some of the computing time, but there’s plenty of room for improvement.
  • Implement methods for transient and periodic perturbations along the lines of R.H. Flake’s article in Ecological Modelling 9(2).
  • Create a tutorial for the software.

Contact

I am happy to take feedback, respond to requests for assistance, and consider feature requests. I can be contacted at: