Spatial Autocorrelation (Global Moran's I) (Spatial Statistics)
Summary
Measures spatial autocorrelation based on feature locations and attribute values using the Global Moran's I statistic. Results are accessible from the Results window.
Learn more about how Spatial Autocorrelation (Global Moran's I) works
Illustration
Usage
-
The Spatial Autocorrelation tool returns five values: the Moran's I Index, Expected Index, Variance, z-score, and p-value. These values are accessible from the Results window and are also passed as derived output values for potential use in models or scripts. Optionally, this tool will create an HTML file with a graphical summary of results. Double-clicking on the HTML file in the Results window will open the HTML file in the default Internet browser. Right-clicking on the Messages entry in the Results window and selecting View will display the results in a Message dialog box. If you execute this tool in the foreground, output values will also be displayed in the progress dialog box.
Note:- If this tool is part of a custom model tool, the HTML link will only appear in the Results window if it is set as a model parameter prior to running the tool.
- For best display of HTML graphics, ensure your monitor is set for 96 DPI.
-
Given a set of features and an associated attribute, the Spatial Autocorrelation tool 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 hypothesis. In this case, the null hypothesis states that feature values are randomly distributed across the study area.
-
The z-score is based on the randomization null hypothesis computation. For more information on z-scores, see What is a z-score? What is a p-value?
-
The Input Field should contain a variety of 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 want to use this tool to analyze the spatial pattern of incident data, consider aggregating your incident data.
-
Calculations based on either Euclidean or Manhattan distance require projected data to accurately measure distances.
-
In ArcGIS 10, optional graphical output is no longer displayed automatically. Instead, an HTML file summarizing results is created. To view results, double-click on the HTML file in the Results window. Custom scripts or model tools created prior to ArcGIS 10 that use this tool may need to be rebuilt. To rebuild these custom tools, open them, remove the Display Results Graphically parameter, then re-save.
-
For line and polygon features, feature centroids are used in distance computations. For multipoints, polylines, or polygons with multiple parts, the centroid is computed using the weighted mean center of all feature parts. The weighting for point features is 1, for line features is length, and for polygon features is area.
-
Your choice for the Conceptualization of Spatial Relationships parameter should reflect inherent relationships among the features you are analyzing. The more realistically you can model how features interact with each other in space, the more accurate your results are. Explore these recommendations. Here are some additional tips:
-
FIXED_DISTANCE_BAND
The default value for the Distance Band or Threshold Distance parameter ensures that each feature has at least one neighbor, and this is important. But often, this default will not be the most appropriate distance to use for your analysis.
Click here to learn more about the Distance Band or Threshold Distance parameter.
- INVERSE_DISTANCE or INVERSE_DISTANCE_SQUARED
When 0 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, the default threshold distance is applied.
Weights for distances less than 1 become unstable. The weighting for features separated by less than one unit of distance (common with geographic coordinate system projections) is 1.
Caution:Analysis on features with a geographic coordinate system projection is not recommended when you select any of the inverse distance-based spatial conceptualization methods (INVERSE_DISTANCE, INVERSE_DISTANCE_SQUARED, or ZONE_OF_INDIFFERENCE).
For these Inverse Distance options, any two points that are coincident are given a weight of 1 to avoid zero division. This ensures features are not excluded from analysis.
-
FIXED_DISTANCE_BAND
-
Additional options for the Conceptualization of Spatial Relationships parameter are available using the Generate Spatial Weights Matrix or Generate Network Spatial Weights tools. To take advantage of these additional options, use one of these tools to construct the spatial weights matrix file prior to analysis; select GET_SPATIAL_WEIGHTS_FROM_FILE for the Conceptualization of Spatial Relationships parameter; and, for the Weights Matrix File parameter, specify the path to the spatial weights file you created.
-
Map layers can be used to define the Input Feature Class. When using a layer with a selection, only the selected features are included in the analysis.
- If this tool is part of a custom model tool, the HTML link will only appear in the Results window if it is set as a model parameter prior to running the tool.
- For best display of HTML graphics, ensure your monitor is set for 96 DPI.
- ASCII formatted spatial weights matrix files:
- Weights are used "as is". Missing feature-to-feature relationships are treated as zeros.
- If the weights are row standardized, results will likely be incorrect for analyses on selection sets. If you need to run your analysis on a selection set, convert the ASCII spatial weights file to a .swm file by reading the ASCII data into a table, then using the CONVERT_TABLE option with the Generate Spatial Weights Matrix tool.
- .SWM formatted spatial weights matrix file
- If the weights are row standardized, they will be restandardized for selection sets. Otherwise weights are used "as is".
Running your analysis with an ASCII formatted spatial weights matrix file is memory intensive. For analyses on more than about 5000 features, consider converting your ASCII formatted spatial weights matrix file into a .swm formatted file. First put your ASCII weights into a formatted table (using Excel, for example). Next run the Generate Spatial Weights Matrix tool using CONVERT_TABLE for the Conceptualization of Spatial Relationships parameter. The output will be a .swm formatted spatial weights matrix file.
For polygon features, you will almost always want to choose Row for the Standardization parameter. Row Standardization mitigates bias when the number of neighbors each feature has is a function of the aggregation scheme or sampling process, rather than reflecting the actual spatial distribution of the variable you are analyzing.
-
The Modeling Spatial Relationships help topic provides additional information about this tool's parameters.
If you provide a Weights Matrix File with a .SWM or .swm extension, this tool is expecting a spatial weights matrix file created using either the Generate Spatial Weights Matrix or Generate Network Spatial Weights tools. Otherwise this tool is expecting an ASCII formatted spatial weights matrix file. In some cases, behavior is different depending on which type of spatial weights matrix file you use:
When 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. See also Geoprocessing considerations for shapefile output.
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.
Syntax
Parameter | Explanation | Data Type |
Input_Feature_Class |
The feature class for which spatial autocorrelation will be calculated. | Feature Layer |
Input_Field |
The numeric field used in assessing spatial autocorrelation. | Field |
Generate_Report |
| Boolean |
Conceptualization_of_Spatial_Relationships |
Specifies how spatial relationships among features are conceptualized.
| String |
Distance_Method |
Specifies how distances are calculated from each feature to neighboring features.
| String |
Standardization |
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 |
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 that of the output coordinate system. For the Inverse Distance conceptualizations of spatial relationships, a value of 0 indicates that no threshold distance is applied; when this parameter is left blank, a default threshold value is computed and applied. This default value is the Euclidean distance that ensures every feature has at least one neighbor. This parameter has no effect when Polygon Contiguity or Get Spatial Weights From File spatial conceptualizations are selected. | Double |
Weights_Matrix_File (Optional) |
The path to a file containing spatial weights that define spatial relationships among features. | File |
Code Sample
The following Python Window script demonstrates how to use the SpatialAutocorrelation tool.
import arcpy arcpy.env.workspace = r"c:\data" arcpy.SpatialAutocorrelation_stats("olsResults.shp", "Residual","NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE","EUCLIDEAN DISTANCE", "NONE", "#","euclidean6Neighs.swm")
The following stand-alone Python script demonstrates how to use the SpatialAutocorrelation tool.
# Analyze the growth of regional per capita incomes in US # Counties from 1969 -- 2002 using Ordinary Least Squares Regression # Import system modules import arcpy # Set the geoprocessor object property to overwrite existing outputs arcpy.gp.overwriteOutput = True # Local variables... workspace = r"C:\Data" try: # Set the current workspace (to avoid having to specify the full path to the feature classes each time) arcpy.workspace = workspace # Growth as a function of {log of starting income, dummy for South # counties, interaction term for South counties, population density} # Process: Ordinary Least Squares... ols = arcpy.OrdinaryLeastSquares_stats("USCounties.shp", "MYID", "olsResults.shp", "GROWTH", "LOGPCR69;SOUTH;LPCR_SOUTH;PopDen69", "olsCoefTab.dbf", "olsDiagTab.dbf") # Create Spatial Weights Matrix (Can be based off input or output FC) # Process: Generate Spatial Weights Matrix... swm = arcpy.GenerateSpatialWeightsMatrix_stats("USCounties.shp", "MYID", "euclidean6Neighs.swm", "K_NEAREST_NEIGHBORS", "#", "#", "#", 6) # Calculate Moran's I Index of Spatial Autocorrelation for # OLS Residuals using a SWM File. # Process: Spatial Autocorrelation (Morans I)... moransI = arcpy.SpatialAutocorrelation_stats("olsResults.shp", "Residual", "NO_REPORT", "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 arcpy.GetMessages()
Environments
- Output Coordinate System
Feature geometry is projected to the Output Coordinate Systemprior to analysis. All mathematical computations are based on the Output Coordinate System spatial reference.