Systems ecology: a way of thinking

Ecology is messy. When we work in natural environments, we are dealing with inherently complex systems. All elements in a natural system are connected, full of dynamic interactions. Interactions among organisms, between organisms and their environments – these linkages are what makes ecology messy, but also endlessly fascinating.

We can think of humans as just another element in these complex systems. And wildlife conservation and management is the task of manipulating these linkages to meet societal objectives for natural systems.

Although this is not a systems ecology class, systems thinking provides an excellent framework for understanding natural populations, and understanding how linkages (abiotic and biotic environments) might affect them, and how to manage natural populations effectively.

Emergent properties

This is one of the most powerful ideas in systems thinking – when you put many interacting, linked parts together, systems often behave in interesting and unexpected ways!

Specifically, emergent properties are properties of a system that are not themselves properties of its component parts. For example, chemical compounds A, B, and C have no known benefits to humans, but when combined together, they have important medicinal properties; in this case, medicinal properties emerge from a system of chemicals that lack this property in isolation.

Take a classic predator-prey system…

Insightmaker Lynx-Hare example

This is a classic example in population ecology, which we will revisit later in this course - but for now it serves as an example of an interacting system that exhibits an emergent property!

And here’s a more abstract example that illustrates some really cool and complex emergent properties.

Lorenz attractor

InsightMaker: a platform for exploring complex systems dynamics!

InsightMaker is a flexible web-based software for defining interacting systems and for modeling the behavior of inter-connected systems.

Both of the above examples were constructed using InsightMaker.

We will make extensive use of InsightMaker, both during class and in lab- this will give you a chance to play around with complex and dynamic systems (and their emergent properties) without needing a background in computer programming!

Computer programming and systems thinking

Modern computers have reduced or eliminated many of the barriers to understanding how complex systems behave, and as a result specialized software and computer programming are a critical component to modern population ecology and ecosystems science. Armed with basic facility with computer programming, ecologists and natural resource scientists can formalize their understanding of the natural systems in which they work, accounting for complex biological realities that may have been ignored if these tools were not available. In this course, we will learn to harness the power of computer simulations for understanding and managing natural populations.

By the end of this course, students will have the ability to program their own dynamic systems models in InsightMaker, and use specialized software for parameterizing these models (e.g., R)

A famous statistician (George Box) once said “All models are wrong but some are useful”. What he meant was that no model can perfectly describe any real-world system (e.g., population dynamics). However, some models can help us to understand how the real-world works and how to manage natural systems.

This is especially true in ecology: ecological systems are complex and messy, and it is clear that no mathematical model can perfectly describe and predict any ecological phenomena. But that does not mean that ecological models can’t be useful!

In this class (and beyond), don’t be afraid to model messy systems. And above all, don’t be afraid to be wrong - that attitude is the enemy of successful computer programming, and of learning in general! When we build our own population models, we can be entering uncharted territory. And this can be difficult, but ultimately should be fun and rewarding! Keep trying, stay positive, and have fun with it!

Of course, this means not just reading and listening to lectures, it means learning by doing! Instructor-led lectures will be kept short, and we will spend significant class time (and pretty much all of lab time) on our computers, working through problems.

In-class Exercise: InsightMaker

A [Stock] of stuff increases over time via what [Flows In]. Imagine our stock represents Moose! Moose Births would then be the input [Flow In] to the population of Moose over time.

A [Stock] of stuff decreases over time via what [Flows out]. For example, Moose Deaths could represent the [Flow Out] of the population of Moose.

If the [Flow In] is larger than the [Flow Out] then the [Stock] increases over time.

If the [Flow Out] is larger than the [Flow In] then the [Stock] decreases over time.

If the [Flow In] equals the [Flow Out] then the amount in the [Stock] will not change over time.

The important takeaway is that a [Stock] represents a quantity of something. The [Stock] only changes over time via [Flows In] or [Flows Out]. A [Stock] doesn’t change instantaneously. If there are no [Flows] then the [Stock] can not change.

Finally, a [Variable] is an object that stores an important piece of information for your model (e.g., birth rate could be a [Variable] that informs the total [Flow In] of individuals into a [Stock] representing a wild population). [Variables] are generally connected to [Flows] with [Links] – unlike [Flows], [Links] can not change the amount of stuff in a [Stock]. Instead, links simply represent transfer of information among model components.

  1. Open up InsightMaker. If you have never used it before you need to sign up first with a username and password. InsightMaker is free!

  2. Create a new “Insight” (the button to do this should be obvious!) and clear the demo model.

  3. Create a population of Moose! Right click in the center of the screen and select Create Stock from the pop-up. Notice that the name is New Stock and is selected. Type in a name for what this [Stock] represents (Moose!). Note the Configuration Panel on the right is now for a [Stock]. In the configuration panel, set the Initial Value to 50. That is, there will be 50 moose at the start of the simulation!

  4. Specify the births process Select the [Flows/Transitions] button in the upper left corner of your screen. Now notice that when you place your cursor over the [Stock] a small right-arrow displays. Click on the right-arrow and drag a couple inches to the left of the [Stock] and release. Type in a name for what this arrow represents (Births). NOTE: you have actually just created a [Flow Out] of the [Stock]. To create a [Flow In] to the [Stock], click on the Reverse button in the top menu (looks like two opposing arrows). Please do that now. Also in the Configuration Panel set Flow Rate equal to 1.

  5. Now click Run Simulation and you have just finished your first population simulation model.

  6. Can you figure out how to change the settings to run the model for 50 years? Try this and click Run Simulation.

  7. Use the same methods as step 4 to create a [Flow Out], representing deaths. Re-run the model. Is the population increasing or declining? Why?

  8. Change the Configuration Panel for the [Stock] and for the [Flow In] and [Flow Out] so that “Show Value Slider” is set to “Yes”. You can change the model parameterization easily using these sliders. Try it a few times, re-running the simulation after each change. Save your model (“Save” button at the top menu)

Q: Is this Moose model realistic? What are the first things you would like to change to make the model more realistic?

Top Hat: take a few minutes to list the things you would like to change to make this model more realistic!

  1. Finally, take a few minutes to check out “Insights” made by others using the “explore insights” link at the top of the webpage. You can search the database of Insights. Pick one or two of these insights and run them. How does the system behave? Does this make sense to you? We can (and will) add to this database as part of this class!

–go to next lecture–