Superdiffuser Model of Behavior Change in a Network
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
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.