SaraClifton-ReligiousAffiliationSwitching-EECS472
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model demonstrates the dynamics of religious affiliation switching. People claiming no religious affiliation constitute the fastest growing religious minority in many countries, including the United States (Martin 2006). In fact, the religious "nones" are the only group growing in all 50 US states (Kosmin 2009). Although many scholars attribute the decline of religious affiliation to generational changes, roughly half of the US population changes religious affiliation at some point in their life, often several times (Pew 2009). This suggests that religious affiliation shift can be modeled as social group competition, with different religious groups competing for members (Abrams 2011). Such models predict that religious coexistence is not a stable state; the unaffiliated group will grow until all organized religion has disappeared. Whether or not this comes to fruition, all people have a stake in the outcome.
HOW IT WORKS
Initially, COMMUNITY-SIZE agents are given a random unaffiliated utility sampled from a normal distribution with mean U-X and standard deviation U-X-VAR (taken to be 0 for initial tests). A proportion INITIAL-X of the population is unaffiliated and the rest are affiliated.
At each tick, affiliated agents switch to unaffiliated with probability TIME-SCALE $u_xx^a$, where $a$ is initially set to 1 to test agreement with \eqref{abramsds}. Unaffiliated agents switch to affiliated with probability TIME-SCALE $* (1-u_x)*(1-x)^a$.
At each tick, people switch affiliations according the previous transition probabilities. However, if an agent switches from affiliated to unaffiliated (or vice versa) in that time step, it will lose some affiliated friends, but it may gain a new unaffiliated friend.
Each time an agent switches from affiliated to unaffiliated, it calculates what proportion of its friends are unaffiliated. If that proportion is less than the MIN-FRIEND-SIMILARITY desired by all agents, the agent break ties with random affiliated friends until the MIN-FRIEND-SIMILARITY proportion is reached.
In addition to losing friends after switching from affiliated to unaffiliated, each agent might gain a new similarly affiliated friend proportional to his loneliness; in other words, the agent will make friends with the nearest similarly affiliated agent with probability NEW-FRIEND-CHANCE / (number-friends + 1). If an agent already has MAX-FRIENDS, it won't attempt to make more friends.
HOW TO USE IT
Using the sliders, choose the COMMUNITY-SIZE and the AVERAGE-NODE-DEGREE (average number of links coming out of each node).
If NETWORK? is on, a network is created based on proximity (Euclidean distance) between nodes. A node is randomly chosen and connected to the nearest node that it is not already connected to. This process is repeated until the network has the correct number of links to give the specified average node degree.
The INITIAL-X slider determines how many of the nodes will start the simulation unaffiliated.
The U-X and U-VAR-X sliders change the mean and standard deviation, respectively, of the distribution of initial unaffiliated utilities for agents.
Then press SETUP to create the network. Press GO to run the model.
The TIME-SCALE slide determines how fast the reactions happen. The AFFILIATION-POWER slider determines the exponent of the power law transition rate.
The MIN-FRIEND-SIMILARITY slide determines the minimum proportion of similarly affiliated friends desired by all agents. The NEW-FRIEND-CHANCE slider is the chance of making a new friend each time step if you have no friends. The MAX-FRIENDS slider determines how many friends an agent must have before it stops looking for more friends.
THINGS TO NOTICE
As the simulation runs, notice how the proportion of unaffiliated and affiliated members of the population changes. Do the group affiliation proportions settle into an equilibrium state?
Also notice how the number of links (friendships) changes over time. Are friendships mostly forming or breaking? How does that correlate with the population affiliation breakdown?
Finally notice how the visual representation of the network changes. The initial network is spacially clustered, but how does that change over time?
THINGS TO TRY
Try changing the distribution of utilities using the U-X and U-X-VAR sliders. How does this affect the final state?
Try changing the initial proportion of unaffiliated members INITIAL-X. Does this have any effect on the final outcome?
Try changing the AFFILIATION-POWER? See what the difference is on the equilibrium state for values above and below 1. How does the value change the shape of the affiliation proportion curves?
Try changing MIN-FRIEND-SIMILARITY and NEW-FRIEND-CHANCE. How does this affect the number of links over time? Does it impact the final state or the visual representation of the network?
EXTENDING THE MODEL
Try incorporating birth, death, and immigration into the model. Different affiliations may have different birth and death rates. Immigrants may have different religious affiliations from the current population.
NETLOGO FEATURES
This model does not use the NW extention, so I use layout-spring to make the network more visually appealing.
RELATED MODELS
The network setup is based on Uri Wilensky's Virus on a Network: http://ccl.northwestern.edu/netlogo/models/VirusonaNetwork
CREDITS AND REFERENCES
NetLogo Modeling Commons URL: http://modelingcommons.org/browse/onemodel/4620#modeltabsbrowseinfo
Abrams et al. paper: http://dmabrams.esam.northwestern.edu/pubs/Abrams%20Yaple%20and%20Wiener%20-%20Dynamics%20of%20social%20group%20competition---modeling%20the%20decline%20of%20religious%20affiliation%20-%20PRL%20107,%20088701%20(2011).pdf
Comments and Questions
;; TODO ;; 3. add birth/death ;; 4. add immigration turtles-own [ unaffiliated-utility ;; utility of unaffiliation for individual affiliation ;; 1 is unaffiliated, 0 is affiliated ] to setup clear-all setup-nodes if network? [ setup-spatially-clustered-network ] reset-ticks end to setup-nodes set-default-shape turtles "person" create-turtles community-size [ set size 2 setxy (random-xcor * 0.95) (random-ycor * 0.95) set unaffiliated-utility random-normal u-x u-x-var ;; set individual utility for being unaffiliated if unaffiliated-utility > 1 [set unaffiliated-utility 1] ;; make sure utility falls in [0,1] if unaffiliated-utility < 0 [set unaffiliated-utility 0] set affiliation 0 ;; set all to affiliated first set color blue ;; affiliated will be blue if random-float 1 < initial-x [ set affiliation 1 set color red ] ;; set initial proportion to unaffiliated, will be red ] end ;; Taken from Uri Wilensky's 'Virus on a Network' to setup-spatially-clustered-network let num-links (average-node-degree * community-size) / 2 while [count links < num-links ] [ ask one-of turtles [ let choice (min-one-of (other turtles with [not link-neighbor? myself]) [distance myself]) if choice != nobody [ create-link-with choice ] ] ] ; make the network look a little prettier repeat 10 [ layout-spring turtles links 0.3 (world-width / (sqrt community-size)) 1 ] end to go let affiliated-turtles turtles with [affiliation < 0.5] let unaffiliated-turtles turtles with [affiliation > 0.5] ifelse network? [ switch-with-network affiliated-turtles unaffiliated-turtles ] [ switch-without-network affiliated-turtles unaffiliated-turtles ] tick end to switch-without-network [ affiliated-turtles unaffiliated-turtles ] ;; affiliated turtles switch with probability ask affiliated-turtles [ if random-float 1 < time-scale * (unaffiliated-utility * proportion-unaffiliated ^ affiliation-power) [ set affiliation 1 set color red ] ] ;; unaffiliated turtles switch with probability ask unaffiliated-turtles [ if random-float 1 < time-scale * ((1 - unaffiliated-utility ) * (1 - proportion-unaffiliated) ^ affiliation-power) [ set affiliation 0 set color blue ] ] end to switch-with-network [ affiliated-turtles unaffiliated-turtles ] ;; affiliated turtles switch with probability ask affiliated-turtles [ if random-float 1 < time-scale * (unaffiliated-utility * proportion-neighbors-unaffiliated ^ affiliation-power) [ change-affiliation unaffiliated-turtles affiliated-turtles ] if count unaffiliated-turtles > 0 [make-friends unaffiliated-turtles] ] ;; unaffiliated turtles switch with probability ask unaffiliated-turtles [ if random-float 1 < time-scale * ((1 - unaffiliated-utility ) * (1 - proportion-neighbors-unaffiliated) ^ affiliation-power) [ change-affiliation affiliated-turtles unaffiliated-turtles ] if count affiliated-turtles > 0 [make-friends affiliated-turtles] ] ;; make network more elastic pretty-network end ;; turtle procedure to change-affiliation [ in-group out-group ] ifelse color = blue [ set color red ] [ set color blue ] ifelse affiliation > 0.5 [ set affiliation 0 ] [ set affiliation 1 ] let diff-neighbors link-neighbors with [abs(affiliation - [affiliation] of myself) > 0.5] if count diff-neighbors > 0 [ break-friendships diff-neighbors ] end ;; turtle procedure to break-friendships [diff-neighbors] ;; if you have more differently affiliated friends than you want, kill friendships let num-unwanted-friends count diff-neighbors - round ( (1 - min-friend-similarity) * count link-neighbors) if num-unwanted-friends > 0 [ let unwanted-friends n-of num-unwanted-friends diff-neighbors ask unwanted-friends [ ask link-with myself [ die ] ] ] end ;; turtle procedure to make-friends [in-group] ;; make a similarly affiliated nearby friend proportional to your loneliness (i.e. inversely proportional to number of friends) if random 100 < (new-friend-chance / ( count link-neighbors + 1 )) and count link-neighbors < max-friends [ ask min-one-of in-group [distance myself] [create-link-with myself] ] end to pretty-network repeat 10 [ layout-spring turtles links 0.3 (world-width / (sqrt community-size)) 1] end to-report proportion-unaffiliated report ( count turtles with [affiliation > 0.5] ) / ( count turtles ) end to-report proportion-neighbors-unaffiliated ifelse count link-neighbors > 1 [ report ( count link-neighbors with [affiliation > 0.5] ) / ( count link-neighbors ) ] [ report 0 ] end
There is only one version of this model, created over 8 years ago by Sara Clifton.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
SaraClifton-FinalProjectReport.pdf | Final project report (June 3, 2016) | over 8 years ago, by Sara Clifton | Download | |
SaraClifton-ReligiousAffiliationSwitching-EECS472.png | preview | Preview for 'SaraClifton-ReligiousAffiliationSwitching-EECS472' | over 8 years ago, by Sara Clifton | Download |
SaraClifton_May16.pdf | Progress report #2 (May 16, 2016) | over 8 years ago, by Sara Clifton | Download | |
SaraClifton_May23.pdf | Progress report #3 (May 23, 2016) | over 8 years ago, by Sara Clifton | Download | |
SaraClifton_May9.pdf | Progress report #1 (May 9, 2016) | over 8 years ago, by Sara Clifton | Download |