Skip to article frontmatterSkip to article content

Agent Based Models

University of Central Florida
Valorum Data

Computational Analysis of Social Complexity

Prerequisites

  • None 😏

Outcomes

  • Understand what a model is
  • Know the difference between what we call equation based models and agent based models
  • Understand the key building blocks of agent based models
  • Learn the key components of the Schelling segregation model

References

Why Models?

  • Many topics of interest for social scientists are either unethical or unreasonable to study in a laboratory
    • Impact on communities of upsurge in illicit drug usage (can’t give people drugs to see impact)
    • Flow of traffic given a new infrastructure updates (too costly to experiment with)
    • Impact of new tariffs in international trading relationships (too costly to coordinate legislation and implement)
  • For this reason, we as social scientists turn to models to study our problems
  • A model is a probability distribution over outcomes
  • I’ll repeat for emphasis: a model is a probability distribution over outcomes
    • Example: A model of housing prices doesn’t predict your house will sell for exactly $350,000
    • Instead, it might say there’s a 60% chance it sells between 340,000340,000-360,000, 30% chance between 320,000320,000-340,000, etc.
    • The model describes the likelihood of different outcomes, not a single deterministic answer

Types of Models

  • A model is a mathematical object: equations, rules, distributional assumptions.
  • At its heart, a model is a simplification of some real-world system or phenomenon
    • Much complexity is abstracted away (or not included directly in model)
    • Key aspects relevant for study are modeled explicitly (e.g. trading response to tariffs)
  • For our purposes, we will think of models as belonging to one of two families
    • Equation based models
    • Agent based models

This is a simplification and not a perfect classification (because equation based models have agents and agent based models have equations), but we will be able to draw useful distinctions with this classification.

Equation Based Models

  • An equation based model describes the decision making setting for each agent using mathematical equations
  • Typically, these are posed as (constrained) optimization problems
  • A set of equations is also developed that describe interaction between agents
  • These equations can feature random variables and will require specification of model parameters
  • Most models I study and develop in my economics research are equation based
  • Pros:
    • Allow precise specification of assumptions, incentives, and outcomes
    • Have wide toolbox of numerical optimization, and statistical fitting to “solve” model
  • Cons:
    • Optimization and calibration of parameters can be very difficult
    • Often subject to the “curse of dimensionality”, which limits size and complexity of model

Agent Based Models (ABMs)

  • An agent based model describes rules for how individual agents respond to their environment
  • There are usually many agents, each with a set of properties
  • One common property is the type of the agent: usually drawn from a small/finite set (buyer-seller, parent-child-teacher, sheep-wolf)
  • All agents of the same type have the same set of additional properties
  • Each agent has a state at each time step tt
  • The rules are equations that specify how the state of an agent is updated between periods tt and t+1t+1
    • Rules are common for all agents of a type, but vary based on that agent’s state and property values
    • Rules will often have random variables as well as parameters
    • Rules often include notion of “neighboring” agents
  • Pros:
    • Focus on how an individual should respond in a given state without requiring optimization
    • Because rules are typically mathematically simple, can have many many agents
  • Cons:
    • Often lacks notion of equilibrium (could be a feature)
    • Not very “reusable” -- to study specific topic you usually have to create whole new model
    • Sometimes too many parameters: need for careful calibration

Example: Farmer’s Market Pricing

Consider modeling prices at a local farmer’s market for tomatoes:

Equation-based approach:

  • Define supply and demand curves
  • Solve for equilibrium price where supply equals demand
  • Result: Market clears at $3.50/lb with 500 lbs sold
  • Best for: Understanding average market price, total quantity sold, analyzing policy impacts (e.g., effect of a $0.50/lb subsidy)

Agent-based approach:

  • Individual vendors: each has costs, quality, inventory, and pricing strategy
  • Individual buyers: each has budget, quality preferences, and willingness to pay
  • Rules: Buyers visit stalls, compare prices/quality, purchase or move on
  • Vendors adjust prices based on remaining inventory and time of day
  • Emergent patterns: Price dispersion, quality segments, end-of-day discounts
  • Best for: Understanding why some vendors charge more, how relationships form, impact of vendor reputation

