Structural Dominance Analysis Toolset
v1.01 March 14, 2018.
Sergey Naumov and Rogelio Oliva
MIT System Dynamics Group
This toolset integrates into a single piece of software the utilities and algorithms necessary to perform Structural Development Analysis as described in Oliva (2015). Specifically, the toolset automates:
i) the parsing of the Vensim model into the Mathematica notation,
Loop Eigenvalue Elasticity Analysis (LEEA)
ii) the identification of a Shortest Independent Loop Set,
iii) the linearization and computation of the system eigenvalues at specified points in time,
iv) the generation of the tables and graphs of loop gains and loop influence on eigenvalues,
Dynamic Decomposition Weight Analysis (DDWA)
v) the equations and graphs that describe the dynamic decomposition weight of state variables, and
vi) the generation of the tables that report parameter influence on eigenvalues.
A quick description of the ideas behind the
toolset and a demonstration of its use can be seen in this video.
The toolset replaces the tools and utilities previously made available with the publication of the articles and book chapters listed below. With the exception of formatting issues (and some typos that were corrected in the second edition of the Encyclopedia chapter), the toolset replicates the results LEEA reported in the following articles. Please refer to the electronic supplements of these publications to obtain the accompanying Vensim models.
Kampmann CE, Oliva R. 2006. Loop eigenvalue elasticity analysis: Three case studies. System Dynamics Review 22(2):141-162.
Kampmann CE, Oliva R. 2008. Structural dominance analysis and theory building in system dynamics. Systems Research and Behavioral Science 25(4):505-519.
Kampmann CE, Oliva R. 2009. Analytical methods for structural dominance analysis in system dynamics. In Meyers R (ed.), Encyclopedia of Complexity and Systems Science, pp. 8948-8967. Springer: New York.
Saleh M, Oliva R, Kampmann CE, Davidsen PI. 2010. A comprehensive analytical approach for policy analysis of system dynamics models. European Journal of Operational Research 203(3):673-683.
Oliva R. 2015. Linking structure to behavior using eigenvalue elasticity analysis. In Rahmandad H, Oliva R, Osgood N (eds.), Analytical Methods for Dynamic Modelers, pp. 207-239. MIT Press: Cambridge, MA.
Oliva R. 2016. Structural dominance analysis of large and stochastic models. System Dynamics Review 32(1):26-51.
In the process of
testing the utility, however, we uncover that different set of assumptions were
used in the computations of the weight elasticities to parameters in the last
four papers. Assessing the implications of different assumptions and expanding
the application of DDWA to different time periods, revealed a better set of
assumptions and a more consistent interpretation of DDWA. We report and
document our findings in
Naumov S, Oliva R. 2018. Refinements to Eigenvalue Elasticity Analysis: Interpretation of parameter elasticities. System Dynamics Review, 34(3):426-437.
The toolset now reports what we believe are the most intuitive results and the DDWA tables generated for the models in Oliva 2015 and Oliva 2016 no longer match the published results.
Input file: Vensim *.mdl format file
Limitations: The utility has the following limitations:
- Spaces or underscores are removed from variable names to be consistent with Mathematica's notation.
- Special characters in variable names, i.e., names that in Vensim require quotes, are modified to be consistent with Mathematica’s notation.
- Dynamic functions (e.g. SMOOTH, DELAY) are not supported; please replace with explicit stock (INTEG) formulations.
- All equations have to be continuously differentiable (C1). As such, the toolset does not support IF_THEN_ELSE, MIN, and MAX functions nor piecewise linear table functions.
- Macros are not supported.
- Arrays are not supported.
Please see list of upcoming improvements below.
We expect to continue to work in the improvement of this toolset. This the list of improvements we are currently planning in deploying:
• Parsing CamelCase Mathematica and other non-traditional Vensim functions
• Automatic adaptation of non-continuous functions (table functions, MIN, MAX, etc.)
• Loading Data from files in Vensim default format (*.vdf)
• Runge-Kutta integration
• Web-based interface with Mathematica engine behind – no need for a user to have a Mathematica license
• Allowing of non-continuous functions (e.g., PULSE, STEP) in input variables
• Support for dynamic functions (e.g., SMOOTH, DELAY)
Please email the authors requests for additional functionality that would improve Structural Dominance Analysis.
The algorithms implemented within this toolset are the results to years of collaboration with Christian Erik Kampmann, Mohamed Saleh, and Päl Davidsen. We gratefully acknowledge their contribution to this research. Implementation errors and inaccuracies are the responsibility of the authors of the toolset. Rogelio Oliva also acknowledges the insights and encouragement from multiple conversations on these topics with Burak Güneralp.
v1.00
September 2017. Core functionality
v1.01 March 2018. Resolved initialization assumptions and reporting of DDWA output.
© Sergey Naumov and
Rogelio Oliva, 2017, 2018.
Last modified: May 7, 2019.