Spatial Data Analysis(四):空间自相关示例

Spatial Data Analysis(四):空间自相关示例

空间自相关是地理信息科学(GIS)和空间统计学中的重要概念之一,用于研究地理空间上的数据变异性和相关性。空间自相关分析的目标是探讨地理空间中的现象是否呈现出某种程度的空间模式或趋势。在这个过程中,我们关注地理空间中相邻位置之间的数据值之间是否存在某种关联。

以下是关于空间自相关的详细介绍:

1.基本概念:

  • 空间自相关:空间自相关是指地理空间上相邻位置的数据值之间的相关性。如果相邻位置的数据值彼此相似,则存在正的空间自相关;如果相邻位置的数据值彼此不同,则存在负的空间自相关。
  • 空间权重矩阵:空间自相关的分析通常涉及构建一个空间权重矩阵,该矩阵描述了不同位置之间的空间关系。常见的空间权重矩阵包括邻近矩阵(表示相邻关系)和距离衰减矩阵(表示距离越近,权重越大)。

2.类型:

  • 正的空间自相关:相邻位置的数据值之间存在相似性,即一个位置的高(或低)值周围的位置也有高(或低)值。这表明存在集聚现象。
  • 负的空间自相关:相邻位置的数据值之间存在差异,即一个位置的高(或低)值周围的位置有低(或高)值。这表明存在分散现象。

3.衡量方法:

  • 莫兰指数(Moran’s
    I):是一种常用的测量空间自相关的统计指标。它考察了空间上的数据分布和空间结构之间的关系。当莫兰指数接近1时,表明正的空间自相关;当接近-1时,表明负的空间自相关;接近0时,表明数据分布呈随机分布。
  • 吉特斯指数(Geary’s C):类似于莫兰指数,用于测量全局空间自相关,其值越小表示越强的正的空间自相关。

4.应用领域:

  • 空间自相关广泛应用于地理学、城市规划、环境科学、经济学等领域。
  • 在地理信息系统(GIS)中,空间自相关有助于理解地理现象的分布规律,优化资源分配和规划。

5.空间自相关分析的步骤:

  • 定义研究区域和空间尺度。
  • 构建空间权重矩阵。
  • 计算莫兰指数或其他空间自相关指标。
  • 进行统计显著性检验,判断空间自相关是否显著。
  • 解释结果,理解空间分布的模式。

在本例中,我将使用乔治亚州县级人口普查数据的示例演示如何在 python 中进行空间自相关分析。

具体来说,我们正在绘制县级本科及以上学历人口的百分比,并进行全球/当地莫兰分析。 最后,我们能够识别冷点和热点,帮助我们了解乔治亚州的教育不平等。

Install PySAL packages for SA analysis

pip install -q splot
pip install -q libpysal

Load packages

import numpy as np
import matplotlib.pyplot as plt
import geopandas as gpdfrom libpysal.weights.contiguity import Queen
from splot.esda import moran_scatterplot,plot_moran,lisa_cluster
from esda.moran import Moran, Moran_Local
import splot

Load Georgia dataset

georgia_shp = gpd.read_file("https://raw.githubusercontent.com/Ziqi-Li/GEO4162C/main/data/georgia/G_utm.shp")

First, again check the data we loaded.

