优化的热点分析 (空间统计)

摘要

假设存在事件点或加权要素(点或面),可以使用 Getis-Ord Gi* 统计数据创建具有统计显著性的热点和冷点的地图。 评估输入要素类的特征以产生最佳结果。

了解有关优化的热点分析原理的详细信息

插图

“优化热点分析”工具图示

使用情况

  • 此工具用于识别具有统计显著性的高值(热点)和低值(冷点)的空间聚类。 它自动聚合事件数据,识别适当的分析范围,并纠正多重测试和空间依赖性。 该工具对数据进行查询,以确定用于生成可优化热点分析结果的设置。 如果要完全控制这些设置,可以改用热点分析工具。

    注:

    如果您重点关注各点存在与否,而不是每个点的特定测量属性,则事件数据为表示事件(犯罪、交通事故)或对象(树、店铺)的点。

  • 计算的设置用于生成可优化热点分析结果,这些结果在工具执行期间以消息形式报告。 相关工作流和算法在热点分析工作原理中进行了详细说明。

  • 此工具使用 z 得分、p 值和置信区间 (Gi_Bin) 为输入要素类中的每个要素创建一个新的输出要素类。 还包括具有相邻要素数的字段 (NNeighbors),每个要素在进行计算的过程中都会涉及到这些相邻要素数。

  • 该工具的输出包括一个直方图,其用于绘制所分析变量(分析字段或每个面中的事件计数)的值。 可通过在内容窗格中选择按图表列出选项卡 按图表列出 来访问该直方图。

  • 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* 统计值具有渐进正态性,所以即使分析字段含偏斜数据,结果将依然可靠。

  • 对于点数据,您可能对分析每个点要素相关的数据值感兴趣,因此将提供一个分析字段。 其他情况下,您会对评估点位置或点事件的空间模式(聚类)感兴趣。 是否提供分析字段取决于您提出的问题。

    • 通过分析字段分析点要素时,您可以回答诸如“高值和低值会聚集在哪里?”一类的问题。
    • 所选的分析字段可代表下列各项:
      • 计数(如街道十字路口处发生的交通事故数)
      • 比率(如城市失业率,各城市以点要素表示)
      • 平均值(如学校间数学测验的平均得分)
      • 指数(如国家汽车经销商的消费者满意度得分)
    • 在无分析字段的情况下分析点要素时,您可以识别点聚类异常(统计显著性)强烈或稀疏之处。 可通过此类分析回答诸如“何处存在很多点?”一类的问题。 何处存在很少点?
  • 如果没有提供分析字段,工具将聚合所有点以获得点计数,从而用作分析字段。 存在三种可能的聚合方案:

    • 对于在渔网格网内计数事件在六边形格网内计数事件,计算合适的面像元大小,并利用所得结果创建渔网面格网或六边形面格网,该格网将固定在事件点上方,并将计算每个面像元内的点数。 如果未提供定义事件潜在发生位置的边界面要素图层,则会删除不含点的像元,而仅分析剩余像元。 如果提供边界面要素图层,则保留并分析边界面范围内的所有像元。 每个面像元的点计数都将用作分析字段。
      注:

      虽然渔网格网是更常用的聚合形状,但在某些分析中,六边形可能是更好的选择

    • 对于在聚合面内计数事件,您需要提供用于将事件聚合到计数的面要素图层。 将计算每个面内的点事件数,然后对这些面及其相关计数进行分析。 当点与行政单位(如普查区、县或学区)相关联时,在聚合面内计数事件选项是一项合适的聚合策略。 如果要保持研究区域在多项分析中固定以增强比较,也可以使用该选项。
    • 对于捕捉附近事件以创建加权点,将计算捕捉距离并使用该距离聚合附近的事件点。 将为每个聚合点提供一个计数,该计数反映捕捉到一起的事件数量。 然后将此事件计数用作分析字段来分析这些聚合点。 如果您有许多重合点或接近重合的点,并且希望维护原始点数据空间模式的各个方面,则捕捉附近事件以创建加权点选项是一项合适的聚合策略。

    注:
    在很多情况下,您可能需要尝试捕捉附近事件以创建加权点在渔网格网内计数事件在六边形格网内计数事件的策略,来比较哪种方法更能反映原始点数据的空间模式。 渔网和六边形解决方案均可以人工分离点事件聚类,但对于有些人而言,其输出比加权点输出更容易解释。 虽然渔网格网趋近于最常用的聚合形状,但在某些分析中,六边形可能是更好的选择

    警告:

    仅当拥有所有已知点事件并且确定当前分析的点分布中没有任何偏差时,才能在不指定分析字段的情况下分析点数据。 对于采样数据,通常都会提供分析字段(除非您对采样方案的空间模式特别感兴趣)。

  • 如果为事件数据聚合方法选择在渔网格网内计数事件在六边形格网内计数事件,则可以选择性地提供限定可能发生事件的区域的边界面要素图层。 如果未提供任何边界面,工具将无法确定不含事件的位置是否应当为零,进而无法指示该位置是否可能存在事件,但事件未发生;也无法确定因该位置不可能发生事件,是否应从分析中将其移除。 因此,如果未提供边界面,则仅保留至少含一个事件的像元进行分析。 如果这不是您需要的行为,您可以提供定义事件潜在发生位置的边界面要素图层,以确保保留边界面内的所有位置。 不含基础事件的渔网或六边形像元的事件计数将为零。

  • 将从分析中排除限定可能发生事件的区域的边界面事件聚合面范围之外的所有事件。

  • 如果不使用工具选择最佳的格网像元大小和分析比例的默认设置,可以使用覆盖设置来设置用于分析的像元大小距离范围

  • 像元大小选项可以使您能够设置用于聚合点数据的格网的大小。 例如,您可决定使每个渔网格网中的像元大小为 50 米乘 50 米。 如果聚合到六边形,则像元大小为每个六边形的高度,而所生成六边形的宽度为高度除以根号 3 再乘以 2。

    六边形与渔网格网的像元大小

  • 如果要识别空间-时间热点,则应使用生成空间权重矩阵热点分析 (Getis-Ord Gi*)时空模式挖掘工具。 有关空间-时间聚类分析的详细信息,请参阅空间-时间聚类分析主题和时空模式挖掘文档。

  • 地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。

  • 输出要素图层会自动添加到内容列表中,同时对 Gi_Bin 字段应用默认渲染。 由热到冷的渲染由 <ArcGIS Pro>\Resources\ArcToolBox\Templates\Layers 路径下的图层文件进行定义。 需要时,可使用应用图层的符号设置工具重新应用默认渲染。

  • 警告:

    在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解释)为零。某些情况下,空值则以极大的负值储存于 shapefile 中。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项

