This paper presents a new, multi-agent approach to the study of religious commitment. Starting with a variant on Schelling’s classic model of mobility and segregation, we develop a multi-agent religion simulation (MARS) that captures a wide range of insights from standard theories of religious choice, social influence, and preference formation. Compared to traditional, statistical methods of analyzing religious change, MARS better describes the actual process by which people make religious choices and better explains the persistence of religious regionalism. In a mobile and pluralistic society, stable regional patterns require a balanced combination of adaptation to one’s current social environment and attachment to one’s personal identity.
The initial conditions are shown in the smaller first image. Click on one of the three subsequent images to view/download the full 2000 turn movie.
Imprinting Imprinting + Selective Search Imprinting, Search, and Community Pull
The full version of the paper is available here.
Laurence R. Iannaccone and Michael D. Makowsky (2007)
Accidental Atheists? Agent-Based Explanations for the
Persistence of Religious Regionalism
Journal for the Scientific Study of
Religion 46 (1), 1–16.
The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun's Java site.
Instructions can be found below the applet window. For a quick start to running thought experiments from the paper, go here.
created with NetLogo
view/download model file: MARS.nlogo
MARS 1s: Multi-Agent Religion Simulation
OVERVIEW:
MARS is a social science simulation of religious migration and
conformity created within the Netlogo programmable modeling
environment. Agents and the environment they exist within are
programmed constructs whose attributes and the rules they operate by
are a combination of programmed algorithms, endogenous variables, and
exogenous parameters.
The focus of this guide is to help the user understand the model and
what it simulates, and to create his or her own experiments by
adjusting the observer controlled parameters and employing the full
range of tools available.
All are encouraged to read the story behind the model, the basics of
the observer interface, and the section on getting started. The tools
and techniques described in the advanced section are just that - useful
to researchers with specific goals, but not necessary for most
experiments.
THE STORY
Agents exist within a two dimensional space (lattice) not unlike a
checkerboard, Divided into a number of regions set by the observer (1
– 4). Agents move randomly, exogenously driven by the program to
chosen patches, and upon arrival choose whether or not to maintain
their religion (color) based on their original religion (when created),
current religion (the one they had before moving), the religions of
each of their new neighbors (community). The choice process amounts to
evaluating a utility function for each possible choice of religion, and
weighting original by the "origin" parameter, current religion by the
"inertia" parameter, and the influence of neighbor religions by the
"community" parameters.
Additionally, in more advanced models, agents have a choice to make
regarding their congregation attendance, and quantity represented by
shading. Attendance is our chosen variable for representation of agent
religiosity, as it is the most accepted metric of religiosity and it
has a clear cut community dynamic. Similar to religion selection,
Attendance decisions are a utility evaluation based on original
attendance, current attendance, and community attendance.
QUICK START
Using the Scenarios.
Key sequence: Click Scenario, then click on either "Basic" "Conform" or "Resist"
You may then either click Run/Pause to run it indefinitely, or
Options-->Skip-ahead-n and then choose the exact number of moves for
the simulation to run.
Note: to replicate runs from the paper, the Recall button must be
clicked twice after selecting a scenario to begin from the exact
starting assortment.
GETTING STARTED:
What kind of agents do you want?
This is for most experiments at the core of what you are trying to
accomplish. There are two questions to be asked in the process:
1) How many different types (religions) of agents do you want?
2) In what relative ratios do you want them to populate your model?
These preferences are both met by adjusting the parameter slider
adjacent to each color button. If you would like some portion of your
agents to be red, simply set the
R_num¬ slider to a number greater than zero. Do this for each type
you wish to be present. The ratio that will be realized in the initial
conditions of your model will simply be that type’s
(color’s) assigned number as a fraction of the sum pf all the
_num¬ slider settings.
Where do they go?
Designing your environment and populating it with agents is an obviously important, and relatively straightforward task.
1) Choose your number of regions by moving the slider. You may have between one and four regions.
2) Click Start/End. Notice that if you chose multiple regions that lines of gray patches divide the lattice.
3) Choose a population density. You have between 1 and 100 percent density.
4) Click Populate. Each time you click populate a region will fill with
agents to your prescribed density. If you have three regions you will
have to click populate, then wait for it to fill three successive times
Note: If after all regions are filled you click populate an additional
time the lattice spaces unoccupied will be filled by the density
percentage chosen ( ex if there are 10 unoccupied spaces and you click
populate with 60% density, 6 of the remaining spaces will be filled).
Once these basic parameters have been set you may run the model by
clicking Run/Pause. Clicking again will pause the model, and it can be
restarted by clicking it yet again.
How much do they move?
Agents operating within the model once it is running will be
exogenously forced to move on a percentage of their turns. The
move-rate¬ slider sets this percentage.
What are their attributes?
Finally, you wish to design your agents. For each type used within your
model you have the option of assigning a set of relative values
regarding the religion and attendance related attributes.
This is accomplished by adjusting a series of sliders that dictate the
relative strength and weaknesses of your agents in six different
categories.
- [j_ type] equals the utility associated with choosing to maintain (or
return to) one’s type-of-origin. If zero, then the agent displays
no attachment to his religious upbringing.
- [k_ self] equals the utility associated with not changing one’s
current type. If zero, then the agent displays no internalized
“inertia” across periods.
- [i_ pull] equals the “social” utility that the agent
receives from neighbors who share his type. If zero, then neighbors of
type-i exert no “pull” on their co-religionists. This
effect is weighted by the number of
type-i neighbors relative to the number of potential (not actual)
neighbors.
---------------------------------------------------
PROGRAMMING NOTES:
MINOR BUGS:
- Re. "Store" and "Recall" buttons: Stored state "1" corresponds to
state never seen, nor used. It's what would happen *if* each turtle
adjusted as it was dropped on board. Nice to know, but not worth
computing and saving in general? Delete from "add turtles" procedure
and add as a special option? Slows "populate". At the very least,
should reverse displayed numbering states "0" and "1", and then
suppress display of state "0" except via special command.