Granovetter's threshold model of collective behaviour

Granovetter's threshold model of collective behaviour preview image

1 collaborator

Tags

social science 

Tagged by Giangiacomo Bravo almost 9 years ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.0 • Viewed 1183 times • Downloaded 138 times • Run 0 times
Download the 'Granovetter's threshold model of collective behaviour' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Granovetter's threshold model of collective behaviour

AUTHOR

Giangiacomo Bravo

WHAT IS IT?

This model reproduces Mark Granovetter's (1978) threshold model of collective behavior with different network structures.

HOW IT WORKS

Agents face a binary decision: to participate or not in a riot, following Granovetter's original example. They are represented as nodes in a network. Each agent holds a threshold representing the minimum proportion (in % terms) of its network neighbours that need to participate in the riot to be willing to enter the riot itself. In each round, agents check whether this condition is satisfied and, in case, begin to riot themselves.

HOW TO USE IT

The setup bottom sets up the agents and the network on the basis of the parameters below. Click it just once at the beginning of the simulation.

1) General parameters

  • The number-of-agents slider allows to select the number of agents in the model.
  • The network chooser allows to select the network type. Current possibilities are "random", "fully connected" and "small world". Note that the fully connected model may cause the model to run slowly if too many agents are selected.
  • The threshold-distribution chooser allows to extract the agents' thresholds following different distributions. Current possibilities are the "uniform" and the "normal" distributions.

2) Network-related parameters

  • The number-of-links parameter determines the degree of the network. It is only relevant for the random and small-world networks.
  • The rewire-prop parameter determines the proportion of links that should be rewired in the small world network following the Watts and Strogatz's procedure.

3) Threshold distribution related parameters

  • The min-threshold parameter determines the minimum possible value for the agents' thresholds in case the uniform distribution is selected.
  • The maximum-threshold parameter determines the maximum possible value for the agents' thresholds in case the uniform distribution is selected.
  • The mean-threshold parameter determines the mean of the threshold distribution in case the normal distribution is selected.
  • The sd-threshold parameter determines the standard deviation of the threshold distribution in case the normal distribution is selected.

The go button makes the agents choose their behaviour in the current round. It can be clicked repeatedly in order to observe the progressive spreading of the riot.

THINGS TO NOTICE

How the riots spread under different threshold distributions and network shapes. Which are the conditions helping or hindering the spreading of the riots?

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

turtles-own [threshold riot?]

to setup
  ca
  set-default-shape turtles "circle"
  if max-threshold < min-threshold [
    print "min-threshold should be smaller than max-threshold"
    stop
  ]
  create-agents
  reset-ticks
end 

to go
  ask turtles [
    let prop-rioting 100 * count link-neighbors with [riot? = true] / count link-neighbors
    if prop-rioting >= threshold [
      set riot? true
      set color red
    ]
  ]
  tick
end 

to create-agents

  let min-threshold-n min-threshold * number-of-agents / 100
  let max-threshold-n max-threshold * number-of-agents / 100
  let mean-threshold-n mean-threshold * number-of-agents / 100
  let sd-threshold-n sd-threshold * number-of-agents / 100

  crt number-of-agents [
    set riot? false
    set color blue
    if threshold-distribution = "uniform" [set threshold (min-threshold + random (max-threshold - min-threshold))]
    if threshold-distribution = "normal" [set threshold round (random-normal mean-threshold sd-threshold)]
    if threshold < 0 [set threshold 0]
    if threshold > 100 [set threshold 100]
  ]

  ;layout-circle (sort turtles) (max-pxcor - 1)
  arrange-turtles

  ; random network of grade 2 * number of links
  if network = "random" [
    ask turtles [create-links-with n-of number-of-links other turtles with [link-with myself = nobody]]
  ]

  ; small-world network
  if network = "small-world" [
    let max-who 1 + max [who] of turtles
    let sorted sort ([who] of turtles)
    foreach sorted[ [?1] ->
      ask turtle ?1 [
        let i 1
        repeat number-of-links [
          create-link-with turtle ((?1 + i) mod max-who)
          set i i + 1
        ]
      ]
    ]
    repeat round (rewire-prop * number-of-agents) [
      ask one-of turtles [
        ask one-of my-links [die]
        create-link-with one-of other turtles with [link-with myself = nobody]
      ]
    ]
  ]

  ; fully connected network
  if network = "fully connected" [
    ask turtles [create-links-with other turtles with [link-with myself = nobody]]
  ]
end 

to arrange-turtles ;similar to layout-circle (sort turtles) (max-pxcor - 1)
  let the-turtles sort [who] of turtles
  let angle 360 / number-of-agents
  let dist max-pxcor - 1
  let i 0
  foreach the-turtles [ [?1] ->
    ask turtle ?1 [
      setxy (dist * cos (angle * i)) (dist * sin (angle * i))
    ]
    set i i + 1
  ]
end 

There are 4 versions of this model.

Uploaded by When Description Download
Giangiacomo Bravo almost 8 years ago Some further fixes to make the model work woth Netlogo 6 Download this version
Giangiacomo Bravo almost 8 years ago Code changes to comply with Netlogo 6 Download this version
Giangiacomo Bravo almost 9 years ago Circle layout fixed (previously not working in the web version) Download this version
Giangiacomo Bravo almost 9 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Granovetter's threshold model of collective behaviour.png preview Preview for 'Granovetter's threshold model of collective behaviour' almost 9 years ago, by Giangiacomo Bravo Download

This model does not have any ancestors.

This model does not have any descendants.