System Dynamics Tutorials

These tutorials serve as an homage to the lesser known open source curriculum from which I first learned about system dynamics modelling: Road Maps, developed by the System Dynamics in Education Project (SDEP) at MIT under Jay Forrester. The core content of these tutorials is adapted from the Road Maps source material, but with a modern spin. The rise of data science platforms such as Python and R means that the power of highly technical SD modelling is accessible to anyone who knows how to install a few free software libraries. These tutorials step through relatively simple R code that creates models and reproduces key Road Maps examples.

 

SD Tutorial 1:

First-order positive feedback

Positive feedback is best understood as exponential growth—the virtuous (or vicious) cycle. Systems that produce such behavior have a common and simple structure. Here we learn how to model these systems with a basic application of the deSolve package for R.

SD Tutorial 2:

Behavior of first-order positive feedback systems

A positive feedback systems can produce a range of behaviors, depending upon that system’s initial conditions. Here we learn how to perform a sensitivity analysis on a system using R’s purrr package

SD Tutorial 3:

First-order negative feedback

Negative (or balancing) feedback is most often associated with the behavior of exponential decay. Systems that produce this behavior tend toward less and less change and a static state. We continue using deSolve for R and write some increasingly advanced code for effective visualisation of results.

 

Analytics Tutorials

These general-purpose analytics tutorials seek to explain highly technical methods to non-experts, though technically inclined, audiences. They cover content I have used frequently in my career and research, but which I have felt are often not covered in a way that makes their power easily accessible to the average but competent analyst.

 

Principal component analysis.

Complex data sets can leave us scratching our heads about where to begin. PCA can help address the following questions: Which variables are related? Which relationships are key? How can I communicate insight?

dea_icon.png

Data envelopment analysis

Tutorial coming soon…

map_icon.png

Functional programming

Tutorial coming soon…