Create Your Own Model
Assignment
Develop your own model of any system of your choice using the steps described on this page
Prepare a written Process Flow and instructions so others can replicate and/or enhance that model
Submit the model and all connected instructions.
Below you will find two examples, templates and instructions for this assignment. Go to the end of the page for detailed submission information.
You may make your model in any modeling platform. We recommend starting with SageModeler, Stella Online, or NetLogo. Regardless of the modeling program you choose, you should read Section 1 which relates to the preparatory work to make a model.
Section 2 contains a complete process flow, with detailed explanations, illustrating how to create and refine a model using SageModeler.
Section 3 is another detailed process flow, this time using Stella Online.
Overall Process Flow:
Define the Issue
Develop a Hypothesis (I) – Model Structure
Develop a Hypothesis (I) – Influence Diagram
Refine the Influence Diagram
Develop a Hypothesis (II) – conceptualizing influence within the system
Develop a Set of Questions
Test your Model to Answer the Questions
Find and Summarize Peer-Reviewed Research Articles
Refine the Influence within the system – Clearly show changes made and reasoning
Share and Discuss
Note: This process should be fluid, dynamic, and responsive to the specific problem at hand. Many parts of the process will be repeated as you work towards developing a successful model.
Rubric
This is how your model will be evaluated. Read the rubric to learn about the qualities that make a model exceptional.
Section 1: Developing your Model
1. Define the Issue
Identify an issue that has sufficient complexity that it will not be easily answered with a simple one-factor analysis. Consider any kind of system in your life that involves multiple moving parts.
Examples that will be developed in detail:
I want to understand what causes people to gain or lose weight.
I want to understand what makes my robotics team good or bad.
2. Develop a Hypothesis (I) - Model Structure
Identify the central variable(s) (one or two) which relate to the issue. Write them near the center of a piece of paper or in an organizational computer program like SageModeler or even Powerpoint. Surround them with a box for clarity. These are the outcomes you are interested in that will be impacted by all other parts of the model.
Brainstorm the elements which affect those variables. Write them around the central variable(s). Don’t worry about connections right now. [In system terminology elements are synonymous with nodes]
Model Structure - Weight Management
Model Structure - Robotics Team
3. Develop a Hypothesis (I) - Influence Diagram
Draw connection arrows from the element creating an effect, to the element feeling the effect. Try to create DIRECT connections. [In system terminology connection is synonymous with edge]
Include + or – signs to show whether the influence is positive (increase causes increase, decrease causes decrease) or negative (increase causes decrease, decrease causes increase).
4. Refine the Influence Diagram
As you create the influence diagram, it is likely that you will run into some roadblocks. For example, “What types of foods I eat” cannot be positively or negatively linked to “How many calories I take in” because it is too vague. It may increase calories if the diet is heavier in junk food, while it may decrease calories if the diet is heavier in fruits and vegetables. To break through this roadblock, refine your model by making it more specific. Another example is “Am I trying to lose weight?” To refine this, just make it more specific, for example turning it into “Trying to Lose Weight”. You can see these changes in the left and right models below.
Another problem that you may run into is that you may not be sure about whether an element will impact another element positively or negatively. For example, in the diagram above, there are question marks along the connectors between “How much we practice” and each of “How often the robot breaks” and “How well the team works together”. In some scenarios, the robot may start to break more often as it is used more often. In other cases, the robot may be repaired more frequently with more practice so it breaks less. Some teams work more efficiently over time, while others fractionate and work less efficiently as conflicts evolve and are not handled. When we are not sure, it is because there are two or more competing effects which have not been clearly labelled in the model.
To break through this roadblock, try to separate the two effects by adding additional elements. For example, here I have removed the connector from “How much we practice” to “How often the robot breaks” and added in a positive effect (quality control) and a negative effect (how often we drive the robot).
From here, you need to select a modeling program to use. SageModeler is the choice for semi-quantitative analysis where you may not understand the relationships in detail. It is also easier to go from an Inference Diagram to a model with SageModeler. Stella Online or NetLogo are the choices for more quantitative modeling where relationships are better defined numerically.
Section 2: SageModeler Process Flow Example
5. Develop a hypothesis (II) – conceptualizing influence within the system
Let’s map out the influence diagram for the system related to weight. Here’s one possible model:
In SageModeler, positive connections are shown with red arrows where the strength of connection is indicated by the arrow width. Negative connections are shown with blue arrows. I have also included screenshots on each arrow to show the specific graphical relationship picked for this model.
6. Develop Questions
The work of modeling comes in terms of refining the influences. This is where testing and research come into play. To test your model, develop a set of questions which you hope that the model can answer. Here are a few examples:
A. Which variable has the biggest impact on weight? If I wanted to lose weight and only change ONE thing, what would that thing be?
B. Suppose that I want to lose weight, but I also really want to eat junk food (cause I like it!). What do I need to do?
C. How big a role do people’s metabolism really play in their weight?
D. Do I really need to exercise? I don’t like it that much.
7. Test the Model (SageModeler)
Now let’s use the model to try to answer these questions and see how it does.
A. Which variable has the biggest impact on weight? If I wanted to lose weight and only change ONE thing, what would that thing be?
Based on this model, all the effects are about equal. This makes sense because I chose “a little” for most of the relationships.
B. Suppose that I want to lose weight, but I also really want to eat junk food (cause I like it!). What do I need to do?
If we exercise a lot but eat a lot of junk food, what does the model show?
There is a small difference; the poor-diet exercise junkie ends up with a slightly smaller weight than the couch-potato. But you can also see that when junk food is set to zero, the calories consumed is also zero, which makes no sense. This points out a flaw in the model; there is no base input of calories!
8. Gather data from literature
The internet may be able to provide you with some information which is relevant to your model. For example, a search of Google Scholar (“research losing weight effects of metabolism exercise diet”) found multiple hits, including Miller et.al. “A Meta-analysis of the past 25 years of weight loss research using diet, exercise, or diet plus exercise intervention”, International Journal of Obesity (1997) 21, 941 which includes this table:
This data suggests that diet is much more important than exercise, although the study only investigated obese adults, and we would need to make the assumption that this applies to all people, which may or may not be true.
9. Refine the influence within the system (SageModeler)
By testing the model and gathering information from the literature, we have identified flaws in our model and identified ways to improve it.
Repeat 7. Test the Model (SageModeler)
Now that we have updated our model, we can see whether it makes more accurate predictions. You can see that eating has a greater impact on weight than exercise, which correlates better with the data we found. However, the effects of junk food and healthy food are currently the same due to the limitations of SageModeler. Metabolic rate has a significant impact, about the same magnitude as eating, and it is unclear how accurate this is.
With further iterations of research, modification, and trial runs, you can fine tune your model until it is a reasonable approximation of reality. Then you can start asking and answering questions with your model.
10. Share and Discuss
It's important in any scientific process to share your thinking and findings with others and learn from their feedback. Here are some things you might raise with a colleague as you discuss the model you built:
Pros of this model: This model accurately includes many of the factors involved in weight change. The relative impacts of food and exercise agree with a literature source.
Cons of this model: The model does not include a verified magnitude of influence of metabolism. The effect to junk food is the same as the effect of healthy food. The model does not include any of the mental aspects involved in weight.
Section 3: Stella Online Process Flow Example
Let's go back to the beginning. We have an initial influence map, but we want to build a more quantitative model, so Stella Online would be a great choice. Note that Stella Online only allows a maximum of two stocks - in order to do more, you have to pay for the professional version. A good free alternative would be NetLogo.
5. Develop a hypothesis (II) – conceptualizing influence within the system (Stella Online)
Stella pushes us towards being more quantitative compared with SageModeler. In this program we must choose stocks and flows explicitly. For the weight model, the simplest approach would be to make weight a stock, and then have calories in and calories out as flows. Since there are two distinct and separate usages for calories (base metabolism and exercise), I have separated them into two flows.
We can now introduce various other elements as converters which will modify the flows. In addition, in our influence diagram we showed that weight could influence all three of the flows, so those connectors are included as well.
Now comes the tricky part. Stella wants specific equations to relate all the elements. We can use research as an aide. For example, online research tells me that humans need around 15 kcal/day/lb. (Note: the "Calorie" on food labels and discussed in the context of eating is actually the unit kilocalories, or kcal)
We can take this quantitative starting point and build relationship equations based on our prior knowledge about how the elements of this system are related.
Calorie_Intake = 15*Weight* Junk_Food_Modifier*(1-Dieting_Modifier)
This equation assumes that you eat 15 kcal times your weight normally. If you eat a lot of junk food, this value is scaled by up 110%, 120%, or 130%. If you are dieting, the caloric intake is multiplied by a factor of 90% or 80%. The two modifiers are changed with sliders.
Base_Calories = 15*Weight*Metabolic_Base_Rate
The Base Calories are 15 kcal times your weight times a metabolic factor which can change caloric usage between 80 and 120%. The metabolic factor is changed with a slider.
Exercise_Calories = Weight*Exercise_Level*0.1
Exercise calories are basically the same as base calories except that they are set to be 10% because it should be a smaller effect.
6. Develop Questions
Let's revisit the set of questions we developed with the SageModeler process flow. These are questions which we hope our model can answer, and we can use them to test whether our model gives reasonable results.
A. Which variable has the biggest impact on weight? If I wanted to lose weight and only change ONE thing, what would that thing be?
B. Suppose that I want to lose weight, but I also really want to eat junk food (cause I like it!). What do I need to do?
C. How big a role do people’s metabolism really play in their weight?
D. Do I really need to exercise? I don’t like it that much.
7. Test the Model (Stella Online)
A. Which variable has the biggest impact on weight? If I wanted to lose weight and only change ONE thing, what would that thing be?
Running this model does NOT produce results that agree with reality. For example, with “baseline” settings of healthy eating, not dieting, moderate exercise, and an average metabolic rate, weight is seen to decrease, which makes sense, but at a rate which is much too fast.
But if we introduce junk food, weight increases exponentially to astronomical values!
8. Gather Data from Literature
At this point, I would actually skip step 6 because the model has major problems which need to be addressed before the literature is even relevant. The process flow is a set of guidelines: strict adherence may not be useful.
9. Refine the Influence Within the System (Stella Online)
Should there even be any exponential variance at all? That sort of behavior doesn’t agree with intuition. In addition, there is a sort of circular reasoning related to having the factor of 15 in both the Calorie Intake flow and also in the Base Calorie flow. We could create a new variable called Initial Weight and modify the Calorie Intake flow using this variable as shown below:
Repeat 7. Test the Model
We see interesting behavior; big fluctuations in weight but apparent stability around an equilibrium. The fluctuations are too big to be realistic and the timescale is way too fast, but is the behavior something that makes sense in terms of human behavior?
Not really; we have a unit problem. The stock measures weight, while the inputs and outputs are calories. The stock is small relative to the size of the inputs and outputs, so there is very little buffering going on and the system is highly sensitive to small changes in inputs and outputs. This model is like having fire hoses connected up to a pail of water. The level of water in the pail will change drastically. In reality, weight is a large quantity compared to calories, more like fire hoses connected to a decent sized pond.
Repeat step 9. Refine the Influence Within the System (Stella) (with additional research (step 8) and in collaboration with colleagues (step 10))
To refine the model, I have adjusted the main stock to be calories. It has the same input flows and output flows. There is a converter called weight which depends on calories, but it takes a lot of calories to affect the weight (“there are 3,500 calories in a pound of human fat”, Dr. Donald Hensrud, Huffington Post). The calorie stock can also be a negative number now (that’s what the figure means). If calorie intake exceeds calorie outflow, then calories is a positive number and weight will increase. The opposite is true when outflow exceeds intake.
Repeat step 7. Test the Model (yet again!)
Now the model seems to make more sense. At a base metabolic rate of 1.0, not dieting, with ½ hour of level 2 exercise daily and 1.1 junk food (a bit of junk food), a 150 pound person stays at essentially the same weight over a 12 week period.
The table below summarizes changes in weight under various conditions in our model.
Overall this Stella model now has results that make sense, although the magnitudes of change and rates do not make sense yet. Models can always be improved, and always have flaws.
10. Share and Discuss
Some elements of this model you might discuss with a colleague:
Pros of this model: This model quantitatively captures most of the factors involved in weight change. It involves rates which are based on accepted values (calories burned per pound per day, exercise calories burned per pound per day). It includes realistic feedback in that current weight affects all calorie flows.
Cons of this model: Weight changes predicted by this model have not been checked for accuracy in terms of magnitude or rate. The relative impacts of the various factors (metabolism, diet, and exercise) have not been checked.
Creating and Submitting Your Model
Now that you have seen how a model can be developed from start to (almost) finish, it's your turn! Identify a system of interest and start building a model using the tool of your choice.
Choosing a Tool
There are many options - below you can find a list, but it is not comprehensive - please feel free to discover and use different tools. Remember, you can always switch tools if you find one is not accomplishing what you hoped.
Stella Online (free version limited to 2 stocks)
Stella Professional or Architect (paid)
SageModeler
NetLogo (Standard)
NetLogo (Systems Dynamic Modeler)
InsightMaker
Vensim
R
Python
etc!
Developing your Model
Follow the steps of the Process Flow (see top of this page) to develop and refine your model. Keep a record of your work as you go! If you do some work on paper, keep it together in a notebook or folder for later reference. As you build your model digitally, take screenshots of interesting steps in your work - even if it ends up being a mistake! Use the provided process flow examples as a guide for how to helpfully record your work.
Preparing your Model, Process Flow, and Instructions
You may choose what format to submit your model in. You can include raw model files, screenshots and images, text documents, PDFs, Powerpoint presentations, etc. Whatever format(s) you choose, you must include the following elements:
Your final model
A record of your Process Flow to create your model
Process Instructions for someone to replicate your model
We have created a Powerpoint template that you can use as a starting point for submitting your work: Submitting Your Model - Template (PPT)
Please take this 1-minute survey, now that you've completed this activity. We are interested in learning about your experience so we can improve these resources. All responses to this survey are anonymous, all questions are optional, and your feedback is much appreciated.
Back to other modeling exercises
Funding to support the development of this lesson was provided by the National Science Foundation Award DBI-1565166 & 0640950. The content of these pages was created by students for students with the help of teachers and scientists. The views expressed herein are those of the authors and do not necessarily reflect the views of NSF.
Curriculum Contributors and Supporters
Funding to support the development of this lesson was provided by the National Science Foundation Award DBI-1565166 & 0640950. The content of these pages was created by students for students with the help of teachers and scientists. The views expressed herein are those of the authors and do not necessarily reflect the views of NSF or ISB.