Measures spatial autocorrelation based on feature locations and attribute values.
Learn more about how Spatial Autocorrelation: Moran's I works
Illustration

Measures spatial autocorrelation based on feature locations and attribute values.
Learn more about how Spatial Autocorrelation: Moran's I works

This tool honors the environment output coordinate system even though no feature class output is created. Feature geometry is projected to the output coordinate system prior to analysis, so values entered for the Distance Band/Threshold Distance parameter should match those specified in the output coordinate system. All mathematical computations are based on the output coordinate system spatial reference.
Calculations based on either Euclidean or Manhattan distance require projected data to accurately measure distances.
If you will be running several analyses on a single dataset (e.g., analyzing several different fields) or if you have a dataset with more than 3000 features, it is recommended that you construct the spatial weights matrix file prior to analysis.
The Moran's I value and associated Z score and p-value are written to the Command window and passed as derived output.
Given a set of features and an associated attribute, Global Moran's I evaluates whether the pattern expressed is clustered, dispersed, or random. When the Z score or p-value indicates statistical significance, a positive Moran's I index value indicates tendency toward clustering while a negative Moran's I index value indicates tendency toward dispersion.
The Global Moran's I tool calculates a z score and p-value to indicate whether or not you can reject the null hypothsis. In this case, the null hypothesis states that feature values are randomly distributed across the study area. In this tool, the Z score is based on the Randomization Null Hypothesis computation. For more information on Z scores and p-values, see What is a Z score? What is a p-value?.
For line and polygon features, true feature geometric centroids are used in computations.
The input field should contain a variety of non-negative values. The math for this statistic requires some variation in the variable being analyzed; it cannot solve if all input values are 1, for example. If you have incident data, and want to analyze incident intensity, consider aggregating your incident data or using Integrate with the Collect Events tool prior to analysis.
Whenever using shapefiles keep in mind that they cannot store null values. Tools or other procedures that create shapefiles from non-shapefile inputs may store or interpret null values as zero. This can lead to unexpected results.
The Conceptualization of Spatial Relationships used for analysis should be based on your understanding of spatial interaction among the features being analyzed.
For Inverse Distance conceptualization options: when zero is entered for the "Distance Band or Threshold Distance" parameter all features are considered neighbors of all other features; when this parameter is left blank, a default threshold distance will be applied.
When the spatial conceptualization is an Inverse Distance method (Inverse Distance, Inverse Distance Squared, or Zone of Indifference) any two points that are coincident will be given a weight of one to avoid zero division. This assures features are not excluded from analysis.
With inverse distance conceptualizations, weights for distances less than 1 become unstable. The weighting for features separated by less than 1 unit of distance (common with Geographic Coordinate System projections), are given a weight of 1.
Analysis on features with a Geographic Coordinate System projection is not recommended with any of the inverse distance based spatial conceptualization methods.
The "Display Output Graphically" parameter will only work on the Windows operating system. When set to true it will display the results of the tool graphically.
When output is shown graphically, a separate graphics dialog box will be displayed. If you use the tool in a script, set the Display_Output_Graphically parameter to "false", otherwise your script will not complete until you click"Close" on the popup graphic.
In ArcGIS version 9.2, the "Global" standardization option was removed. Global standardization returns the same results as no standardization. Models built with previous versions of ArcGIS that use the Global standardization option may need to be rebuilt.
See the Modeling Spatial Relationships help page for further explanation of this tool's parameters.
Current map layers may be used to define the input feature class. When using layers, only the currently selected features are included in the analysis.
| Parameter | Explanation | Datatype |
|---|---|---|
| Input Feature Class (Required) |
The feature class for which spatial autocorrelation will be calculated.
|
Feature Layer |
| Input Field (Required) |
The numeric field used in assessing spatial autocorrelation.
|
Field |
| Display Output Graphically (Required) |
Specifies whether the tool will display the Moran's I and Z score values graphically.
|
Boolean |
| Conceptualization of Spatial Relationships (Required) |
Specifies how spatial relationships among features are conceptualized.
|
String |
| Distance Method (Required) |
Specifies how distances are calculated when measuring spatial autocorrelation.
|
String |
| Standardization (Required) |
Row standardization is recommended whenever the distribution of your features is potentially biased due to sampling design or an imposed aggregation scheme.
|
String |
| Distance Band or Threshold Distance (Required) |
Specifies a cutoff distance for Inverse Distance and Fixed Distance options. Features outside the specified cutoff for a target feature are ignored in analyses for that feature. However, for Zone of Indifference, the influence of features outside the given distance is reduced with distance while those inside the distance threshold are equally considered. The value entered should match those of the Output Coordinate System.For the Inverse Distance conceptualizations of spatial relationships: A value of zero for this parameter indicates that no threshold distance is applied; when this parameter is left blank, a default threshold value will be computed and applied.This parameter has no effect when "Polygon Contiguity" or "Get Spatial Weights From File" spatial conceptualizations are selected.
|
Double |
| Weights Matrix File (Optional) |
The pathname to a file containing spatial weights that define spatial relationships between features.
|
File |
# Analyze the spatial distribution of 911 calls in a metropolitan area
# using the Spatial Autocorrelation Tool (Global Moran's I)
# Import system modules
import arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create(9.3)
gp.OverwriteOutput = 1
# Local variables...
workspace = "C:\Data\911Calls"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
gp.workspace = workspace
# Copy the input feature class and integrate the points to snap
# together at 500 feet
# Process: Copy Features and Integrate
cf = gp.CopyFeatures("911Calls.shp", "911Copied.shp",
"#", 0, 0, 0)
integrate = gp.Integrate("911Copied.shp #", "500 Feet")
# Use Collect Events to count the number of calls at each location
# Process: Collect Events
ce = gp.CollectEvents("911Copied.shp", "911Count.shp", "Count", "#")
# Add a unique ID field to the count feature class
# Process: Add Field and Calculate Field
af = gp.AddField("911Count.shp", "MyID", "LONG", "#", "#", "#", "#",
"NON_NULLABLE", "NON_REQUIRED", "#",
"911Count.shp")
cf = gp.CalculateField("911Count.shp", "MyID", "[FID]", "VB")
# Create Spatial Weights Matrix for Calculations
# Process: Generate Spatial Weights Matrix...
swm = gp.GenerateSpatialWeightsMatrix("911Count.shp", "MYID",
"euclidean6Neighs.swm",
"K_NEAREST_NEIGHBORS",
"#", "#", "#", 6)
# Spatial Autocorrelation of 911 Calls
# Process: Spatial Autocorrelation (Global Moran's I)
hs = gp.SpatialAutocorrelation("911Count.shp", "ICOUNT",
"false",
"Get Spatial Weights From File",
"Euclidean Distance", "None",
"#", "euclidean6Neighs.swm")
except:
# If an error occurred when running the tool, print out the error message.
print gp.GetMessages()