Computational Modeling

1. Identify your research question and the empirical target. The empirical target is the outcome (dependent variable) that you are trying to explain. Your theoretical argument determines the key parameters (independent variables) that you believe influence the outcome that you want to explain.
2. Sketch an outline of the model on paper/whiteboard/etc. Note: Do not get ahead of yourself and start directly programming the model. You want to get a sense of how you want to structure the model, what parameters to include, how are the agents going to make their decisions and in what order, and so on.
3. Write pseudo code, again using paper/whiteboard/etc. Pseudo code is a short hand version of the model that does not actually use the programming language of the software you are using. For a good example, see the appendix in Cederman (American Political Science Review, 2003) from the optional readings in Lesson 5.
4. “Borrow” code from existing models that perform similar functions to the model you want to create. The Models Library in NetLogo as well as the NetLogo Modeling Commons are good places to examine existing models.
5. Make small incremental changes to your code and do example (non-batch) runs along the way to make sure that you do not “break” the model.
6. Write code that produces outcomes (i.e., data, figures, etc.) that are expected if your code is actually correct. Note: your code may run perfectly well but not necessarily work properly if you do not program these “sanity checks.” For example, suppose you want to assign a turtle a variable values from −1 to + 10 and then inspect a turtle or ask for the minimum and maximum values of that variable for all turtles. If the value of that variable falls outside the specified range then there is a problem with the way you implemented that variable.
7. Create methods to collect data on the outcome that corresponds to your empirical target.
8. Run simulations in batch mode (using the Behavior Space) that vary the key parameters of interest.
9. Present and interpret simulation results. Note: do not forget to properly label the axes, labels, titles, etc.




Sample Solution