优化的热点分析 (Spatial Statistics)
摘要
假设存在事件点或权重要素(点或面),可以使用 Getis-Ord Gi* 统计数据创建具有统计显著性的热点和冷点的地图。它通过评估输入要素类的特征来生成可优化结果。
插图
用法
-
此工具用于识别具有统计显著性的高值(热点)和低值(冷点)的空间聚类。它自动聚合事件数据,识别适当的分析范围,并纠正多重测试和空间依赖性。该工具对数据进行查询,以确定可优化热点分析结果的设置。如果要完全控制这些设置,可以改用热点分析工具。
注:如果您重点关注各点存在与否,而不是每个点的特定测量属性,则事件数据为表示事件(犯罪、交通事故)或对象(树、店铺)的点。
此工具使用z 得分、p 值 和置信区间 (Gi_Bin) 为输入要素类中的每个要素创建一个新的输出要素类。
Gi_Bin字段识别统计显著性热点和冷点,使用错误发现率 (FDR) 校正方法纠正了多重测试与空间依赖性。置信区间 +3 到 -3 中的要素(含 +3 或 -3 Gi_Bin 值的要素)具有置信度为 99% 的统计显著性;置信区间 +2 到 -2 中的要素反映置信度为 95% 的统计显著性;置信区间 +1 到 -1 中的要素反映置信度为 90% 的统计显著性;而 Gi_Bin 0 中要素的聚类则没有统计学意义。
z 得分和 p 值字段不体现任何类型的 FDR(错误发现率)校正。有关 z 得分的详细信息,请参阅什么是 z 得分?什么是 p 值?
如果未投影输入要素类(即,坐标单位为度、分和秒),或者将输出坐标系设置为地理坐标系,则采用弦测量方法计算距离。使用弦距离测量法是因为此方法不仅计算速度快,而且提供真实测地线距离的良好估测,至少对于彼此 30 度以内的点是这样。弦距离以球体为基础,而不是以地球实际的扁椭圆体为基础。给定地球表面上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。弦距离以米为单位报告。
警告:如果您的研究区延伸超过 30 度,则需确保投影数据。测地线距离超过 30 度时,弦距离不是理想的估测方法。
输入要素可以是点或面。对于面要素,则需要分析字段。
如果具有分析字段,则应包含不同值。此统计数学方法要求待分析的变量存在一定程度的变化;例如,如果所有输入都是 1 便无法求解。
借助分析字段,该工具适合包括采样数据在内的所有数据(点或面)。实际上,即使存在过采样,该工具依然有效、可靠。存在很多要素(过采样)时,该工具拥有更多信息用以计算准确、可靠的结果。存在很少要素(欠采样)时,该工具依然尽可能生成准确、可靠的结果,但可用信息大大减少。
由于该工具采用的基础 Getis-Ord Gi* 统计值具有渐进正态性,所以即使分析字段含偏斜数据,结果将依然可靠。
对于点数据,您可能对分析每个点要素相关的数据值感兴趣,因此将提供一个分析字段。其他情况下,您会对评估点位置或点事件的空间模式(聚类)感兴趣。是否提供分析字段取决于您提出的问题。
- 通过分析字段分析点要素时,您可以回答以下问题:高值和低值会聚集在哪里?
- 所选的分析字段可代表:
- 计数(如街道十字路口处发生的交通事故数)
- 比率(如城市失业率,各城市以点要素表示)
- 平均值(如学校间数学测验的平均得分)
- 指数(如国家汽车经销商的消费者满意度得分)
- 在无分析字段的情况下分析点要素时,您可以识别点聚类异常(统计显著性)强烈或稀疏之处。此类分析可回答如下问题:何处存在很多点?何处存在很少点?
如果没有提供分析字段,工具将聚合所有点以获得点计数,从而用作分析字段。存在三种可能的聚合方案:
- 对于COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONS,计算合适的面像元大小,并利用所得结果创建鱼网面网格。鱼网将固定在事件点上方,并将计算每个面像元内的点数量。如果未提供限定可能发生事件的区域的边界面要素图层,则会删除不含点的鱼网像元,而仅分析剩余像元。如果提供边界面要素图层,则保留并分析边界面范围内的所有鱼网像元。每个面像元的点计数都将用作分析字段。
- 对于 COUNT_INCIDENTS_WITHIN_AGGREGATION_POLYGONS,您需要提供事件聚合面要素图层。将计算每个面内的点事件数,然后对这些面及其相关计数进行分析。当点与行政单位(如普查区、县或学区)相关联时,COUNT_INCIDENTS_WITHIN_AGGREGATION_POLYGONS 是一项合适的聚合策略。如果要保持研究区域在多项分析中固定以增强比较,也可以使用该选项。
- 对于 SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS,将计算捕捉距离并使用该距离聚合附近的事件点。将为每个聚合点提供一个计数,该计数反映捕捉到一起的事件数量。然后将此事件计数用作分析字段来分析这些聚合点。如果您有许多重合点或接近重合的点,并且希望维护原始点数据空间模式的各个方面,则 SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS 是一项合适的聚合策略。很多情况下,您想要同时尝试 SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS 和 COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONS 两种方法,以便比较哪种方法更能反映原始点数据空间模式的结果。鱼网解决方案可以人工分离点事件聚类,但对于有些人而言,其输出比加权点输出更容易解释。
警告:仅当拥有所有已知点事件并且确定当前分析的点分布中没有任何偏差时,才能在不指定分析字段的情况下分析点数据。对于采样数据,通常都会提供分析字段(除非您对采样方案的空间模式特别感兴趣)。
如果为事件数据聚合方法选择 COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONS,则可以选择性地提供限定可能发生事件的区域的边界面要素图层。如果未提供任何边界面,工具将无法确定不含事件的位置是否应当为零,进而无法指示该位置是否可能存在事件但事件未发生;也无法确定因该位置不可能发生事件,是否应从分析中将其移除。因此,如果未提供边界面,则仅保留至少含一个事件的鱼网像元进行分析。如果这不是您需要的行为,您可以提供限定可能发生事件的区域的边界面要素图层,以确保保留边界面内的所有位置。不含基础事件的鱼网像元的事件计数将为零。
将从分析中排除限定可能发生事件的区域的边界面或事件聚合面范围之外的所有事件。
- 如果您拥有 ArcGIS Spatial Analyst 扩展模块,可以选择创建输入要素点的密度表面。对于输入要素点,如果为事件数据聚合方法指定分析字段或选择 SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS 方法,则将启用密度表面参数。输出的密度表面将裁剪为环境设置中指定的栅格分析掩膜。如果未指定栅格掩膜,则输出栅格图层将在输入要素周围裁剪为一个凸包。
如果要识别空间-时间热点,则应使用生成空间权重矩阵和热点分析 (Getis-Ord Gi*)工具。有关空间-时间聚类分析的详细信息,请参阅空间-时间分析主题。
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
-
在 ArcMap 中运行此工具时,输出要素会自动添加到内容列表,同时对 Gi_Bin 字段应用默认渲染。所应用的由热到冷的渲染由 <ArcGIS>/Desktop10.x/ArcToolbox/Templates/Layers 路径下的图层文件进行定义。需要时,可通过导入模板图层符号系统重新应用默认渲染。
在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解释)为零。某些情况下,空值则以极大的负值储存于 shapefile 中。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项。
语法
参数 | 说明 | 数据类型 |
Input_Features |
将要执行热点分析的点或面要素类。 | Feature Layer |
Output_Features |
接收 z 得分、p 值和 Gi_Bin 结果的输出要素类。 | Feature Class |
Analysis_Field (可选) |
要评估的数值字段(事件数、犯罪率和测试得分等)。 | Field |
Incident_Data_Aggregation_Method (可选) |
用于创建加权要素以通过事件点数据进行分析的聚合方法。
| String |
Bounding_Polygons_Defining_Where_Incidents_Are_Possible (可选) |
面要素类定义可能会发生输入要素事件的区域。 | Feature Layer |
Polygons_For_Aggregating_Incidents_Into_Counts (可选) |
用于聚合输入要素事件以获得各面要素的事件计数的面。 | Feature Layer |
Density_Surface (可选) |
点输入要素的输出密度表面。此参数仅在输入要素为点且您具有 ArcGIS Spatial Analyst 扩展模块 的情况下才启用。创建的输出表面将裁剪为环境设置中指定的栅格分析掩膜。如果未指定栅格掩膜,则输出栅格图层将在输入要素周围裁剪为一个凸包。 | Raster Layer |
代码实例
下面的 Python 窗口脚本演示了如何使用优化热点分析 (OptimizedHotSpotAnalysis) 工具。
import arcpy
arcpy.env.workspace = r"C:\OHSA"
arcpy.OptimizedHotSpotAnalysis_stats("911Count.shp", "911OptimizedHotSpots.shp", "#", "SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS", "#", "#", "calls911Surface.tif")
以下独立 Python 脚本演示了如何使用优化热点分析 (OptimizedHotSpotAnalysis) 工具。
# Analyze the spatial distribution of 911 calls in a metropolitan area
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.overwriteOutput = True
# Local variables...
workspace = r"C:\OHSA\data.gdb"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# Create a polygon that defines where incidents are possible
# Process: Minimum Bounding Geometry of 911 call data
arcpy.MinimumBoundingGeometry_management("Calls911", "Calls911_MBG", "CONVEX_HULL", "ALL", "#", "NO_MBG_FIELDS")
# Optimized Hot Spot Analysis of 911 call data using fishnet aggregation method with a bounding polygon of 911 call data
# Process: Optimized Hot Spot Analysis
ohsa = arcpy.OptimizedHotSpotAnalysis_stats("Calls911", "Calls911_ohsaFishnet", "#", "COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONS", "Calls911_MBG", "#", "#")
except:
# If any error occurred when running the tool, print the messages
print arcpy.GetMessages()
环境
- 输出坐标系
在进行分析之前将要素几何投影到输出坐标系。所有数学计算都基于输出坐标系空间参考。输出坐标系基于度、分、秒时,测地线距离用弦距离估测。