空间共位分析
空间共位分析
奶茶店是不是总开在便利店旁边?
你有没有注意过,有些店总是"扎堆"出现在同一片区域 —— 便利店旁边总有奶茶店,药店附近总有诊所。
但"感觉总是在一起"不等于"统计上真的在一起"。也许只是商业区本身店多,什么类型都多,并不是这两类之间有特殊的吸引力。
空间共位分析就是帮你回答这个问题:两类(或多类)地理要素之间,是不是真的存在显著的空间关联?
地图帮提供了四种分析模式,从精细的两两分析到自动的多类别模式发现,覆盖不同深度的需求。你不用一次全学会 —— 先挑和你手头任务最匹配的那个模式试一次就行。
💡 这篇是快速上手版。如果你想搞懂每个参数背后的原理、每条结果到底怎么解读,去看 原理与参数详解 —— 那篇把 LCLQ 的计算公式、P 值的含义、核函数的区别、模式挖掘的算法逻辑全讲透了。
四种模式,选一个就好
打开空间共位分析后,第二步「参数设置」页面顶部有一个「分析模式」下拉框。先别急着选,看看哪个最对你的口味:
局部 LCLQ 分析 —— 你已经知道要看哪两类(比如便利店 vs 奶茶店),想知道"具体哪些便利店旁边奶茶店特别多"。结果精确到每个点,还能在地图上用四种颜色标出来。大多数人第一次用,选这个就对了。
全局 CLQ 矩阵 —— 你的数据有好几类要素(便利店、奶茶店、药店、餐厅……),想一次性看所有类别对之间的关联强度。结果是一张 N×N 的热力图矩阵,哪对关联最强、哪对互相排斥,一目了然。
共位模式挖掘 —— 你不想预先指定 A 和 B,想让算法自动发现"哪些类别总是出现在一起"。特别适合 POI 数据有十几二十种类别的情况 —— 人工逐对试太累了,让机器来。
Cross-K 多尺度分析 —— 你想知道两类要素在什么距离范围内关联最强。是 500 米以内?还是 2 公里?结果是一条曲线图,峰值对应的距离就是共位最显著的尺度。
不知道选哪个?先用「局部 LCLQ 分析」,它最经典、结果最直观。
你需要准备什么
- 一份带坐标的数据文件(Excel、CSV、Shapefile 或 GeoJSON)
- 数据里有一个分类字段,用来区分不同类型的要素(比如"类型"列里写着便利店、奶茶店、药店)
- 数据量建议 50 条以上,太少的话统计检验不稳定
跟着走
第一步:导入数据
把你的文件拖进导入区域,或者点击导入按钮选择文件。支持 Shapefile、GeoJSON、Excel 和 CSV。
如果你用的是 Excel 或 CSV,导入后需要告诉系统哪一列是经度、哪一列是纬度 —— 页面上会有对应的下拉框,选一下就好。
💡 只是想先试试?页面下方有一个蓝色的「加载空间共位分析专用示例」链接 —— 点一下会自动填入长沙 30 个商铺的数据(便利店、奶茶店、药店),直接往下走。
到这里,你应该能看到数据预览表格,字段和行数都显示出来了。
第二步:选模式、设参数
点「下一步」进入参数页。
先在顶部选好分析模式(刚才介绍的四种之一),下方的参数卡片会自动切换成对应的选项 —— 不需要的参数会自动隐藏,不用管。
然后设置这几个关键参数:
分类字段 —— 选择你数据里区分类型的那一列。选完之后,下方的类别下拉框会自动列出这一列里的所有值。
目标类别 —— 在「局部 LCLQ」和「Cross-K」模式下,你需要指定兴趣类别 A 和邻居类别 B(比如 A=便利店,B=奶茶店)。在「全局 CLQ 矩阵」和「共位模式挖掘」模式下,系统会自动分析所有类别,不用选。
邻域类型 —— 两种选法:
- KNN(K 近邻):看每个点最近的 K 个邻居。K 值推荐 5~15,默认 8,大多数情况不用改
- 距离带:看每个点周围固定半径内的所有邻居。适合数据密度不均匀的情况,半径单位是米
核函数 —— 决定近邻的权重怎么算。离得近的邻居权重大、远的小(高斯核),还是超过一定距离直接不算(Bisquare 核),还是所有邻居权重一样(均匀核)。不确定就用默认的高斯核。
置换检验次数 —— 做多少次随机打乱来检验显著性。99 次出结果快、499 次比较标准、999 次最精确但最慢。第一次跑建议先用 99,确认没问题再调高。
⚠️ 这里很多人会犯一个错:分类字段选成了"名称"或"地址"这种每行都不一样的列。分类字段应该是有重复值的列 —— 比如"类型"列里有很多行都写着"便利店"。如果每行都不同,算法会认为你有几百种类别,结果没有意义。
到这里,你应该能看到参数卡片上的各个选项都已经填好了,没有红色警告。
第三步:执行分析
点「下一步」进入执行页,再点「开始分析」按钮。
页面上会出现一个进度条和文字提示,告诉你当前跑到哪一步了。数据量不大的话(几百条以内),通常几秒到几十秒就能出结果。
分析完成后,下方会弹出一张结果卡片,内容取决于你选的模式:
四种模式的结果怎么看
局部 LCLQ 分析
结果卡片会显示几个关键数字:
- 全局 CLQ —— 整体上 A 和 B 是否共位。大于 1 说明全局层面存在正向关联
- 平均 LCLQ —— 所有 A 类点的局部共位商均值
- 显著共位点数 —— 有多少个 A 类点附近 B 类显著偏多(LCLQ > 1 且 P < 0.05)
- 显著孤立点数 —— 有多少个 A 类点附近 B 类显著偏少
同时会生成一张地图,用四种颜色标注每个点:
- 🔴 红色 = 显著共位(这里确实聚在一起)
- 🟠 橙色 = 共位但不显著(看着像,但统计上不够确定)
- 🔵 蓝色 = 显著孤立(这里明显缺少 B 类)
- ⚪ 灰色 = 孤立但不显著
点击结果卡片上的「在浏览器中查看地图」链接,就能看到这张交互式地图。
结果数据可以通过「导出结果」按钮发送到标准导出页面,导出为 Excel。
全局 CLQ 矩阵
结果是一张 N×N 的热力图(N = 你数据中的类别数)。
每个格子的颜色代表从行类别到列类别的全局共位商。颜色越深,关联越强。显著的格子(P < 0.05)会特别标出来。
💡 看这张图最快的方法:先找最深色的那几个格子,它们就是关联最强的类别对。如果你的数据有五六种 POI 类型,这比逐对跑 LCLQ 快多了。
对角线是灰色的(自己和自己的关联没有意义)。矩阵不对称是正常的 —— A→B 的共位商和 B→A 可以不同。
共位模式挖掘
结果会列出所有被发现的频繁共位模式:
- 模式 —— 比如 {便利店, 奶茶店} 或 {便利店, 奶茶店, 药店}
- 阶数 —— 模式包含几种类别(2 阶 = 两种类别的组合,3 阶 = 三种)
- 参与指数 —— 衡量这个模式有多"普遍",越接近 1 越强
- 实例数 —— 在数据中找到了多少组这样的共位实例
同时会生成一张网络图 —— 节点是类别,边是共位关系,边越粗表示参与指数越高。一眼就能看出哪几类总是扎堆出现。
⚠️ 如果挖掘结果显示 0 个模式,先别怀疑软件 —— 通常是最小参与率阈值设太高了。试着把它从 0.5 降到 0.3 或 0.2 再跑一次。
Cross-K 多尺度分析
结果是一张曲线图,横轴是距离(米),纵轴是 L 函数值。
- 实线是观测值(你的真实数据)
- 虚线是期望值(随机分布下的理论值)
- 灰色带是置信包络(95% 置信区间)
怎么看:实线在灰色带上方,说明在这个距离上两类要素的聚集程度超出了随机预期 —— 也就是说,在这个距离尺度上存在显著的共位。
结果卡片还会直接告诉你峰值距离,也就是共位最强的那个距离。比如显示"峰值距离 800m",意思是便利店和奶茶店在 800 米范围内的共位关系最强。
几个容易踩的坑
⚠️ 数据量太少:低于 50 条时,置换检验不稳定,P 值参考价值不大。建议 100 条以上再做正式分析。
⚠️ K 值太大或太小:K 值大于数据总量的 1/3 就过大了,会把远处不相关的点也拉进来。K 值太小(比如 2、3)则噪声太大。5~15 是比较安全的范围。
⚠️ 距离带半径设太小:如果用距离带邻域,半径太小会导致很多点找不到邻居,结果全是"无定义"。可以先看一下系统推荐的带宽值作为参考。
💡 先跑示例数据:不确定参数怎么设的时候,先用内置的示例数据跑一遍,看看结果长什么样,心里有底了再换成自己的数据。
做完了,检查一下
如果你用的是「局部 LCLQ」,结果卡片上显示了全局 CLQ 值和显著点数,地图也能正常打开 —— 说明分析完成了。
如果你用的是「全局 CLQ 矩阵」,能看到一张彩色热力图,对角线是灰色 —— 没问题。
如果你用的是「共位模式挖掘」,列表里有模式和参与指数,网络图能打开 —— 完成了。
如果你用的是「Cross-K」,曲线图显示出来了,峰值距离也给了 —— 大功告成。
到这里,你不只是"跑了一次分析",而是真的用统计方法回答了一个空间问题:这两类要素之间到底有没有关系、关系有多强、在什么尺度上最强。
接下来可以做什么?如果你发现了显著的共位关系,可以用 缓冲区分析 进一步量化——看看每个 A 类点周围一定半径内到底有多少个 B 类点。或者去 聚类分析 把这些点按更多维度分个组,看看共位关系在不同群体里是不是不一样。
想深入理解每个指标到底是什么意思?去看 原理与参数详解 —— LCLQ 怎么算的、P 值到底说了什么、四种核函数怎么选、Cross-K 曲线怎么读,全部讲透了。
