Recently I have created a segregation model with the calculation of Moran's I, a measure of spatial autocorrelation developed by Patrick Alfred Pierce Moran. In this model, I am using the map of Washington DC.The form of data is vector data.
Each turtle here represents a houshold that is either blue or red. All
turtles want to have neighbors with the same color. The simple rule is
that they move to unoccupied patches until they are happy with their
neighbors.
Here is the map I am using in this model.
In the beginning, 10 to 80 turtles are created in each polygon,
depending on the population data. Turtles are either blue or red. Red
polygons have 60% red and 40% blue. Blue polygons have 60% blue and 40%
red.
In each tick, turtles look at two kinds of neighborhoods to decide
whether they are happy or not. One is their geometrical neighboring
polygons; the other is the 8-connected neighbors. If either neighborhood
has different neighbors more than the specified percentage to be
unhappy, turtle will move to an unoccupied patch in a polygon that is
unoccupied or has the same color with it. The colors of the polygons are
decided by the majority of turtles living in each of them, and the
colors change every tick.
Here is a video recording the simulation process.
How to identify polygon neighbors?
How to export to ArcGIS?
There is a button Export to export the map to GIS. It exports current map to finalmap.csv in data folder. Information will include color and pcentage red for each polygon. To analyze it in ArcGIS, open the csv file in ArcGIS, and export data as a dbf file to replace the oringinal DC.dbf file.
How to calculate Moran's I and verify it?
Moran’s I is a measure of spatial correlation. Values range from −1
(indicating perfect dispersion) to +1 (perfect correlation). If the
different items are randomly distributed, Moran’s I is 0. There is a
slider to choose whether to do row standardization or not. Row
Standardization is a technique for adjusting the weights in a spatial
weights matrix. When weights are row standardized, each weight is
divided by its row sum. The row sum is the sum of weights for a
feature’s neighbors.
I have verified the Moran's I calculated in my model with ArcGIS, and they are the same. To verify it, open final map in GIS, create a new numeric field equal to pcetred. Then, use the tool "Spatial Autocorrelation (Morans I)" in ArcGIS. Choose the numeric field as input, "CONIGUITY_EDGES_CORNERS" as conceptualization relationship, and whether to do Row Standardization. See below for the settings.
Here is the code:
https://github.com/YangZhouCSS/Segregation_MoransI