Superdiffuser Model of Behavior Change in a Network

Superdiffuser Model of Behavior Change in a Network preview image

1 collaborator

Tags

attitudes and behavior 

Tagged by Christopher Carpenter 12 months ago

behavior change 

Tagged by Christopher Carpenter 12 months ago

diffusion 

Tagged by Christopher Carpenter 12 months ago

social networks 

Tagged by Christopher Carpenter 12 months ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.3.0 • Viewed 275 times • Downloaded 23 times • Run 0 times
Download the 'Superdiffuser Model of Behavior Change in a Network' modelDownload this modelEmbed this model

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


WHAT IS IT?

This model attempts to operationalize the basic ideas of the Boster et al. (2012) superdiffuser model while expanding the model by identifying moderators. That model argues that diffusion of a behavior through a network will be accelerated if the agents who are seeded with the behavior are connectors, persuaders, and mavens. Connectors have many connections and span boundaries between groups. Persuaders have heightened ability to change the attitudes of others by effectively adapting their arguments. Mavens are people who are highly involved in a given topic and enjoy educating others about that topic.

These three traits are represented in the model. Connectors are represented by the extent to which the agents have high degree and betweenness centrality. Persuaders are represented by the extent to which agents are able to produce large attitude changes in those they try to persuade. Mavens are represented by their likelihood of trying to persuade another agent they are connected to at each tick.

The other variables represent aspects of the agents and the context that can alter both the speed of diffusion as well as the importance of the various superdiffuser traits of the seeded agents.

HOW IT WORKS

At the start, a set proportion of the members of the network have adopted the behavior. Each of them occupies a different place in the network and thus they have varying levels of degree and betweenness centrality. Each of them also has a persuasive ability such that when they try to persuade other agents they are tied to, they increase the positivity of the target agent's attitude to a degree determined by the persuading agent's persuasive ability. Each also has a likelihood of trying to persuade one of the agents they are tied to at each tick such that they may have a zero percent chance up to a 100 percent chance.

At start, a scale-free network is created such that many of the agents have the minumum number of links and a few have many links, creating a hierarchy. The hierarchy is flattened to the extent to which the minimum number of links is increased. Some number of agents are seeded with having adopted the behavior and their color is set to pink.

At each tick, each agent that has not adopted the behavior gains a small increase in attitude through basic imitation based on how many of the agents they are linked to has adopted and the social influence strength. If social-influence is set to zero, then this does not occur.

At each tick, any agent that has raised their attitude above the threshold for adoption, adopts the behavior.

At each tick, any agent that has adopted the behavior may try to persuade one of the agents they are connected to and if they do they increase that neighbor's attitude by the amount the persuading agent is able.

Agents who have adopted turn from white to red.

If either all agents have adopted or attitudes have not changed for 50 ticks, the run stops.

HOW TO USE IT

num-agents defines how many people will be in the network.

min-links defines the minimum number of ties each person in the network will have. If it is set at 1 then each person is connected to at least one person. If it is set at 5 then each person is connected to at least five others. It is set up to be a scale-free network so some of the people will have substantially more connections than this minimum.

percent-adopted-start defines what proportion of the network will start the simulation having already adopted the behavior. They are shown in pink at setup.

avg-pers-one is the average of the likelihood that each turtle who has adopted will decide to try to persuade another turtle at each tick.

avg-attitude is the average of the attitudes of the turtles at setup. It is bounded by 1 and 3.9, ranging from the minumum to just below the midpoint of a 1-7 attitude scale.

adopt-threshold is the attitude score at which a turtle who was not seeded with adoption will adopt the behavior.

avg-pers-power is the average of the agents persuasive ability. Persuasive ability is the size of the increase in the attitude of an agent they try to persuade.

social-influence is the size of the increase in an agent's attitude who has not adopted they get from each agent they are connected to that has already adopted. Social influence is assumed to be only positive such that agents who have not adopted do not negatively influence other agents' attitudes.

Setup creates a scale-free network in which the lines indicate undirected ties between the people. At the start, those who have already adopted are shown in pink and those who have not are in white.

Go runs a tick. During each tick, people who have not adopted do nothing except increase their attitudes from the social influence effect and/or in response to a persuasive attempt. Those who have adopted may or may not increase the attitude of one of their neighbors who has not already adopted. When agents adopt the behavior, they turn red.

Adoptions Over Time indicates how many people in the network have adopted over time to show how steep the adoption curve is in this run.

Number Adopted shows how many agents total have adopted at each tick.

