# Contagion on a Grid

### 2 collaborators

Darin England (Author)
Amanda Page (Team member)

### Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.1.1 • Viewed 29 times • Downloaded 0 times • Run 0 times

## WHAT IS IT?

This model is an implementation of best-response decision-making when players are arranged on either a line or a grid. Each agent can choose one of two possible actions:

action 0 or action 1. Each agent will attempt to maximize her own payoff by coordinating her action with the actions of her neighbors. The purpose of the model is to understand the conditions under which all agents end up taking action 1 (contagion).

## HOW IT WORKS

Agents play a coordination game with each neighbor. When two neighbors each take action 0, the payoff to each is q. When two neighbors take action 1, the payoff to each is 1-q. The payoff for miscoordination is zero. In other words, each pair of agents that are connect by an edge play the following two-person game.

```

0 1

------------------

0 | q,q | 0,0 |

1 | 0,0 | 1-q,1-q |

------------------

```

Before taking an action, agents check to see how many of neighbors are taking action 1. Each agent then chooses the action (either 0 or 1) that will maximize her own total payoff. Initially all agents are set to take action 0. The user can select which agents will (at least initially) take action 1.

Contagion (when all agents end up taking action 1) only occurs under certain conditions. For example, for agents arranged along a line (1-dimension), contagion can only occur when q <= 1/2. In 1-dimension the threshold of 1/2 is called the contagion threshold, the largest value of q for which contagion is possible (please see the article by Morris that is referenced below). Contagion is also possible only when certain agent sets are intitially taking action 1. In 1 dimension, contagion will occur when two neighboring agents initially take action 1 (and q <= 1/2).

The color of an agent indicates which action is currently beging taken. Black indicates action 0 and white indicates action 1.

## HOW TO USE IT

The q slider sets the payoff when agents coordinate on action 0. The DIMENSION chooser sets the grid to be either 1 or 2 dimensions.

The SELECT NODES button allows the user to select agents with the mouse. The selected agents will take action 1 (at least initially).

SETUP resets all agents to take action 0.

When GO ONCE is pressed, agents play the coordination game one time. Pressing GO causes the agents to play the game repeatedly (at each tick).

## THINGS TO NOTICE

Under certain starting conditions that actions of all agents stop changing after some number of rounds. This means that agents have no incentive to switch their action. In other words, an equilibirium has been found. Under other conditions, equilibrium does not occur. We note that in this model agents are always allowed to switch their action. This differs from much of the literature where once an agent switches from action 0 to action 1, she is not allowed to switch back to action 0.

## THINGS TO TRY

Try to find conditions under which contagion occurs. In 1 dimension, contagion will occur when two neighboring agents initially take action 1 (and q <= 1/2). Are there other configurations of agents initially taking action 1 that will lead to contagion. What about 2 dimensions.

## EXTENDING THE MODEL

For the 2 dimensional grid in this model, each agent has four neighbors. One could modify the grid so that the "diagonal" agents are also neighbors (each agent would have eight neighbors).

Try implementing the contagion model on a tree.

Try implementing the contagion model on other types of networks.

## NETLOGO FEATURES

Networks are represented using turtles (nodes) and links. The user is able to use the mouse to select the agents that initially take action 1.

## RELATED MODELS

Language Change

## CREDITS AND REFERENCES

This model is an implemetation of the example described in Morris (2000), "Contagion", Review of Economic Studies: Vol 67, pp 57-78.

## HOW TO CITE

If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.

For the model itself:

* England, D. and Page, A. (2020). NetLogo Contagion on a Grid.

https://github.com/bx549/ABM

Please cite the NetLogo software as:

* Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

![CC BY-NC-SA 3.0](http://ccl.northwestern.edu/images/creativecommons/byncsa.png)

Click to Run Model

; a model for contagion in 1 or 2 dimensions
; this model corresponds to the following article:
; Stephen Morris, Contagion, Review of Economic Studies, Vol 67, 2000

breed [nodes node]

nodes-own [
action        ; action (either 0 or 1)
orig-action   ; each person's initially assigned action
action-1-sum  ; number of neigbors that will take action 1 (or based on beliefs)
]

to setup
clear-all
set-default-shape nodes "circle"
ask patches [ set pcolor gray ]
ifelse dimension = 1 [
make-nodes-1
] [
make-nodes-2
]
distribute-actions
create-network
reset-ticks
;action-dbg
end

to make-nodes-1 ; create the nodes for a 1-dimensional lattice
foreach (range -40 41 5) [ i ->
create-nodes 1 [
set xcor i
set ycor 0
set size 2
set action 0
set color black
]
]
end

to make-nodes-2 ; create the nodes for a 2-dimensional lattice
foreach (range -40 41 5) [ i ->
foreach (range -40 41 5) [ j ->
create-nodes 1 [
set xcor i
set ycor j
set size 2
set action 0
set color black
]
]
]
end

set action 0
set orig-action action
update-color
]
end

to create-network ; create links to neighbors
let nbrs other turtles in-radius 5
; other omits the turtle itself
create-links-with nbrs [ set color white ]
; only one undirected link between any two turtles is created
]
end

to update-color
; nodes that take action 0 are black, action 1 are white
set color ifelse-value action = 0 [black] [white]
end

to go
; in the ask commands below the order of node exection is random, hence the separate steps
ask nodes [ check-neighbors ] ; first all nodes note the actions of their neighbors (or form beliefs)
ask nodes [ take-action ]     ; then all nodes take the action with the highest expected payoff
tick
;action-dbg
end

to check-neighbors
set action-1-sum sum [action] of link-neighbors
end

to take-action
; an agent will take the action that maxmizes the sum of her payoffs
; from the interactions with each of her neighbors.
; action 1 is a best response to the actions of her neighbors if
; at least proportion q of her neighbors choose action 1.
set action ifelse-value (action-1-sum / num-neighbors >= q) [1] [0]
end

to action-dbg  ; debugging, show actions of all nodes
foreach sort-by[ [a b] -> [xcor] of a < [xcor] of b ] nodes [ i ->
show (action-1-sum / num-neighbors)
]
]
end

to select-nodes ; use the mouse to select which nodes take action 1
if mouse-down? [
ask turtles with [distancexy mouse-xcor mouse-ycor < 2] [
set action 1
update-color
display ; update the display
]
]
end

There are 2 versions of this model.

## Attached files

File Type Description Last updated

This model does not have any ancestors.

This model does not have any descendants.