Analyzing and Understanding ABMs

EES 4760/5760

Agent-Based & Individual-Based Computational Modeling

Jonathan Gilligan

Class #24: Thursday, Apr. 5 2018

Schelling Model

Schelling Model of Housing Segregation

Model Overview

  • Turtles represent households.
    • Two colors of turtles: red and blue
    • Turtles have one state-variable: happy? (true or false)
  • There is a global variable %-similar-wanted and a turtle is happy? if at least this fraction of its neighbors have the same color as its own.
  • At each tick, unhappy turtles move to a random empty patch.
  • When all turtles are happy?, the model stops.



Vary %-similar-wanted and the density of turtles on the patches.


  • Try extreme values of parameters:
    • Set density and %-similar-wanted to different combinations near maximum, minimum, and in the middle.
    • What do you see?

Extreme Values

  • Set density to 75% and set %-similar-wanted to 95%
  • Press setup and then press go
    • What happens?
  • Now, with go still pushed, slowly reduce %-similar-wanted.
    • Now what happens?

Systematic experiment:

  • Using Behaviorspace, create a new experiment to vary %-similar-wanted
    • Set _time limit to 1000
    • Set density to 75
    • Measure percent-similar
  • What do you see?
  • Try adjusting both %-similar-wanted and _density

Visualizing Structures

  • Add the following to the procedure to update-turtles, after set happy?

    ifelse happy? [ set shape "square" ] [ set shape "square-x" ]
  • Repeat the exercise of:
    • set density = 75% and %-similar-wanted = 95%,
    • press _setup and go
    • gradually reduce %-similar-wanted
  • Is it easier to see the emerging patterns now?


Another Heuristic

  • When you’re at an interesting value for one parameter (e.g., %-similar-wanted = 75%), vary other paremters (density).

Other heuristics:

  • Use several currencies to evaluate models
    • Statistical analysis of spatial patterns and time-series
    • Analyze agent properties: Are they unimodal or multimodal (e.g., are turtles divided into distinct groups of rich/poor, healthy/sick, etc., or distributed continuously around one dominant value of state variables?)
    • Stability: Does system return quickly to steady state after it’s disturbed?
  • Simplify models:
    • Make all patches the same
    • Make all turtles the same
    • Reduce places where you use stochasticity
    • Use fewer turtles and patches
  • Explore unrealistic scenarios
  • See book for heuristics for statistical analysis of model output…