Misinformation Diffusion Model (Based on SBFC framework by Sulis & Tambuscio, 2020)

No preview image

1 collaborator

Default-person Adarsh Tripathi (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 7.0.2 • Viewed 7 times • Downloaded 0 times • Run 0 times
Download the 'Misinformation Diffusion Model (Based on SBFC framework by Sulis & Tambuscio, 2020)' 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?

An agent-based framework to simulate the diffusion process of a piece of misinformation according to a known compartmental model in which the fake news and its debunking compete in a social network.

HOW IT WORKS

Each agent may be a Believer, a Susceptible, or a Fact-checker (acording to a "State" variable). Every unit of time agents modify (with a certain probability) their State by considering the neighbors' "states".

HOW TO USE IT

Set up the model by modifying the number of agents, the Hoaxes Diffusion parameters and the type of network (Barabasi-Albert or Erdos-Reni).

The graph on the right visualizes the amount of agents for each different type of State.

THINGS TO TRY

Change the network type to investigate the impact on diffusion processes. Improve the layout of BA network with a Spring layout.

EXTENDING THE MODEL

1 Perform parameter sweeping analysis (e.g., behaviourspace) to compute a certain ampount of test to find average and deviation standard values.

2 Include different network configuration to investigate changes in the model

3 Start the diffusion process from a certain node (e.g., from a node with high centrality or hub)

CREDITS AND REFERENCES

Sulis, E., Tambuscio, M. (2020). Simulation of misinformation spreading processes in social networks: an application with NetLogo. In 2020 IEEE International Conference on Data Science and Advanced Analytics (DSAA), IEEE.

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 [ state ] ;; Three states of agents: "B" (believer) ;  "F" (factChecker) ; "S" (susceptible)

links-own [ weigth ]  ;; the weight of the links between agents

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   SETUP   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to setup
  ca
  setup-var
  setup-turtles
  update-plot
  reset-ticks
end 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   GO   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to go
  tick
  if ticks > 300 [stop]   ;; stop condition (300 units of time)

  spreading               ;
  forgetting              ;-- Three main procedures for agent's behavior
  veryfing                ;

  update-colors           ;; just to improve the visualisation
  update-plot             ;; update plots of the Interface
end 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  SETUP PROCEDURES  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to setup-var
  set-default-shape turtles "person"
  set-default-shape links "curved link"
  update-output
end 

to update-output
  clear-output
  output-print "* Diffusion model in social networks *"
  if Type-of-network = "BA" [output-print "Barabási–Albert network"]
  if Type-of-network = "ER" [output-print "Erdős–Rényi network"]
end 

to setup-turtles
  if Type-of-network = "Barabási–Albert algorithm" [ nw:generate-preferential-attachment turtles links number-of-agents 3 ]
  if Type-of-network = "Erdős–Rényi model" [
    if number-of-agents > 100 [
      if PC-low-performance? and ask-proceed? [
        clear-output output-print (word "Erdős–Rényi model with " number-of-agents " nodes.")
        nw:generate-random turtles links number-of-agents 0.00585
      ]
    ]
  ]
 init-edges
end 

to init-edges
  ask links [set color 3]
  ask turtles
  [ setxy random-xcor random-ycor
    ifelse random 100 <= 90 [ set state "S" ][ set state "B" ]
  ]
  update-colors
end 

to update-colors
  ask turtles [
    if state = "B" [ set color blue ]
    if state = "F" [ set color red ]
    if state = "S" [ set color gray ]
  ]
end 

to update-plot
  set-current-plot "State-of-people"
  set-current-plot-pen "BELIEVERS"
  plot count turtles with [state = "B"]
  set-current-plot-pen "FACT-CHECKERS"
  plot count turtles with [state = "F"]
  set-current-plot-pen "SUSCEPTIBLES"
  plot count turtles with [state = "S"]
end 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  GO PROCEDURES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to spreading
  ask turtles with [state = "S"] [
    let nB count link-neighbors with [state = "B"]   ;; believers in neighborhood
    let nF count link-neighbors with [state = "F"]   ;; fact-checkers in neighborhood

    let _1PlusA  (1 + alpha-hoaxCredibility)
    let _1MinusA (1 - alpha-hoaxCredibility)
    let den (nB * _1PlusA + nF * _1MinusA)

    let f 0    ;; probability to become Believer
    let g 0    ;; probability to become Fact-checker

    if den != 0 [
      set f beta-spreadingRate * (nB * _1PlusA  / den)
      set g beta-fc-spread     * (nF * _1MinusA / den)
    ]

    let r random-float 1
    ifelse r < f [
      ;; become Believer
      set state "B"
    ] [
      ;; only if it didn't become B, it *may* become Fact-checker
      if r < (f + g) [
        set state "F"
      ]
    ]
  ]
end 

to forgetting
  ;; Believers forget the hoax with probability pForget (B -> S)
  ask turtles with [state = "B"] [
    if random-float 1 < pForget [
      set state "S"
    ]
  ]

  ;; Fact-checkers forget / lose interest with probability pForget-FC (F -> S)
  ask turtles with [state = "F"] [
    if random-float 1 < pForget-FC [
      set state "S"
    ]
  ]
end 

to veryfing  ;; B-> F ; each agent can fact-check the hoax with a fixed probability pverify;
  ask turtles with [state = "B"][
    if random-float 1 < pVerify [
      set state "F"
    ]
  ]
end 

;;;;;;;;;;;;;;;;;;;;;;; UTILS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to-report ask-proceed?
  report user-yes-or-no? "The network can be too wide to display in old PC: may suggest you to disable 'view updates' before press 'GO' button? Press Y to continue"
end 

There is only one version of this model, created 3 days ago by Adarsh Tripathi.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.