参数

标注说明数据类型
输入要素

将要执行热点分析的点或面要素类。

Feature Layer
输出要素

用于接收 z 得分、p 值和 Gi_Bin 结果的输出要素类。

Feature Class
分析字段
(可选)

要评估的数值字段(事件数、犯罪率和测试得分等)。

Field
事件数据聚合方法
(可选)

用于创建加权要素以从事件点数据进行分析的聚合方法。

  • 在渔网格网内计数事件渔网面网格将覆盖事件点数据,并将计算每个面内的事件数。 如果限定可能发生事件的区域的边界面参数中未提供任何边界面,则只分析至少含一个事件的像元;否则,将分析边界面之内的所有像元。
  • 在六边形格网内计数事件六边形面网格将覆盖事件点数据,并将计算每个面像元内的事件数。 如果限定可能发生事件的区域的边界面参数中未提供任何边界面,则只分析至少含一个事件的像元;否则,将分析边界面之内的所有像元。
  • 在渔网面内计数事件提供聚合面以覆盖用于将事件聚合到计数的面参数中的事件点数据。 对每个面中的事件进行计数。
  • 捕捉附近事件以创建加权点邻近事件将聚合在一起,从而创建单个加权点。 每个点的权重是该位置的聚合事件数。
String
边界面定义可能发生事件的区域
(可选)

面要素类定义可能会发生输入要素事件的区域。

Feature Layer
用于将事件聚合到计数的面
(可选)

用于聚合输入要素事件以获得各面要素的事件计数的面。

Feature Layer
密度表面
(可选)

因此,密度表面参数会被禁用;其仍将作为一个工具参数而保留以保持向后兼容性。 核密度工具可用于将您的加权点的密度表面可视化。

Raster Dataset
像元大小
(可选)

