Correcting Information - delay and media effects
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model looks at the correction of false information in social networks, with variants for different media environments. Information spreads within the network via both broadcast and social influence. Some nodes, called "researchers" which represent either people or organizations, are more resistant to false information and do not adopt it. Since time is required to notice and correct false information, researcher nodes initially have no effect on the spread or correction of information, but exert influence after a user-modifiable delay.
Diffusion of information in this model is based on the Bass model. Three different variants are offered for handling of the broadcast influence component: uniform and affected by node consensus, biased with an irregular shape, and biased with two large regions. Initially broadcast influence only affects adoption of false information. After research-delay ticks have passed, broadcast influence affects both adoption and correction, the effect in either case depends on the broadcast variant chosen.
Changing views (adoption/correction) can occur for regular nodes, but resistance to belief modification is modeled by reducing the likelihood of changing belief after either adoption or correction. The model can be run with or without re-adoption allowed after correction.
Different network structures can also be investigated (random, preferential attachment, Watts-Strogatz small world).
HOW IT WORKS
The SETUP procedure creates a network of the type selected in "network-type" and assigns patches properties used to simulate the media environment, if either "media bias" variant is chosen. Nodes in the network are then assigned to be "regular" or "researcher." The fraction of nodes selected as "researchers" can be modified in the interface. Researchers are resistant to adopting false information, but there is a delay before their influence is included in the social network. The length of this delay can be modified with the research-delay slider. The setup procedure also initializes global variables.
The GO procedure recalculates global variables and handles the spread of information through the network. Once the research-delay has expired, nodes can correct their information. Nodes that have already adopted the false information can correct it but this is more difficult than correcting information prior to adoption. The degree to which views are likely to change can be modified with the "openness-to-change" slider. For regular nodes, both adoption and correction are open to change. (Researchers do not adopt.) The model can be run with regular nodes either permitted or restricted from re-adopting once corrected.
The RESET procedure resets the adoption pattern but leaves the network links and node types in place.
HOW TO USE IT
Inputs
Prior to starting the model, set the variant choice, number of agents, network type and parameters. The parameters at the top of the interface are:
VARIANT: The media environment can be one of:
- uniform: uniform broadcast influence, after research-delay this is proportional to the percent of nodes that have adopted or corrected information
- irregular media bias: broadcast media exerts greater influence toward adoption or correction, based on patch voting and represented by patch color. (green: correction, orange: adoption)
- media bias - block: as with "irregular media bias," but patch y location determines setting.
INITIAL-GREEN-PCT: Sets the percetage of patches which are green (media bias toward correction) in the media bias variants. In the irregular version, this is the intial percent but is modified by voting.
NETWORK-TYPE: Network types can be Preferential Attachment, Random, or Small Worlds. Small worlds uses the Watts-Strogatz model. All networks use the nw extension.
NETWORK-DENSITY: This slider is relevant only for Random networks and is the connection probability for each node. (See nw:generate-random)
NEIGHBORHOOD-SIZE: Used in the small worlds (Watts-Strogatz) network and governs the number of initial links for each node. (See nw:generate-watts-strogatz)
REWIRE-PROBABILITY: Used in small worlds (Watts-Strogatz) network and is probability of each link rewiring (See nw:generate-watts-strogatz)
The next set of sliders govern how many nodes are in the network and the fraction which are researchers. Don't change these if resetting adoption and running on the same network.
NUM-AGENTS: This slider sets the number of nodes in the network.
RESEARCHER-FRAC: Sets the fraction of NUM-AGENTS which are researchers. These will be randomly selected among the nodes. They will be represented by circles.
The lower set of parameters can change between runs on the same network.
RE-ADOPTION: Choose whether to allow regular nodes to readopt after correction.
SOCIAL-INFLUENCE: Degree of influence link neighbors have on individual adoption or correction.
BROADCAST-INFLUENCE: Degree of influence broadcast media have on individual adoption or correction.
RESEARCH-DELAY: Sets the number of ticks before correction begins to counter the adoption of false information.
OPENNESS-TO-CHANGE: This slider sets how likely a node is to changing views once either adopted? or corrected? are true. A value of 1.0 indicates that nodes are open to change, a value of 0 indicates high resistance to view modification. In this version, regular nodes have an individual "change" property which are assigned in an exponential distribution using "openness-to-change" as the mean.
STOP-TICKS: This sets a back-up stop condition for the model. The model will also stop if all nodes are corrected. Since researcher nodes do not adopt, the model does not stop when all nodes have adopted.
SETUP: Sets up the network and node breeds and initializes global variables.
GO: Runs the model adoption and correction and updates global variables.
RESET: Keeps the network, media environment, and node breeds the same, but resets adopted? and corrected? (other than for researchers).
Outputs
%ADOPTED: Plots the percent of the nodes who have adopted over time.
CORRECTION BASIS: Plots the percent of regular nodes who have corrected based on broadcast influence and based on social influence.
PEAK % ADOPTED: Percent of nodes at peak adoption
TICKS TO PEAK ADOPTION: Ticks at which peak adoption first occurs
TICKS TO 50% OFF PEAK: Ticks until the adoption rate drops below 50% of its peak
AGENTS
There are two breeds of turtle, or node, in this model, "researchers" and "regulars."
Regular nodes can adopt information or correct information. Regular nodes are represented by person shapes. Regular nodes have an individual "change" property; the values for these are exponentially distributed with the mean set by the "openness-to-change" slider. Researchers have adopted? and corrected? properties but do not adopt and will always have correct information. Researchers have a research-delay property which affects when they begin to exert influence in the network. Researchers are represented by cyan circle shapes in the network.
Nodes that have not adopted or corrected information are white. Nodes that have adopted are represented by red or pink, depending on whether they adopt based on broadcast or social influence. Nodes that have corrected are blue if corrected based on broadcast, sky if corrected based on social influence.
Patches are also agents in this model, though only affecting the media-bias variants.
Two properties are defined for patches, "vote" and "total". Vote is used to decide patch color, with 0 being light green and 1 light orange, as well as how the patch affects broadcast influence. Total is used in the irregular media bias variant during the setup phase and affects the vote property of the patch. In the irregular media bias variant, patches vote and change color, modifying the shape of the media environment.
There are also links in the network, which are established according to the network type. The links do not have specific properties or actions.
ENVIRONMENT
The environment consists of one of three network types and one of three broadcast media environments.
Network types can be:
- preferential attachment
- random
- Watts-Strogatz small world
The media environment can be:
- uniform: all nodes have the same broadcast influence, which initially affects adoption only. After research-delay has expired, broadcast influence affects adoption and correction proportional to the overall percentage of nodes which have adopted or corrected information.
- irregular media bias: in this variant, the media environment is setup during the setup procedure using a voting procedure similar to that in the "Voting Sensitivity Analysis" model in the model library. Once patch color and vote have been finalized, they are used during the go procedure to modify broadcast influence. Nodes on green patches will have a bias toward correction (after research-delay) while nodes on orange patches will have a bias toward adoption. The color of surrounding patches also affects the extent of the bias.
- media bias - block: this variant is only different from the "irregular media bias" variant during setup and functions the same as it during the go procedure and adoption or correction. During setup, patch color (and vote) are set according to patch y coordinate, depending on the initial-green-pct, with green patches toward the top of the world.
ORDER
Setup:
- Clears everything
- Sets up default breed shapes
- Sets up network
- Sets up media environment, if relevant
- Assigns breed to nodes
- Initializes globals
- Restarts ticks
Go:
- Updates global values
- Checks for stop conditions
- If research-delay has passed, asks nodes which do not have corrected? if they want to correct information.
- If re-adoption is not allowed, asks nodes with neither corrected? nor adopted? if they would like to adopt.
- If re-adoption is allowed, asks nodes that have not adopted if they would like to adopt.
- Advances ticks
THINGS TO NOTICE
If re-adoption is off, try running with the ticks slowed down so that you can see the initial adoption spread through the network.
Correction is often slower than initial adoption, which corresponds to the difficulty in the real world of changing ideas once adopted. Some settings will result in correction occuring more quickly, both research-delay and openness-to-change make a difference here.
Some settings result in adoption persisting in parts of the network until stop-ticks (for stop-ticks in the 1000-5000 range).
The media bias settings can result in local groups that persist with a view that is different from consensus.
THINGS TO TRY
Oscillation in the adoption rate can occur when re-adoption is permitted. Keeping other parameters the same try both settings for re-adoption.
With the media bias variants, it's easier to see what regions are green or orange with the preferential attachment network.
EXTENDING THE MODEL
The patches/media environment could change as the network adoption rate changes.
A network model known to represent a real world social media environment could replace the networks generated here.
Research-delay could vary among researchers. Currecntly the individual delay property isn't fully used, but it could be used to allow researchers to affect correction and adoption of information on an individual schedule.
NETLOGO FEATURES
This model uses the Network extension (nw) to generate networks.
RELATED MODELS
Preferential attachment, Spread of disease, Virus on a network, Unit 4, Model 7 (Intro to Agent-Based Modeling, summer 2017, Santa Fe Institute, instructor was William Rand), Voting Sensitivity Analysis
CREDITS AND REFERENCES
Preferential Attachment model used for parameters in layout of preferential attachment network. Virus on a Network and Unit 4 models used as starting point.
Wilensky, U. (2005). NetLogo Preferential Attachment model. http://ccl.northwestern.edu/netlogo/models/PreferentialAttachment. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Stonedahl, F. and Wilensky, U. (2008). NetLogo Virus on a Network model. http://ccl.northwestern.edu/netlogo/models/VirusonaNetwork. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Rand, W. Introduction to Agent-Based Modeling (Summer 2017) Unit 4, Model. https://s3.amazonaws.com/complexityexplorer/ABMwithNetLogo/model-7.nlogo 7:Influentials.
Belief persverance: https://en.wikipedia.org/wiki/Belief_perseverance
Rand, W., Wilensky, U. (2008). NetLogo Voting Sensitivity Analysis model. http://ccl.northwestern.edu/netlogo/models/VotingSensitivityAnalysis. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
This model was submitted as a student project for the Intro to Agent-Based Modeling class, summer 2017, offered by Santa Fe Institute and taught by William Rand.
Comments and Questions
extensions [ nw ] ;; Use the network extension ;; Used in outputs globals [ %adopted ;; % turtles that have adopted incorrect information peak% ;; peak % turtles that have adopted peakticks ;; ticks before peak %adopted reached offpeakticks ;; ticks before %adopted drops 50% from peak val ] ;; Version that has media environment represented by patches patches-own [ vote ;; my vote (0 or 1) total ;; sum of votes around me ] turtles-own[ adopted? ;; True indicates turtle has adopted incorrect information corrected? ;; True indicates that the turtle has correected information ] ;; create 2 breeds of turtle ;; regulars - adopt based on broadcast and social influence ;; researchers are resistant to adoption and influence network only after a time delay ;; Initially had influentials as well, did not seem to add insight here. breed [ regulars regular ] breed [ researchers researcher ] ;; researchers have a time delay researchers-own [ delay ] ;; regulars have individual openness-to-change regulars-own [ change ] ;;--------------------------------------------- ;; Main procedures (setup, go, reset) ;;--------------------------------------------- ;; Setup procedure to setup ca ;;set default shapes set-default-shape regulars "person" set-default-shape researchers "circle" ;; create network based on chooser setup-network ;; Setup media environment by setting patches ;; do in separate procedure ;; Only relevant in media bias variants if variant = "media bias - block" [ setup-media-block ] if variant = "irregular media bias" [ setup-media-voting ] ;; Set up the breeds of turtles ;; For now - define the researchers first ask n-of (researcher-frac * num-agents ) turtles [ set breed researchers set corrected? TRUE set color cyan set delay research-delay ; Researcher delay until active ] ; Set all other turtles to regulars for now ; Set propensity to change to a random number w exponential distribution ; and mean of "openness-to-change". ask turtles [ if breed != researchers [ set breed regulars set change random-exponential openness-to-change ] ] ;; Initialize globals that should start at 0 set peakticks 0 set peak% 0 set offpeakticks 0 reset-ticks end ;; Go procedure to go ;; Update globals set %adopted (count turtles with [ adopted? ] / count turtles) ;; Check if this is a peak for adoption peak-adopted ;; Check if %adopted has fallen to 50% of peak ticks-to-50%-off-peak ;; Stop if all the turtles have correct information, or if ticks to stop reached if ((ticks > stop-ticks) or (not any? turtles with [not corrected?] )) [ stop ] ; first check for corrected? - this takes place only after research-delay if (ticks > research-delay) [ ask turtles with [ not corrected? ] [ correct ] ] ;; Have been running two possibilities, one where turtles can continue to change views ;; after correction of information, and one where they cannot re-adopt after correction if re-adoption = "no re-adoption" [ ask turtles with [ not (adopted? or corrected?) ] [ adopt ] ] if re-adoption = "re-adoption allowed" [ ask turtles with [ not (adopted?) and not (breed = researchers) ] [ adopt ] ] tick end ;; Reset network - starts with same network and same turtles are researchers to reset-adoption ask turtles with [ adopted? ] [ set color white set adopted? FALSE ] ask regulars with [ corrected? ] [ set color white set corrected? FALSE ] clear-all-plots ;; Set up globals that should start at 0 set peakticks 0 set peak% 0 set offpeakticks 0 reset-ticks end ;;--------------------------------------------- ;; Procedures called by setup ;;--------------------------------------------- ;; Setup the network based on chooser to setup-network ;; random network - uses the network density slider if network-type = "random" [ nw:generate-random turtles links num-agents network-density [ set adopted? FALSE ;; initialize adoption policy set corrected? FALSE ;; initialize corrected? set color white set shape "person" setxy random-xcor random-ycor ;; separate turtles spatially ] repeat 30 [ layout-spring turtles links 0.3 (world-width / 2 ) 1 ] ] ;; Preferential attachment network ;; preferential attachment doesn't use any of the sliders if network-type = "preferential" [ nw:generate-preferential-attachment turtles links num-agents [ set adopted? FALSE ;; initialize adoption policy set corrected? FALSE ;; initialize correction of info set color white set shape "person" setxy random-xcor random-ycor ;; separate turtles spatially ] ;; Using Preferential Attachment model from library to help with layout ;; Use factor based on number of turtles to control the layout let factor sqrt count turtles repeat 300 [ ;; Numbers here are from Preferential Attachment model - looked nicer layout-spring turtles links (1 / factor) (7 / factor) (1 / factor) ] ] ;; small worlds network - use the Watts-Strogatz model from the network extension ;; since that is more traditional small world structure than the small world generator ;; in the extension ;; Uses neighborhood-size and rewireprobability sliders if network-type = "small-world" [ nw:generate-watts-strogatz turtles links num-agents neighborhood-size rewire-probability [ set adopted? FALSE ;; initialize adoption of info set corrected? FALSE ;; initialize correction set color white set shape "person" setxy random-xcor random-ycor ] ;; try to get good layout repeat 300 [ layout-spring turtles links 0.3 (world-width / 3) 3 ] ] end ;; Media environment - setup by coloring patches ;; This version just colors a contiguous block of patches to setup-media-block ;; Setup media environment in two blocks ;; Base green portion on height of world let green-y% (max-pycor - (world-height * initial-green-pct / 100)) ;; Upper part of world set to green ask patches [ ifelse pycor > green-y% [ set vote 0 ] [ set vote 1 ] recolor-patch ] end ;; This is from Voting Sensitivity Analysis, but not ;; doing exactly the same and not giving all the options ;; for different types of voting. to setup-media-voting ;; First, set all the patches to something ask patches [ ifelse random 100 < initial-green-pct [ set vote 0 ] [ set vote 1 ] recolor-patch ] ;; Want to set the media environment before start, ;; so loop through a few times here ;; alternatively, could do until no votes changed. ;; just in case, add a counter and a stop count let stop-count 100 let counter 0 loop [ let any-votes-changed? FALSE ;; Patches total votes of neighbors ask patches [ set total (sum [ vote ] of neighbors ) ] ; Patches set votes based on neighbors ask patches [ let previous-vote vote if total < 3 [ set vote 0 ] ;; if majority of your neighbors vote 0, set your vote to 0 if total = 3 [ set vote 0 ] if total = 4 [ set vote (1 - vote) ;; invert the vote if tied ] if total = 5 [ set vote 1 ] if total > 5 [ set vote 1 ] ;; if majority of your neighbors vote 1, set your vote to 1 if vote != previous-vote [ set any-votes-changed? true ] recolor-patch ] set counter counter + 1 ; Check if end conditions reached if not any-votes-changed? or counter = stop-count [ stop ] ] end to recolor-patch ;; patch procedure ifelse vote = 0 [ set pcolor 58 ] ; light green to avoid conflicting with turtle colors [ set pcolor 28 ] ; light orange - avoiding blues and reds end ;; This procedure checks to see if the SETUP procedure sets up the model with ;; roughly expected numbers, given the value of the initial-green-pct slider to check-setup let expected-green (count patches * initial-green-pct / 100) let diff-green (count patches with [ vote = 0 ]) - expected-green if diff-green > (.1 * expected-green) [ print "Initial number of green voters is more than expected." ] if diff-green < (- .1 * expected-green) [ print "Initial number of green voters is less than expected." ] end ;;--------------------------------------------- ;; Procedures called by go ;;--------------------------------------------- ;; Adopt procedure to adopt ;; Adoption could occur from broadcast influence let broadcast-adoption broadcast-influence if variant = "irregular media bias" or variant = "media bias - block" [ ;; In this version, broadcast-influence environment is different depending on patch ;; Patch color green (58) corresponds to corrective influence, ;; patch color orange (28) corresponds to adoptive influence let near-adopt-pct (count neighbors with [ pcolor = 28 ] / 8 ) let own-adopt 0 ifelse pcolor = 28 [ set own-adopt 1 ] [ set own-adopt 0 ] set broadcast-adoption ( broadcast-influence * 0.5 * (near-adopt-pct + own-adopt ) ) ] if variant = "uniform" [ ;; In this version, broadcast inflence is proportional to overall turtle consensus ;; after research-delay has passed, otherwise is just broadcast-influence value if ticks > research-delay [ ;case where research now available set broadcast-adoption ( broadcast-influence * %adopted ) ] ] if (random-float 1.0 < broadcast-adoption) [ set adopted? TRUE ;; adopt set corrected? FALSE set color red ] ;; Adoption could occur from social influence in local network ;; set up a few variables that are common to next ifelse let neighbors-adopted link-neighbors with [ adopted? ] let total-neighbors link-neighbors let adopt-influence 0 if (count total-neighbors > 0)[ set adopt-influence ((count neighbors-adopted)/(count total-neighbors)) ] ;; If haven't adopted or been corrected - more easily influenced. ;; Once already have correct information - "openness-to-change" used to ;; model persistence of belief (make more difficult to alter view). ifelse not corrected? [ if (random-float 1.0 < (social-influence * adopt-influence))[ set adopted? TRUE set color pink ] ] [ ;; this is the case where the turtle is corrected already and breed = regulars ;; Won't occur if re-adoption is not allowed if (random-float 1.0 < (social-influence * adopt-influence * change))[ set adopted? TRUE set corrected? FALSE set color pink ] ] end ;; correct procedure ;; Regular turtles only get corrected information after delay tics have passed. ;; Broadcast influence based on % of total turtles that have corrected informatio ;; Social influence via neighbor links in ;; network, links to researchers in this model to correct let neighbors-corrected link-neighbors with [ corrected? ] let reg-total-neighbors link-neighbors with [ breed = regulars ] let correct-local-influence 0 let broadcast-correction broadcast-influence let consensus-broadcast-influence (count turtles with [corrected?] / count turtles ) if variant = "irregular media bias" or variant = "medai bias - block" [ ;; Correction could occur from broadcast influence ;; In this version, broadcast-influence environment is different depending on patch ;; Patch color green (58) corresponds to corrective influence, ;; patch color orange corresponds to adoptive influence let near-correct-pct (count neighbors with [ pcolor = 58 ] / 8 ) let own-correct 0 ifelse pcolor = 58 [ set own-correct 1 ] [ set own-correct 0 ] set broadcast-correction ( broadcast-influence * 0.5 * (near-correct-pct + own-correct ) ) ] if variant = "uniform" [ ;; Variant where corrective effect of media depends on consensus - initially few turtles ;; with corrected (only researchers) set broadcast-correction ( broadcast-influence * consensus-broadcast-influence ) ] ;; Correction could occur from broadcast influence - base ;; broadcast influence extent on % turtles with that view if (random-float 1.0 < broadcast-correction ) [ set adopted? FALSE set corrected? TRUE ;; correct set color blue ] ;; Or correction by local social influence if count neighbors-corrected > 0 [ ;; the more corrected turtles, the more likely to adopt views set correct-local-influence (( count neighbors-corrected / count link-neighbors)) ;; if haven't adopted, then more likely to correct. Assign corrected? based ;; on weighting or on random variable if not adopted? [ if (random-float 1.0 < social-influence * correct-local-influence ) [ set corrected? TRUE set color sky ] ] ;; if have adopted, then more difficult to be corrected, use openness-to-change ;; as multiplier. Can modify to see how this affects results. if adopted? [ if (random-float 1.0 < social-influence * correct-local-influence * change) [ set corrected? TRUE set adopted? FALSE set color sky ] ] ] end ;; Procedures and reporters to update globals that are displayed in monitors ;; Peak % adopted to peak-adopted if %adopted > peak% [ set peak% %adopted set peakticks ticks set offpeakticks 0 ] end ;; Ticks until drops 50% off peak. ;; Might want to define this from when peak hit instead, right now it is from start. to ticks-to-50%-off-peak if ((%adopted <= peak% / 2) and (offpeakticks = 0)) [ set offpeakticks ticks ] end
There is only one version of this model, created about 7 years ago by Kjirste Morrell.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Correcting Information - delay and media effects.png | preview | Preview for 'Correcting Information - delay and media effects' | about 7 years ago, by Kjirste Morrell | Download |
This model does not have any ancestors.
This model does not have any descendants.