Superstition
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This is a model intended to examine the growth of a superstition in a population. It offers a more in-depth answer to why superstitions grow than "people just don't understand statistics." It assumes humans are capable of running correct statistical experiments, and that they simply have a lower standard for what is "improbable" than statisticians.
HOW IT WORKS
Agents move around and keep a log of the last few times they saw a cat, and whether or not that cat was on a red patch. Each time the log changes, they consider the odds that the long has as many or more red patches than it has, this is done using a binomial distribution formula. If the odds are lower than their alpha value, the humans become superstitious, and tell other nearby humans to raise their alpha values. The same happens when they stop being superstitious if they see very few red patches. Every tick, if a human is close to a superstitious human, they increase their own alpha, and if they are close to a non-superstitious human, they decrease it by the same amount or less, depending on their superstition bias.
HOW TO USE IT
Use setup and go to set the model up and begin running it. Red-patch-percentage controls how many of the patches become red. Number-of-cats sets the number of cats created on setup. Danger? controls whether or not the humans run away from cats when they are superstitious (simulating that the humans are afraid of red patches and would therefore avoid anything causing them. Memory-length controls how many of their recent cat sightings are remembered by humans. Initial-average-alpha controls the mean of the normal distribution of alphas among the humans. Other-human influence controls how much humans adjust their alphas when another human becomes superstitious or not nearby or when they see at least one superstitious or not superstitious human nearby. Superstition-influence-bias determines how much more humans adjust their alpha based on superstitious humans than based on non-superstitious humans.
THINGS TO NOTICE
As you can see, with the default values the population becomes superstitious most of the time, or ends up in a "rut". After some time regardless, the population stops changing its beliefs overall. Also notice how the humans who are avoiding the cats tend to group together.
THINGS TO TRY
Try turning off danger and seeing if you can adjust the other sliders to still produce a superstitious population. It becomes almost impossible with realistic settings. Another intersting effect is increasing the percentage of red patches or the number of cats even by a small amount. Once again, it prevents the population becomming superstitious.
One very intersting effect is increasing the percentage of red patches while the model is running. Often, this leads to a large jump in superstitious humans, and sometimes it's impossible to revert this jump.
EXTENDING THE MODEL
A potential extension of this model is to improve the communication model. This could include incorperating a network so that humans speak to their friends about their beliefs. Another potential change could be using alpha values to determine how much humans influence each other, instead of just superstitious?.
Another extension could be the incorperation of different types of humans, like skeptics with low alpha values who don't easily shift their alpha values. It could be interesting to see how much impact these skeptics would have, and whether or not they would eventually be convinced.
NETLOGO FEATURES
This model makes extensive use of lists. First, lists are used with fput and bl in order to create a deque like data structure, where new memories are added to the top as old memories are removed from the bottom. Another use of lists is in the probability-list, which follows the rule ((item n list) = (memory-length choose n)). This is done by using n-values to create a list of numbers, foreach with a local value to turn that into a list of factorials, and map to use that list of factorials in numerous iterations of the binomial equation. Creating global mathematic values isn't something that occurs very frequently in models, but it makes sense to skip the factorial step being computed every time in this model.
RELATED MODELS
Rumor mill is a related simulation of the spread of potentially false information. Another example is the Belief Diffusion model available in the modeling commons.
CREDITS AND REFERENCES
Cosmides, L., Tooby, J.: Are humans good intuitive statisticians after all? Rethinking some conclusions from the literature on judgment under uncertainty. Cognition 58, 1–73 (1996)
Beck, J., Forstmeier, W., 2007. Superstition and belief as inevitable byproducts of an adaptive learning strategy. Hum. Nat. 18, 35.
Wilensky, U. (1999). NetLogo [computer software]. Evanston, IL: Center for Connected Learning and Computer-Based Modeling, Northwestern University. http://ccl.northwestern.edu/netlogo .
Comments and Questions
breed [cats cat] breed [humans human] globals [number-superstitous probability-list number-of-switches human-influence-range belief-influence] humans-own [alpha superstitious? red-count cat-sighting-memory introduced?] to setup clear-all reset-ticks set human-influence-range 5 set number-of-switches 0 set belief-influence 24 set-default-shape humans "person" set-default-shape cats "wolf" setup-consideration-math create-cats number-of-cats [ set color gray setxy random-xcor random-ycor ] create-humans 75 [ set color blue set introduced? false set cat-sighting-memory n-values memory-length [0] ;; Start by remembering no red patches under cats setxy random-xcor random-ycor set alpha random-normal initial-average-alpha 5 set superstitious? false set red-count 1 ;; Avoids starting out with unrealistic probabilities, defaults to .33 or .66 for red-probability ] end to go color-patches ask cats [ cat-wiggle ] ask humans [ wiggle adjust-alpha look ] tick ;set c c + count patches with [pcolor = red and any? cats-here] / count patches with [pcolor = red] ;set true-p c / ticks ;;set avg-alpha (sum [alpha] of n-of 20 humans) / 20 set number-superstitous count humans with [superstitious?] end to cat-wiggle ;;cat procedure ;;cats move more slowly than humans, so that humans probably don't see the same cat twice rt 30 lt 30 fd .1 end to color-patches if ticks mod 50 = 0 [ ask patches [ ifelse random 100 < red-patch-percentage [set pcolor red] [set pcolor black] ] ] end to adjust-alpha ; human procedure if any? humans in-radius human-influence-range with [superstitious?] [ set alpha alpha + other-human-influence set introduced? true ] if introduced? and not any? humans in-radius human-influence-range with [superstitious?] [ set alpha alpha - other-human-influence / superstition-influence-bias ] if alpha < 0 [set alpha 0] if alpha > 100 [set alpha 100] end to wiggle ; human procedure ifelse superstitious? and danger? [face max-one-of cats [distance self] rt 180 rt random 45 lt random 45 fd 3] [ rt random 90 lt random 90 fd 3] end to look if any? neighbors with [pcolor = red] [set red-count red-count + 1] if any? neighbors with [any? cats-here] [ let patches-sighted count neighbors with [pcolor = red and any? cats-here] ifelse patches-sighted = 0 and superstitious? [ if random 100 > alpha [ set cat-sighting-memory bl fput count neighbors with [pcolor = red and any? cats-here] cat-sighting-memory ]] [set cat-sighting-memory bl fput count neighbors with [pcolor = red and any? cats-here] cat-sighting-memory] ;;Remembers the danger of the patch, or 0 if there aren't any red patches under cats consider ] end ;; Calculates the probability of having seen n or more red patches out of memory-length viewings by starting with the probability of 0 or more and removing the probability of 0-(n-1) using a binomial distribution. to consider ;human procedure let p 1.0 ;Represents probability 0 or more let n 0 let danger-impression 0 let red-probability red-count / (ticks + 3 ) foreach cat-sighting-memory [ ; Subtracts probability of seeing n patches when memory contains n+1 cases of seeing a patch if ( ? >= 1) [ set p p - ((item n probability-list) * (1 - red-probability) ^ (memory-length - n) * (red-probability) ^ n ) set n n + 1 ] set danger-impression danger-impression + ? - 1 ] ifelse p * 100 <= alpha + danger-impression / memory-length [ if not superstitious? [ set number-of-switches number-of-switches + 1 set alpha alpha + belief-influence set cat-sighting-memory n-values memory-length [1] set superstitious? true set color orange ask humans in-radius human-influence-range [set alpha alpha + other-human-influence] ] ] [ if superstitious? [ set number-of-switches number-of-switches + 1 set superstitious? false set color blue ask humans in-radius human-influence-range [set alpha alpha - other-human-influence] set alpha alpha - belief-influence] ] end ;; Creates a list where [(item n list) == (memory-length choose n)] ;; seperated to clean up setup code and remove complicated math from it to setup-consideration-math ;observer procedure set probability-list n-values (memory-length + 1) [?] let factorial-list (list) let factorial 1 foreach probability-list [ if ? > 0 [ set factorial factorial * ? ] set factorial-list lput factorial factorial-list ] set probability-list map [(item (memory-length) factorial-list)/((item ? factorial-list) * (item ((memory-length) - ?) factorial-list))] probability-list end
There are 5 versions of this model.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.