The equation model tells us the average outcome; the ABM shows us the rich variety of individual transactions that create that average.

ABMs

  • For the next few lectures we’ll focus on agent base models
  • We’ll start by outlining the main components of an ABM
  • Then we’ll talk about how we could represent them in Julia using the Agents.jl library
    • This will require a step up in our Julia skills, so we’ll spend some time covering these concepts in greater detail
  • Finally we’ll see a few examples of ABMs in practice

NOTE: Most of the study of the Julia skills and ABM examples are not in this notebook

ABM components

  • ABMs are made up of 3 distinct components:
    1. Agents
    2. Environment
    3. Rules

Agents

  • Have state at discrete time steps tt (state is value of properties, some properties might be fixed)
  • Always aware of its own state
  • Autonomous: can make a decisions independent of other agents
  • Reactive: can respond to changes in environment or state of other agents
  • Proactive: can behave in a way to achieve a goal
  • Communicate: can make some attributes visible to other agents

Environments

  • One of two types
    1. Natural Environments: biophysical landscapes and settings
    2. Artifical environments: classrooms, economic markets, parks, transportation streets, buildings, etc.
  • Agents reside within an environment
  • Properties of environment can be fixed (size, dimensions) or varying (weather, congestion, unused capacity)
  • Agents can observe and potentially respond to properties of the environment

Rules

  • Rules are the key feature that makes ABMs dynamic
  • Types of rules:
    • Inter-agent: how agents communicate and respond to one another (e.g. information spread)
    • Agent-environment rules: How an agent responds to an environment (e.g. avoid park if raining), or how an agent’s decisions and behaviors impact environment (e.g. more cars => more pollution)
    • Intra-environmental rules: cause and effect mechanisms within the environment (e.g. more rain => more vegetation)

Why ABMs for Social Science?

ABMs are particularly powerful for social science because:

  • No equilibrium required: Social systems rarely reach stable equilibria
    • Fashion trends, social media virality, political movements constantly evolve
  • Heterogeneity matters: Individual differences drive social outcomes
    • Not everyone responds the same way to incentives or information
  • Local interactions dominate: Who you know matters more than population averages
    • Job opportunities through networks, not random matching
    • Disease spread through actual contact patterns
  • Path dependence: History and timing matter
    • Early adopters can shift entire market dynamics
    • Small initial differences can lead to dramatically different outcomes
  • Emergence: Simple individual rules create complex social patterns
    • Segregation can emerge without strong individual preferences (as we’ll see with Schelling)

ABMs in Julia

  • We need a way to represent these three components in Julia
  • Agents: represent as a Julia struct
    • Struct fields record agent properties
    • Our custom agent type can have methods that ascribe behavior to agents
  • Environments: either explicitly as Julia struct or implicitly in the update rules
  • Rules: julia functions
    • Key function is step! which will allow our agents to make decisions and have the environment and agent properties update in response

Schelling Segregation Model

  • We will work on learning how to represent our agents, rules, and environment in Julia
  • To make that discussion more concrete, it will be helpful to have a model to implement
  • The “hello world” of ABMs may just be the Schelling segregation model
  • References include QuantEcon and Agents.jl tutorial

Schelling’s Work

  • Thomas Schelling won a nobel price in economics for his study of racial segregation
  • At the heart of his study, was a model proposed in 1969 for how racial segregation can occur in urban areas
  • One theme of this work (and ABMs in general) is that local interactions (like decisions of individual agents) can lead to surprising aggregate results

The Model

  • Environment: 25x25 grid of single family dwellings
  • Agents with properties:
    • location (x,y) coordinate for current home
    • type: orange or blue. Fixed over time. 250 of each
    • happiness: 0 if less than NN of neighbors are of same type, 1 otherwise
  • Rules:
    • Agents choose to move to unoccupied grid point if unhappy

Note neighbors for a particular cell are the the 8 other cells surrounding the cell of interest. Corner or edge cells have less than 8 neighbors