Loop Analyst
Software for Qualitative Loop Analysis
Software
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
- C. J. Puccia and R. Levins. 1986. Qualitative Modeling of Complex Systems: An Introduction to Loop Analysis and Time Averaging. Harvard University Press, Cambridge, MA.
- R. Levins. 1974. Discussion Paper: The qualitative analysis of partially specified systems. Annals of the New York Academy of Sciences, 231: 123138.
- J. M. Dambacher, H.-K. Luh, H. W. Li, and P. A. Rossignol. 2003. Qualitative stability and ambiguity in model ecosystems. The American Naturalist, 161(6):876888
- J. M. Dambacher, R. Levins, and P. A. Rossignol. 2005. Life expectancy change in perturbed communities: Derivation and qualitative analysis. Mathematical Biosciences, 197:114
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:
|