georgia_shp.head()
AREAPERIMETERG_UTM_G_UTM_IDAREANAMELatitudeLongitudTotPop90PctRuralPctBachPctEldPctFBPctPovPctBlackXYAreaKeygeometry
09.786480e+08174967.021GA, Rabun County34.88129-83.4014311648100.011.617.181.1313.60.35824645.5386480513241POLYGON ((806227.188 3858275.500, 805577.812 3...
14.461530e+08115140.032GA, Towns County34.91864-83.739086754100.011.422.961.3614.00.00797981.7387264013281POLYGON ((779645.188 3875727.750, 808540.188 3...
28.543330e+08160360.047GA, Union County34.83436-83.9908811993100.010.117.550.8818.30.10777040.1385877913291POLYGON ((762005.000 3875204.000, 773345.688 3...
31.014270e+09179577.054GA, Fannin County34.86415-84.3192815992100.07.817.300.5817.20.03739255.8386660413111POLYGON ((717121.188 3874113.750, 744454.625 3...
48.980900e+08183295.063GA, Murray County34.78193-84.748232614789.05.57.690.5011.30.26707834.3385418813213POLYGON ((699833.188 3873629.500, 703008.812 3...
georgia_shp.plot()

在这里插入图片描述

该数据包含一组社会人口变量。 其中之一是“PctBach”,即拥有学士学位或更高学历的人口百分比。

让我们为这个变量创建一个映射。 显然,我们可以看到亚特兰大和雅典附近的巴赫百分比较高。

georgia_shp.plot(column="PctBach",legend=True)
plt.title("PctBach")
Text(0.5, 1.0, 'PctBach')

在这里插入图片描述

A map of Georgia for reference
(source:https://www.enchantedlearning.com/usa/states/georgia/map.GIF)

全局 Moran’s I 和 p 值

全局 Moran’s I 是一个用于空间自相关性检测的指标,它可以用于检测空间数据集中的空间聚集现象。具体而言,它可以帮助我们确定空间数据集中的观测点是否具有相似的价值,以及这些点是否出现在一起。

p 值是另一个统计指标,用于评估一个检验结果的显著性。它通常用于确定某个统计检验的结果是否具有统计学意义。

在空间分析中,全局 Moran’s I 和 p 值通常一起使用,以确认空间数据集是否呈现出显著的空间自相关性。如果 Moran’s I 的值接近1且 p 值小于0.05,则可以得出结论,空间数据集呈现出显著的空间自相关性,即空间聚集现象。反之,如果 p 值大于0.05,则可以得出结论,空间数据集中观测点的价值没有表现出统计学上显著的空间自相关性。

指定权重矩阵

w = Queen.from_dataframe(georgia_shp) #Generate W matrix using Queen contiguityw.transform = 'r' #Row-standardization of the weight matrix
('WARNING: ', 65, ' is an island (no neighbors)')<ipython-input-8-385596cab5f3>:1: FutureWarning: `use_index` defaults to False but will default to True in future. Set True/False directly to control this behavior and silence this warningw = Queen.from_dataframe(georgia_shp) #Generate W matrix using Queen contiguity
/usr/local/lib/python3.10/dist-packages/libpysal/weights/weights.py:224: UserWarning: The weights matrix is not fully connected: There are 2 disconnected components.There is 1 island with id: 65.warnings.warn(message)

计算 Moran’s I

from esda.moran import Moranbach = georgia_shp['PctBach'].values #Get the data we are interested.ga_global_moran = Moran(bach, w, permutations = 200) #200 permutations
ga_global_moran.I
0.2487731738404628

p-value

ga_global_moran.p_sim # P value based on permutation tests
0.004975124378109453

这表明 Pct Bach 数据中存在统计显着性 (p=0.005<0.05) 聚类。

莫兰散点图

莫兰散点图是一种用于检测空间自相关性的图表。它可以帮助我们确定数据是否在空间上聚集或分散。在莫兰散点图中,每个点代表一个区域,而每个点周围的点代表邻近区域。如果点之间的距离越近,它们之间的空间滞后就越小。如果点之间的距离越远,它们之间的空间滞后就越大。

要分析莫兰散点图,需要计算莫兰指数。莫兰指数是一种用于测量空间自相关性的统计量。它的值介于-1和1之间。如果莫兰指数为正,则表示数据在空间上聚集。如果莫兰指数为负,则表示数据在空间上分散。如果莫兰指数为0,则表示数据在空间上随机分布。

from splot.esda import plot_moranplot_moran(ga_global_moran, zstandard=False, figsize=(10,4))
/usr/local/lib/python3.10/dist-packages/splot/_viz_esda_mpl.py:354: FutureWarning: `shade` is now deprecated in favor of `fill`; setting `fill=True`.
This will become an error in seaborn v0.14.0; please update your code.sbn.kdeplot(moran.sim, shade=shade, color=color, ax=ax, **kwargs)(<Figure size 1000x400 with 2 Axes>,array([<Axes: title={'center': 'Reference Distribution'}, xlabel='Moran I: 0.25', ylabel='Density'>,<Axes: title={'center': 'Moran Scatterplot (0.25)'}, xlabel='Attribute', ylabel='Spatial Lag'>],dtype=object))

在这里插入图片描述

左边是 Moran’s I 的零抽样分布。右边是 Moran 散点图。

生成更好的莫兰散点图,其中包含当地莫兰 Is 的显着性。

对每个县及其所属象限进行颜色编码。

  • 红色:HH(高值接近高值)
  • 浅蓝色:LH
  • 黄色:HL
  • 蓝色:LL
from splot.esda import moran_scatterplot
from esda.moran import Moran_Local# calculate Moran_Local and plot
ga_moran_loc = Moran_Local(bach, w,permutations=200)fig, ax = moran_scatterplot(ga_moran_loc, zstandard=False, p=0.05)#Labelling
ax.set_xlabel('Pct Bach')
ax.set_ylabel('Spatial Lag of Pct Bach')
/usr/local/lib/python3.10/dist-packages/esda/moran.py:1059: RuntimeWarning: invalid value encountered in divideself.z_sim = (self.Is - self.EI_sim) / self.seI_simText(0, 0.5, 'Spatial Lag of Pct Bach')

在这里插入图片描述

创建热点和冷点地图。

  • HH:高 % 巴赫县被高 % 巴赫县包围
  • LL:低-低
    左侧:低-高
  • HL:高-低
  • NS:不显着(p>0.05)
from splot.esda import lisa_clusterlisa_cluster(moran_loc=ga_moran_loc, gdf=georgia_shp, p = 0.05, figsize = (6,6))
(<Figure size 600x600 with 1 Axes>, <Axes: >)

在这里插入图片描述

我们可以看到亚特兰大附近有一个统计显着的热点集群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/211974.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C //例10.4 从键盘输入10个学生的有关数据,然后把它们转存到磁盘文件上去。

C程序设计 &#xff08;第四版&#xff09; 谭浩强 例10.4 例10.4 从键盘输入10个学生的有关数据&#xff0c;然后把它们转存到磁盘文件上去。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法&#xff1a;使用指针&#xff0c;函数的模块…

普通方法和构造方法的创建调用和注意事项

普通方法 创建&#xff1a;只能基于类&#xff1b;调用&#xff1a;只能基于方法&#xff1b;语法&#xff1a;访问修饰符public 返回值类型||void 方法名&#xff08;[参数列表]&#xff09;{方法体}根据返回值的选择和参数列表的选择可以为普通方法归类出四种类型&#xff1…

文心一言大模型应用开发入门

本文重点介绍百度智能云平台、文心一言、千帆大模型平台的基本使用与接入流程及其详细步骤。 注册文心一言 请登录文心一言官方网站 https://yiyan.baidu.com/welcome 点击登录&#xff1b;图示如下&#xff1a; 请注册文心一言账号并点击登录&#xff0c;图示如下&#xff1…

Android12之MediaCodec硬编解码调试手段(四十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

UVM:UVM的树形结构

UVM采用树形的组织结构来管理验证平台的各个部分。sequencer、driver、monitor、agent、model、 scoreboard、env等都是树的一个结点。为什么要用树的形式来组织呢&#xff1f;因为作为一个验证平台&#xff0c;它必须能够掌握自己治下的所 有“人口”&#xff0c;只有这样做了…

安防监控系统镜头选型分析,低噪声,低振动,多通道

安防镜头步进驱动选用型号 GC6107 C6109 GC6209 GC6119 GC6129 GC6139 GC6208 GC6150 GC6151 GC6152 GC6125 GC6236采用5V的镜头驱动 。其中GC6107 C6109 GC6209 GC6119 GC6129 GC6139 GC6208关键特性两通道&#xff0c;256细分&#xff0c;低噪&#xff0c;内部和外部时钟…

解决CentOS下PHP system命令unoconv转PDF提示“Unable to connect or start own listener“

centos系统下&#xff0c;用php的system命令unoconv把word转pdf时提示Unable to connect or start own listene的解决办法 unoconv -o /foo/bar/public_html/upload/ -f pdf /foo/bar/public_html/upload/test.docx 2>&1 上面这个命令在shell 终端能执行成功&#xff0c…

solidity案例详解(六)服务评价合约

有服务提供商和用户两类实体&#xff0c;其中服务提供商部署合约&#xff0c;默认诚信为true&#xff0c;用户负责使用智能合约接受服务及评价&#xff0c;服务提供商的评价信息存储在一个映射中&#xff0c;可以根据服务提 供商的地址来查找评价信息。用户评价信息&#xff0c…

HarmonyOS4.0从零开始的开发教程03初识ArkTS开发语言(中)

HarmonyOS&#xff08;二&#xff09;初识ArkTS开发语言&#xff08;中&#xff09;之TypeScript入门 浅析ArkTS的起源和演进 1 引言 Mozilla创造了JS&#xff0c;Microsoft创建了TS&#xff0c;Huawei进一步推出了ArkTS。 从最初的基础的逻辑交互能力&#xff0c;到具备类…

13年测试老鸟总结,性能测试常遇问题+解决方案+分析...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、内存溢出 1&a…

Cmkae外部依赖管理

文章目录 一、cmake依赖管理介绍二、源码依管理1. FetchContent与find_package进行集成 2. CPM3. git submodule附加&#xff1a; address_sanitizer 和 undefined sanitizer 一、cmake依赖管理介绍 CMake 是跨平台的构建系统&#xff0c;支持 C/C、Objective-C、Fortran 等多种…

Python第三次练习

Python 一、如何判断一个字符串是否是另一个字符串的子串二、如何验证一个字符串中的每一个字符均在另一个字符串中出现三、如何判定一个字符串中既有数字又有字母四、做一个注册登录系统 一、如何判断一个字符串是否是另一个字符串的子串 实现代码&#xff1a; string1 inp…

外包干了2个多月,技术明显有退步了。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

JVM:强软弱虚四种引用

下面依次解释五种引用 一、强引用 把一个对象赋值给一个引用变量&#xff0c;就相当于把这个对象的强引用放到变量中。 只要对象可达&#xff0c; GC一定不会回收这个对象&#xff08;A1&#xff09; 二、软引用 当一个对象&#xff08;A2&#xff09;没有强引用时&#xff…

Rust UI开发(五):iced中如何进行页面布局(pick_list的使用)?(串口调试助手)

注&#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库&#xff0c;用于为rust语言程序构建UI界面。 这是一个系列博文&#xff0c;本文是第五篇&#xff0c;前四篇链接&#xff1a; 1、Rust UI开发&#xff08;一&#xff09;&#xff1a;使用iced构建UI时…

网络安全(一)--网络环境构成,系统的安全

2. 网络攻防环境 目标 了解攻防环境构成了解入侵检测系统&#xff08;平台&#xff09;的部署位置 2.1. 环境构成 2.1.1. 环境框图 一个基本的网络攻防实验环境包括&#xff1a;靶机、攻击机、入侵检测分析系统、网络连接四部分组成。 一个基础的网络攻防实验环境需要如下…

【SpringCloud】通过Redis手动更新Ribbon缓存来解决Eureka微服务架构中服务下线感知的问题

文章目录 前言1.第一次尝试1.1服务被调用方更新1.2压测第一次尝试1.3 问题分析1.4 同步的不是最新列表 2.第二次尝试2.1调用方过滤下线服务2.2压测第二次尝试2.3优化 写到最后 前言 在上文的基础上&#xff0c;通过压测的结果可以看出&#xff0c;使用DiscoveryManager下线服务…

EasyExcel如何读取全部Sheet页数据方法

一、需求描述 Excel表格里面大约有20个sheet页&#xff0c;每个sheet页65535条数据&#xff0c;需要读取全部数据&#xff0c;并导入至数据库。 找了好多种方式&#xff0c;EasyExcel比较符合&#xff0c;下面看代码。 二、实现方式 采用EasyExcel框架的doReadAll()方法 1、…

Linux驱动开发学习笔记2《LED驱动开发试验》

目录 一、Linux下LED灯驱动原理 1.地址映射 二、硬件原理图分析 三、实验程序编写 1.LED 灯驱动程序编写 2.编写测试APP 四、运行测试 1.编译驱动程序和测试APP &#xff08;1&#xff09;编译驱动程序 &#xff08;2&#xff09;编译测试APP 2.运行测试 一、Linux下…

redis应用-分布式锁

目录 什么是分布式锁 分布式锁的基本实现 引入过期时间 引入校验id 引入lua 引入看门狗 引入redlock算法 什么是分布式锁 在一个分布式系统中,也会涉及到多个节点访问同一个公共资源的情况,此时就需要通过锁来做互斥控制,避免出现类似于"线程安全"的问题. 而…