Degree Centrality of Adopted shows the average degree centrality score for those who have adopted the behavior (degree centrality is the number of agents an agent is connected to). The start value at Setup is the average degree centrality of those assigned to have adopted at start. At each tick it is recalculated based on the degree centrality of all of those who have adopted.

Betweenness Centrality of Adopted shows the average betweenness centrality score for those who have adopted the behavior (betweenness centrality is the extent to which a particular person is the link between otherwise unconnected groups). The start value at Setup is the average betweenness centrality of those assigned to have adopted at start. At each tick it is recalculated based on the betweenness centrality of all of those who have adopted.

Network Clustering Coefficient displays a property of the network as a whole after Setup. It indicates an aspect of the Netlogo nw:clustering-coefficient such that the global clustering coefficient is calculated and reported. It indicates the extent to which people are more likely to be integrated together in the network or, if high, the extent to which the network is composed of separate groups with fewer ties among them.

THINGS TO NOTICE

Who starts out pink can influence how rapidly and even if full diffusion happens. If the likelihood people wish to persuade is low, it is possible that those who start with the adopted behavior will not want to persuade very often. Also, when the number of minimum ties is low, there will be occasions where complete diffusion does not happen unless the social influence slider is above zero. If someone only has one connection and that person is not motivated to persuade anyone, that person may never adopt. You can usually see them at the periphery of the network.

THINGS TO TRY

min-links can create rapid diffusion when increased. If everyone has at least 10 friends, the odds are very good that at least one of them will have adopted and want to persuade any given person.

Increasing adopt-threshold can slow down diffusion and so can avg-pers-power.

Try combining different high and low values to see if they trade off in the speed with which total diffusion occurs. For example, high social influence can make up for low avg-pers-power or avg-pers-one.

EXTENDING THE MODEL

We may try adding negative social influence or even negative persuaders who actively try to persuade people negatively. Another alternative is to give people the chance to try to persuade more than one person per tick rather than varying the likelihood they try to persuade one of their neighbors. We may also try different setup network structures besides the scale-free network.

NETLOGO FEATURES

RELATED MODELS

Communication-T-T, Network Example, Spread of Disease

CREDITS AND REFERENCES

Created by Christopher J. Carpenter, Shannon Cruz, & Reed Reynolds

Comments and Questions

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

Click to Run Model

extensions [
  nw]

turtles-own [
  adopted?               ; whether or not the turtles have adopted the innovation
  pers-one               ; likelihood of an adopted turtle choosing link neighbor who has not adopted and trying to persuade them
  attitude               ; attitude towards adopting the behavior
  pers-power             ; how much a turtle adds to the attitude of another turtle if they target it
  adopt-friends          ; how many link neighbors have adopted, this is for the social influence variable
  non-adopt-friends      ; how many link neighbors have not adopted
  message ]              ; keeps track of message most recently received

globals [
   status-quo?           ; sets up the counter to count change for a stop condition
   status-quo-counter
  initial-degree  ;these next four are for the variables of the seeded agents
  initial-between
  initial-pers-power
  initial-pers-likely
  adopted-at-tick
  init-adopted2

]

to setup
  ca
  reset-ticks
  set status-quo? false
  set status-quo-counter 0                                                              ; for the stop code for no change in attitude
  nw:generate-preferential-attachment turtles links num-agents min-links                ; sets up preferential attachment network
  repeat 30 [ layout-spring turtles links 0.2 5 1 ]                                     ; makes the network look nicer

  ;new code assigning adoption
  ask turtles [set adopted? false]
  set init-adopted2 ((num-agents) * (percent-adopted-start))
  ask n-of init-adopted2 turtles [set adopted? true]

  ask turtles [
  set shape "person"
  set message 0
  set-pers-one
  set-attitude
  set-pers-power
  recolor]

  ;these four calculate the values for the seeded agents
  set initial-degree mean ( [ count link-neighbors ] of turtles with [ adopted? = true ] )
  set initial-between mean ( [ nw:betweenness-centrality ] of turtles with [ adopted? = true ] )
  set initial-pers-power mean [pers-power] of turtles with [adopted? = true]
  set initial-pers-likely mean [pers-one] of turtles with [adopted? = true]
  set adopted-at-tick count turtles with [adopted? = true]
end 

to set-pers-one ; turtle process
  set pers-one ( random-normal avg-pers-one 20 )      ; randomly assigns the the likelihood that a turtle will try to persuade another turtle at a tick
  if pers-one > 100 [ set pers-one 100 ]              ; the avg-pers-one slider sets the mean such that a higher setting means that more of the turtles will want to persuade
  if pers-one < 0 [ set pers-one 0 ]
end 