用于聚合输入要素的格网像元的大小。 当聚合到六边形网格时,该距离用作构建六边形面的高度。

Linear Unit
距离范围
(可选)

分析邻域的空间范围。 该值用于确定将哪些要素一起用于分析以便访问局部聚类。

Linear Unit

arcpy.stats.OptimizedHotSpotAnalysis(Input_Features, Output_Features, {Analysis_Field}, {Incident_Data_Aggregation_Method}, {Bounding_Polygons_Defining_Where_Incidents_Are_Possible}, {Polygons_For_Aggregating_Incidents_Into_Counts}, {Density_Surface}, {Cell_Size}, {Distance_Band})
名称说明数据类型
Input_Features

将要执行热点分析的点或面要素类。

Feature Layer
Output_Features

用于接收 z 得分、p 值和 Gi_Bin 结果的输出要素类。

Feature Class
Analysis_Field
(可选)

要评估的数值字段(事件数、犯罪率和测试得分等)。

Field
Incident_Data_Aggregation_Method
(可选)

用于创建加权要素以从事件点数据进行分析的聚合方法。

  • COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONS渔网面网格将覆盖事件点数据,并将计算每个面内的事件数。 如果 Bounding_Polygons_Defining_Where_Incidents_Are_Possible 参数中未提供任何边界面,则只分析至少含一个事件的像元;否则,将分析边界面之内的所有像元。
  • COUNT_INCIDENTS_WITHIN_HEXAGON_POLYGONS六边形面网格将覆盖事件点数据,并将计算每个面像元内的事件数。 如果 Bounding_Polygons_Defining_Where_Incidents_Are_Possible 参数中未提供任何边界面,则只分析至少含一个事件的像元;否则,将分析边界面之内的所有像元。
  • COUNT_INCIDENTS_WITHIN_AGGREGATION_POLYGONS提供聚合面以覆盖 Polygons_For_Aggregating_Incidents_Into_Counts 参数中的事件点数据。 对每个面中的事件进行计数。
  • SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS邻近事件将聚合在一起,从而创建单个加权点。 每个点的权重是该位置的聚合事件数。
String
Bounding_Polygons_Defining_Where_Incidents_Are_Possible
(可选)

面要素类定义可能会发生 Input_Features 事件的区域。

Feature Layer
Polygons_For_Aggregating_Incidents_Into_Counts
(可选)

用于聚合 Input_Features 事件以获得各面要素的事件计数的面。

Feature Layer
Density_Surface
(可选)

因此,Density_Surface 参数会被禁用;其仍将作为一个工具参数而保留以保持向后兼容性。 核密度工具可用于将您的加权点的密度表面可视化。

Raster Dataset
Cell_Size
(可选)

用于聚合 Input_Features 的格网像元的大小。 当聚合到六边形网格时,该距离用作构建六边形面的高度。

Linear Unit
Distance_Band
(可选)

分析邻域的空间范围。 该值用于确定将哪些要素一起用于分析以便访问局部聚类。

Linear Unit

代码示例

OptimizedHotSpotAnalysis 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 OptimizedHotSpotAnalysis 函数。

import arcpy
arcpy.env.workspace = r"C:\OHSA"
arcpy.OptimizedHotSpotAnalysis_stats("911Count.shp", "911OptimizedHotSpots.shp", 
                                     "#", "SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS")
OptimizedHotSpotAnalysis 示例 2(独立 Python 脚本)

以下独立 Python 脚本演示了如何使用 OptimizedHotSpotAnalysis 函数。

# Analyze the spatial distribution of 911 calls in a metropolitan area

# Import system modules
import arcpy

# Set property to overwrite existing output, by default
arcpy.env.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.management.MinimumBoundingGeometry("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.stats.OptimizedHotSpotAnalysis("Calls911", "Calls911_ohsaFishnet", 
                                                "#", "COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONS", 
                                                "Calls911_MBG") 

except arcpy.ExecuteError:
    # If any error occurred when running the tool, print the messages
    print(arcpy.GetMessages())

环境

特殊情况

输出坐标系

在进行分析之前将要素几何投影到输出坐标系。所有数学计算都基于输出坐标系空间参考。输出坐标系基于度、分、秒时,测地线距离用弦距离估测。