ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

热点分析精讲:从全局莫兰指数到Getis-Ord Gi*

热点分析精讲:从全局莫兰指数到Getis-Ord Gi* 空间统计系列写到第十九篇今天终于要碰大家问得最多的热点分析。前几篇聊过全局莫兰指数Global Morans I很多朋友算完之后留言说我拿到结果只有一个 0.31 和对应的 p 值它告诉我数据存在空间聚集但我还是不知道热点在哪啊。全局莫兰指数回答的是“整个研究范围内有没有空间自相关”它不会告诉你高值集中具体在哪个位置、低值又集中在哪个位置。热点分析Hot Spot Analysis要解决的就是这个“定位”问题。这篇是“上篇”我把重心放在概念、原理和参数理解上配合数据准备的实战经验真正点按钮、跑工具的流程留给后续篇章。这样拆的原因很简单热点分析最容易翻车的根本不是操作而是你根本不知道自己算出来的每个数字代表什么。参数设错一个结论可能完全反过来。这篇文章适合正在学空间统计、被局部自相关绕晕的学生适合手头攒了一批 GIS 数据但拿不准怎么入手的从业者也适合已经在用工具跑热点图、却对结果心里没底的用户。先不说废话我们从最底层的问题开始。1. 热点分析解决的核心问题1.1 全局统计量的盲区在哪里要理解热点分析得先知道全局统计量给我们挖了什么样的坑。全局莫兰指数的本质是把研究范围内所有要素的值一起拿来做全局相关性判断。它的输出只有一个数值代表整体模式是聚集、分散还是随机。听起来很强大但它有一个致命问题正相关和负相关会在计算中互相抵消。举个例子。假设某个城市有三十个街道东北片区的房价普遍很高西南片区的房价普遍很低中间区域的房价适中。从全局来看如果你只汇报一个莫兰指数可能出现两种情况一是全局指数接近 0看起来“随机”二是全局指数显著为正提示你“有聚集”但到底是哪里聚集图上一片茫然。这才是空间分析里最常被忽略的真相全局统计量是“拉平”以后的综合评判它可以把局部的强聚集和强离散混在一起最后给你一个中性的数字。这种问题在空间异质性强的数据里特别明显比如房价、土壤重金属浓度、犯罪案件数它们几乎不可能在全区域服从一个统一的空间过程。所以当你想回答“热点到底在哪”这个问题的时候必须把分析尺度从全局切换到局部。热点分析做的事情就是对研究范围内的每个要素或者说每个位置分别计算它所在局部邻域的值是否显著高于或低于全局均值。注意关键词局部、显著、高于或低于。1.2 热点与孤立高值有什么区别很多人有个下意识误解觉得值最高的那个点就是热点。这恰恰是热点分析试图纠正的直觉错误。热点必须满足两个条件第一这个位置本身的值高或者低第二它周围的邻居们也必须同样偏高或者偏低。如果只有一个点特别高周围全是普通水平这在统计上是一个“孤立高值”它不是热点甚至会被检验判定为不显著。打个比方。全班数学成绩平均 80 分一个同学考了 99 分但前后左右都是 78 分左右那这个高分只是一个个体异常但如果有一个小组整体都在 95 分以上而小组外的人都在 70 分上下那这个小组才是统计上的“高分聚集区”也就是热点。热点关心的是“抱团”不是“尖子”。从空间过程的角度来解释热点背后的驱动机制通常是某种扩散、传染或连片效应。犯罪热点往往是因为某个区域临近作案地利好条件疾病暴发点是因为传播链临近房价热点是因为学区或商圈辐射连片。如果一个高值旁边都是低值那它可能是偶然事件也可能是数据录入错误而不是某种空间过程的产物。理解这一层区别你就知道为什么热点分析要同时考虑“大小”和“邻域”了。1.3 哪些场景会用到热点分析热点分析之所以在空间统计里占据这么重要的位置是因为它可落地的场景实在太多了。我把常见场景整理成一张表格应用领域典型数据要识别的问题公共安全案件发生点、报警记录连续的高发犯罪街区在哪里公共卫生病例坐标、发病率疫情是否在局部形成暴发聚集房产估值小区成交均价价格上涨的区域性连片效应商业选址门店销售额、客流哪些区域持续贡献超高营收环境监测土壤/水质污染物浓度污染是高值连片还是零星高值交通规划事故点位、拥堵记录事故高发路段是否成片出现从这张表能看出来热点分析不挑行业它只需要两类输入空间位置和数值属性。这也是为什么 ESRI 把它做成 ArcGIS 的标配工具连优化版工具都做成了傻瓜式的一键运行。但工具傻瓜化不代表思考可以傻瓜化接下来的核心原理部分你必须吃透。2. Getis-Ord Gi* 统计量原理拆解2.1 从局部与全局的差异说起热点分析最常见的实现工具是 Getis-Ord Gi* 统计量。这个名字听起来很唬人但拆开后并没有那么复杂。先说明一点我们这里讨论的 Gi* 带一个星号它和另一个不带星的 Gi 统计量有细微差别。简单来说Gi* 在计算某个点的局部统计量时会把这个点自己算进邻域而 Gi 只考虑周围的点不包含自己。实际工具里绝大多数用的是带星号的 Gi*因为把自身纳入可以使检验能力更强尤其是对小样本。你不需要额外关注这个区别只要知道用的通常是带星号的版本就行。Gi* 的统计思想是这样的对任意一个要素 i先取出它自己以及它所有邻居的值计算一个局部加权和。然后用这个局部加权和去对比“如果整个研究范围内所有值都服从随机分布这个局部应该是什么水平”。这种对比被标准化成一个 z 分数。用中文表达就是分子部分该位置的局部加权水平减去全局均值乘以局部权重之和。它度量的是“局部比全局平均多了多少”。分母部分在随机模式下这个“多出来的量”会有多大波动。它起标准化作用。所以 Gi* 的 z 分数本质上衡量的是“局部均值偏离全局均值的程度相对于随机波动的倍数”。如果 z 分数是 3代表局部高值聚集的水平在随机模式下几乎不会出现如果 z 分数是 -2.5代表低值聚集也极端罕见。这里的关键是它比的不是“这个点高不高”而是“这个点的局部环境是否显著偏离整体环境”。这正好呼应我在前面强调的“抱团”逻辑。为了更直白地理解可以拿“城市平均工资”打比方。全局均值像全市平均工资热点分析等于逐个街道去问你所在的街道及隔壁几个街道的平均工资和全市平均工资比差了多少再考虑全市各个街道工资的波动方差。差距大、波动小就是显著差距大但全市整体波动也大那就不那么显著。2.2 权重矩阵邻居关系怎么定义前面反复提到“邻居”可“邻居”到底怎么确定这是热点分析中最核心、也最容易被忽略的参数设定它在数学上表现为空间权重矩阵。空间权重矩阵里面的每个权重 w_ij 表示“位置 i 与位置 j 的关系强度”。这个值你既可以简单设成 1 或 0是邻居或者不是也可以设成一个随距离变化的数值。常见的设置方式有四种固定距离法Fixed Distance Band。以位置 i 为圆心、画一个半径为 d 的圆落在圆内的点都是邻居权重通常设为 1圆外的点权重为 0。这种方法最直观适合点分布比较均匀的数据。缺点也很明显如果点密度不均密度高的区域邻居一大把密度低的区域邻居数量寥寥无几边缘点甚至可能一个邻居都没有统计结果就不稳。反距离法Inverse Distance。不画硬边界所有点都参与计算但距离越远的点权重越小通常按 1/d 或 1/d² 衰减。这种方式适合带有距离衰减机制的过程比如空气污染扩散、疾病接触传播。缺点是一旦点太多每个位置的计算量会非常大而且距离过远的点即使权重微乎其微也依然在分母里占用自由度。K 近邻法K-Nearest Neighbors。不管距离远近每个位置都取最近的 K 个点作为邻居权重通常为 1。这个方法的优势在于保证每个点都有相同数量的邻居对点密度差异极大的数据特别友好。K 的取值多少合适空间统计里有一个经验参考值K8 是常见的起点因为 8 个邻居能在目标点周围形成相对完整的环绕结构局部统计量会更稳定。多边形邻接法Polygon Contiguity。如果数据是行政区、地块这类面状要素通常用边界是否相接来定义邻居。共享边的叫 Rook 邻接共享边或共享顶点的叫 Queen 邻接。这个方法在省、市、县级别的社会经济数据分析里用得非常多。你该选哪一种我的原则很简单点状数据、分布均匀优先固定距离点状数据、密度不均优先 K 近邻面状数据优先邻接有明确距离衰减机制优先反距离。没有绝对正确的权重矩阵只有最贴合业务逻辑的权重矩阵。2.3 z-score、p-value 和置信区间怎么读不管用什么工具跑热点分析最终输出都绕不开三个指标z 分数、p 值和置信区间。z 分数的正负代表了方向正数代表高值聚集也就是热点负数代表低值聚集也就是冷点。绝对值大小体现的是“偏离随机状态的程度”。p 值则告诉你这种偏离是否可能由纯粹的随机偶然造成。如果 p 值是 0.03意思是如果空间过程完全随机出现当前这种聚集模式甚至更极端的模式的概率只有 3%。那么怎么从 z 分数对应到常用的置信度通常大家用下面这张表置信度z 分数临界值p 值上限90%|z| ≥ 1.650.1095%|z| ≥ 1.960.0599%|z| ≥ 2.580.01比如一个位置的 z 分数是 2.1那它的 p 值落在 0.05 以内我们就在 95% 的置信水平下认为它是一个显著热点。如果 z 分数是 2.9p 值小于 0.01这是一个 99% 置信水平的极显著热点。反过来z 分数 -2.1 对应 95% 置信水平的冷点。这里还有个小细节可能让新手犯迷糊在热点分析里p 值对应的“随机概率”并不是某几个点之间关系的概率而是整个局部邻域模式在随机空间过程中的出现概率。所以不要解读成“这个区域 95% 是热点”这不对。更准确的表达是“在随机假设下出现这种聚集模式的概率小于 5%”。2.4 Gi* 与局部莫兰指数的分工很多同学学到这里会问局部莫兰指数LISA不是也能做局部空间自相关吗为什么非要学 Gi*这两个确实是一对亲戚但它们的分工不同。局部莫兰指数会把每个位置分为四类高-高聚集、低-低聚集、高-低异常、低-高异常。它不仅告诉你哪里有聚集还能识别“高低混合”的异常跳变点。如果你关心的是“哪个位置明显偏离邻域水平”比如找异常值局部莫兰指数更合适。但如果你关心的是“高值是否在局部连片”也就是我们常说的热点区域Gi* 通常表现更好。原因在于 Gi* 在构造时把每个位置的局部总和与全局期望对比对聚簇结构的侦测能力更强。ArcGIS 里的热点分析工具就直接提供 Gi* 选项没提供局部莫兰指数的同级别“一键化”封装这也从侧面说明它在业务场景里的地位。实务里怎么选我的建议很直接找异常值、找高低离散点用局部莫兰划热点/冷点区域、做风险监控和资源配置用 Gi* 热点分析。两个工具配合使用效果更好先用前者排查数据异常再用后者做区域划分。3. 动手前的关键配置参数选错全盘皆输3.1 底子要打好数据与坐标系检查跑热点分析之前先别急着开工具先检查三样东西。第一数据格式。热点分析要求输入要素是点或者面属性表里必须有一个数值字段作为分析对象。如果你手上只有一张普查数值表和一个行政区域边界需要先把数据通过空间连接挂到空间数据上再做分析。第二坐标系。这条我认为是最多人踩的坑。热点分析要计算距离和邻域所以数据必须是投影坐标系单位是米、英尺这类真实距离绝对不能直接用经纬度地理坐标系。你若拿着 WGS84 经纬度去跑固定距离热点分析距离是以“十进制度数”为单位的不同纬度上 1 度代表的实际距离完全不同算出来的“邻居”关系完全是扭曲的。出发前先给数据做投影转换比如用 UTM 投影或者对应的国家平面坐标系。第三样本量。热点分析的本质是大量重复统计检验如果样本量太小结果几乎没有参考价值。数据点至少要有几十个这是底线中的底线。如果是几十个点以内的数据我建议你别跑热点分析了老老实实做可视化散点图更靠谱。还有一个常被忽视的准备工作检查属性字段里有没有空值和极端异常值。空值会导致对应要素在计算时被自动剔除可能破坏邻域结构极端异常值虽然不至于让 Gi* 崩溃但会让全局均值和标准差发生偏移间接影响所有位置的检验结果。先做探索性数据分析画箱线图找找离群点再决定是清洗还是保留。3.2 距离阈值选择的三种思路在热点分析所有参数里距离阈值的设置直接决定谁会进入谁的计算邻域。选小了邻居稀疏统计量波动剧烈选大了局部尺度被拉平成全局尺度热点全部糊成一片。到底怎么选我分享三种思路。第一依据业务背景确定距离。比如分析商业网点营收你可以把商圈辐射半径作为距离阈值分析传染病传播就把人际接触的大致空间范围当作阈值。这个办法最关键的是业务逻辑但缺陷是业务背景并不总能给出一个精确的数值。第二使用增量空间自相关工具自动寻找。这是 GIS 软件提供的专业工具。它的原理是先设定一个起始距离然后以固定步长逐次增大距离每次都计算一次全局莫兰指数绘制出 z 分数随距离变化的曲线最后取 z 分数出现峰值的那个距离作为热点分析的距离阈值。这个做法在很多场景下非常好用它能直观显示数据在哪个尺度下聚集信号最强。第三多尺度敏感性验证。选几个不同的距离阈值分别跑热点分析对比结果的空间格局是否稳健。如果不管距离选 1 公里还是 5 公里同一批热点区域都稳定出现那这个热点信号就是可信的如果换一个距离热点就跑偏说明结果对参数极其敏感你需要更审慎地判断或者考虑数据本身可能并不适合进行固定距离的分析。3.3 空间关系概念化按数据形态选方法距离阈值解决“多远算邻居”空间权重矩阵解决“邻居之间权重如何设定”。实际上参数面板上的“空间关系的概念化”选项就是决定权重矩阵类型的那一步。很多教程只教你按顺序填参数却不解释为什么要做这个选择导致很多人不管三七二十一就用默认的“反距离”结果算出个四不像。我的建议是把前面第 2.2 节提到的匹配逻辑重新过一遍点数据点在研究区内分布相对均匀 → 固定距离法点数据密度差异很大或研究区域形状不规则 → K 近邻法面数据省份、街区、流域→ 多边形邻接法有明确距离衰减过程 → 反距离法我再多说一句空间权重矩阵里的“行标准化”问题。在一些工具设置里有一个选项叫“行标准化Row Standardization”意思是把某个位置的所有邻居权重除以权重总和让权重加总为 1。这样做的好处是消除邻居数量不同带来的影响。在热点分析里如果各位置的邻居数量差异大建议开启行标准化如果使用 K 近邻每个点邻居数一致这一项的敏感性会低很多。3.4 多重检验与FDR校正如果研究范围内有 1000 个位置那么热点分析实际上同时执行了 1000 次假设检验。假设显著性水平取 0.05单看某一次检验随机误报的概率是 5%但 1000 次检验下来纯靠运气也会出现大约 50 个虚假“显著”结果。这就是经典的多重检验问题。怎么应对GIS 工具里通常提供了一个选项叫“应用 FDR 校正”也就是错误发现率校正。它先判断哪些检验在未校正水平上显著再用一种能够控制整体误报比例的方式调整判定标准让最终报告的显著结果更稳健可靠。我个人经验是当要素数量超过几百个时强烈建议打开 FDR 校正选项如果要素数量特别庞大比如上万个网格单元则更要开启。不过也要说明FDR 校正在清除一些边缘显著结果的同时可能会让整张热点图看起来“秃”了一圈这是严格统计代价带来的正常现象不是分析出错了。4. 结果解读的正确姿势4.1 冷点、热点、不显著到底什么意思跑完工具以后你会得到一个带颜色的图层。以 ArcGIS 为例红色系代表热点蓝色系代表冷点淡黄色代表不显著。很多人看到这图的第一反应是“红的越深值越高”这是另一个常见误解。实际上图上的红色并不直接代表“这个点数值高”而是代表“这个点的局部均值显著高于全局均值”。两者有本质区别。同样深蓝色的位置不代表它本身的数值低而是它周边环境的低值连片效应非常显著。判断条件一直都是“局部相对全局”而不是“该点自身的绝对值”。ArcGIS 输出图层里会有一个叫 Gi_Bin 的字段把置信度和方向编码成从 -3 到 3 的整数。它和显著性水平的对应关系是Gi_Bin含义对应的置信度3极显著热点99% 置信度2显著热点95% 置信度1边缘热点90% 置信度0不显著低于 90% 置信度-1边缘冷点90% 置信度-2显著冷点95% 置信度-3极显著冷点99% 置信度记住Gi_Bin 是热力图的绝对主力字段比你自己用 z 分数人工分类要方便得多。但是解读时不要只看极端级别边缘显著等级也有业务价值尤其在做趋势预警时90% 置信度的热点往往代表信号刚刚浮现。4.2 热点不代表所有点都是高值展开讲一个非常关键的业务认知问题。某区域被判为 95% 置信度的热点并不代表这个区域里每一个要素的值都高而是这个区域作为一个整体局部平均水平显著高于研究范围的平均水平。我实际做房价分析时有一次特别典型某个街道被识别为显著热点但该街道尾部一个小区因为房龄老、物业差成交价其实在均值以下。如果只看整体结论可能有人会误以为热点区里应该“处处高价”。真实的空间过程是这样的热点区里高值单元占多数且高值和周围高值互相支撑形成一个整体抬升的“高原”但高原上也会有低洼的土坑。这就是所谓“空间异质性在热点内部依然存在”。做决策的时候热点区域划定的是“重点关注的靶区”不应该是“区内部一刀切”的依据。无论是警务巡逻、环保排查还是商业选址热点区内部还需要用原始数据和现场情况做二次筛选热点分析的价值是帮你缩小范围而不是替代决策。4.3 边界效应边缘地带的统计量要谨慎看研究区域的边界附近每个点的邻居天然比中心区域少。这种“边界效应”不是热点分析独有的所有邻域统计量都会遇到。它带来的后果是边界点周围可用的邻居信息不完整算出的 z 分数和 p 值稳定性差有时会出现边界一条线上的“假热点”或者“假冷点”。应对边界效应我有三个建议。第一如果分析使用的是 K 近邻权重边界效应会有所缓解因为每个点的邻居数量一样。第二如果你必须用固定距离那么检查一下边界点实际的有效邻居数小于 8 的点在解释时要格外留个心眼。第三如果研究区域本身是完整景观的局部抽样比如你要分析整个城市的犯罪数据但数据只覆盖了部分城区那么落在数据范围边缘的热点可能是真实热点的“半截”分析报告里要明确标注这个不确定性。如果你用的是 ArcGIS 的优化热点分析工具软件会自动为每个点做 K 近邻等处理这在一定程度上平滑掉了边界效应。但即便工具帮你做了你也应该知道其中原理否则将来换了别的工具同样的设置却跑出不同结果你会一头雾水。5. 常见问题排查与避坑记录5.1 跑出来全是“不显著”怎么办全图都是淡黄色看起来像是白跑了。先不要急着否定数据按下面顺序排查。第一检查样本量。如果点太少比如几十个点以内统计检验力本来就不够结果大范围不显著是意料之中。第二检查距离阈值。如果阈值太小每个点的邻居数太少局部统计量的方差极大很难达到显著如果阈值太大局部均值等于全局均值也没有显著信号。尝试用增量空间自相关工具重新选距离或者直接改用 K 近邻法。第三检查数据变换。如果属性值极度右偏比如少数位置贡献了绝大多数量级可以先做对数变换或者标准化再用变换后的字段分析。但注意变换后会改变变量的解释方式报告里要写清楚。还有一种可能是数据本身真的不存在局部聚集。这不算失败它本身就是一种结论。热点分析不显著的可靠含义是“没有足够证据支持存在区域性聚集”。在很多研究中这种“零结果”对政策决策同样重要它能防止把偶然的点位分布误判成真实热点。5.2 热区和冷区密布没法解释另一种让人头疼的输出是热点和冷点交替出现像豹纹一样密密麻麻。当你看到这种结果时第一反应不应该是“有热点”而复要去检查权重矩阵设定是否出了问题。最常见的原因是距离阈值选择偏小。阈值太小导致每个位置的邻域非常局部高值邻居和低值邻居的微小波动都被当成独立信号结果整张图震荡剧烈。另一个原因是空间数据存在较强的空间非平稳性即不同区域的空间依赖机制本身就不一样热点和冷点交替出现可能反映了真实的复杂结构。跑一个多距离敏感性测试如果换到更大的距离阈值后热点区域变得连片、稳定那就说明之前的参数偏小如果不管怎么调都依旧交替那更可能意味着数据本身存在周期性或强异质性需要找专业的人做进一步诊断。5.3 同一个数据换了权重方法结果差很多前面我反复强调权重矩阵选择要有业务依据原因就在这里权重方法决定了每个位置的邻域集合邻域一变统计量肯定全变。有人在某个项目里先用固定距离跑出大片红色热点换成 K 近邻之后热点缩了一大半就怀疑软件出 bug 了。这不是 bug是方法论问题。固定距离在点密度低的区域找不够邻居导致局部均值不稳定K 近邻则不管点有多稀疏都强行拉来 K 个邻居参与计算。两者侧重点不同结果自然不同。所以在正式分析前要确认你的数据到底是均匀分布还是密度差异很大然后选择匹配的权重。项目报告里务必注明用了哪种权重矩阵否则别人复现你的结果是无法对齐的。5.4 数据量太少统计检验没意义热点分析对样本量是有底线的。前面提到几十个点以下不适合做严格的热点检验但具体到实际工作里这个底线并不是某个固定数值。如果你的数据是面状单元比如五十个街道那配合多边形邻接法五十个样本还能勉强支撑起一次区域尺度的热点分析。但如果是三百个点分布在极大范围内平均每个点的实际有效邻居只有四五个那依然不满足局部统计的邻域充足条件。所以判断样本量是否“够”本质是看你计算出的每个位置的局部邻域是否至少包含 8 个左右的有效邻居。这个标准比单纯看样本总数更实用。跑完以后把权重参数调成显示邻居连接图数一数是否存在大量邻域稀薄的孤立点。如果有要么用 K 近邻兜底要么干脆缩小研究范围确保每个位置都有足够的邻域信息。这个内容后续如果继续往深做我会在下一篇文章里拆解 ArcGIS 里的热点分析工具面板逐项讲清楚优化热点分析、增量空间自相关这些高级功能到底怎么配、怎么读。空间统计这东西最怕的就是对着工具面板瞎点明白原理之后再动手你的每一次点击才是真的有用。
返回列表