to set-attitude ; turtle process
  set attitude ( random-normal avg-attitude 1 )       ; sets up turtles' start attitude, below the lowest adoption threshold and at least 1 like a 1-7 likert scale
  if attitude > 3.9 [ set attitude 3.9 ]
  if attitude < 1.0 [ set attitude 1.0 ]
end 

to set-pers-power ; turtle process
  set pers-power ( random-normal avg-pers-power .1 )
  if pers-power > 2 [ set pers-power 2 ]
  if pers-power < 0 [ set pers-power 0 ]
end 

to recolor
  ifelse adopted? = true [
    set color red ] [
    set color white ]
end 

to update-friends ; turtle process
  set adopt-friends count link-neighbors with [ adopted? = true ]    ; updates number of adopted friends to use in the social influence calculation
  set non-adopt-friends count link-neighbors with [ adopted? = false ]
end 

;next 4 reporters are created to record values of agents seeded with adoption

to-report init-degree
  report initial-degree
end 

to-report init-between
  report initial-between
end 

to-report init-pers-power
  report initial-pers-power
end 

to-report init-pers-likely
  report initial-pers-likely
end 

;next four reporters report the agent values at each tick

to-report report-betweenness                                         ; creates the data for the monitor labeled betweenness centrality of adopted
  let adopted-betweenness mean ( [ nw:betweenness-centrality ] of turtles with [ adopted? = true ] )
  report adopted-betweenness
end 

to-report report-betweenness-all                                         ; creates the data for the monitor labeled betweenness centrality
  let betweenness-all mean ( [ nw:betweenness-centrality ] of turtles)
  report betweenness-all
end 

to-report report-degree                                              ; creates the data for the monitor labeled degree centrality of adopted
  let adopted-degree mean ( [ count link-neighbors ] of turtles with [ adopted? = true ] )
  report adopted-degree
end 

to-report report-degree-all                                             ; creates the data for the monitor labeled degree centrality
  let degree-all mean ( [ count link-neighbors ] of turtles)
  report degree-all
end 

to-report report-pers-power
  let adopt-pers-power mean [pers-power] of turtles with [adopted? = true]
  report adopt-pers-power
end 

to-report pers-likely-adopted
  let adopt-pers-likely mean [pers-one] of turtles with [adopted? = true]
  report adopt-pers-likely
end 

to-report global-clustering-coefficient
  let closed-triplets sum [ nw:clustering-coefficient * count my-links * (count my-links - 1) ] of turtles
  let triplets sum [ count my-links * (count my-links - 1) ] of turtles
  report closed-triplets / triplets
end 

to go
  let status-quo-before? status-quo?
  set status-quo? true
  ask turtles [
    update-friends                                             ; friends updated at the start of each tick
    if adopted? = true and non-adopt-friends > 0 [ persuade ]  ; persuasive attempts are only made by adopters
    if adopted? = false [ update-attitude ] ]                  ; attitude change only happens among non-adopters
  ifelse status-quo-before? = true and status-quo? = true [
    set status-quo-counter status-quo-counter + 1 ] [
    set status-quo-counter 0 ]
  tick
  if ticks < 1001 [set adopted-at-tick sentence (adopted-at-tick) (count turtles with [adopted? = true])]
  if status-quo-counter = 50 [ stop ]
  if ( not any? turtles with [ not adopted? ] ) [ stop ]     ; if the go is switched to run forever, it will stop if the whole network has adopted
end 

to persuade ; turtle process
  if ( random 100 < pers-one ) [
    ask one-of link-neighbors with [ adopted? = false ] [
      set message [ pers-power ] of myself ] ]               ; target will keep track of pers-power as message, to be used in update-attitude
end 

to update-attitude ; turtle process
  let old-attitude attitude                                               ; sets up the check for attitude changes this tick
  set attitude attitude + message + ( adopt-friends * social-influence )  ; attitude will change based on most recent message received AND social influence
  if attitude > 7 [
    set attitude 7 ]                                                      ; make sure attitude can't go over max for Likert scale
  if attitude >= adopt-threshold [ set adopted? true ]                    ; any turtle that reached the threshold will be set to adopted
  recolor                                                                 ; updates color based on adoption
  set message 0                                                           ; resets message variable to 0
  if old-attitude != attitude [ set status-quo? false ]                   ; indicates if there has been any attitude change this tick
end 

There is only one version of this model, created 12 months ago by Christopher Carpenter.

Attached files

File Type Description Last updated
Superdiffuser Model of Behavior Change in a Network.png preview Preview for 'Superdiffuser Model of Behavior Change in a Network' 12 months ago, by Christopher Carpenter Download

This model does not have any ancestors.

This model does not have any descendants.