ESDA in PySal (6):评估空间异方差的局部模式:LOSH

news2025/8/3 6:44:41

ESDA in PySal (6):评估空间异方差的局部模式:LOSH

在下面的笔记本中,我们回顾了 Ord 和 Getis (2012) 提出的局部空间异方差 (LOSH) 统计量 ( H i H_i Hi) -y)。 LOSH 旨在作为分析空间过程平均水平的本地统计数据的补充。 LOSH 侧重于分析空间过程的方差。

正如 Ord 和 Getis 所概述的,考虑 10 x 10 的属性值网格。 在这个网格中,有一个中心高租金区域(由单元格为 1 标识)和周围的低值区域(由单元格为 0 标识)。我们可以将这种空间排列可视化为:

0000000000
0000000000
0000000000
0001111000
0001111000
0001111000
0001111000
0000000000
0000000000
0000000000

虽然我们可以看到高租金区的核心与其邻居具有相似的值(即 1 的单元格被其他 1 的单元格包围),但当我们考虑高租金区的外缘时,情况就不那么正确了 。 该边缘代表稳定的内部高租金区域和稳定的外部低价值区域之间可能的过渡区域。 Ord 和 Getis 寻求使用 LOSH 统计数据 ( H i H_i Hi) 来识别两个区域之间的过渡区域。

1. 了解 LOSH 统计数据

Ord 和 Getis 首先定义局部均值 x ˉ i ( d ) \bar{x}_i (d) xˉi(d),作为其 G i ∗ G^*_i Gi 统计量的重新缩放形式。 这个局部平均值是:

等式。 1 x ˉ i ( d ) = ∑ j w i j ( d ) x j ∑ j w i j ( d ) \bar{x}_i (d) = \frac{\sum_j w_{ij} (d) x_j}{\sum_j w_{ij}(d)} xˉi(d)=jwij(d)jwij(d)xj

定义了局部均值后,我们可以将局部残差理解为局部单位的值减去局部均值,或者:

等式。 2 e j ( d ) = x j − x ˉ i ( d ) , j ∈ N ( i , d ) e_j(d) = x_j - \bar{x}_i(d), j \in N(i,d) ej(d)=xjxˉi(d),jN(i,d)

这些局部残差可以合并到方程中。 1 形成最终的局部色散统计量,称为 H i H_i Hi

等式。 3 H i ( d ) = ∑ w i j ( d ) ∣ e j ( d ) ∣ a ∑ w i j ( d ) H_i(d) = \frac{\sum w_{ij}(d) |e_j(d)|^a}{\sum w_{ij}(d)} Hi(d)=wij(d)wij(d)ej(d)a

请注意添加了一个新变量 a a a。 这处理残差的解释。 正如 Ord 和 Getis 所解释的:

当 a = 1 时,我们有一个绝对偏差度量 Hi 1,当 a = 2 时有一个方差度量 Hi2。 显然,其他选择以及各种稳健的形式也是可能的,以避免异常值。 为了产生标准度量,我们应该除以整个数据集的平均绝对偏差或方差。

losh()函数的默认设置为 a = 2 a=2 a=2

2. 解释 LOSH 统计数据

Ord and Getis suggest that the H i H_i Hi statistic may benefit from interpretation with the G i ∗ G^*_i Gi statistic. The logic of this combined interpretation is that a the G i ∗ G^*_i Gi value speaks to the local mean of the phenomenon of interest, whereas the H i H_i Hi speaks to the local heterogeneity. Ord and Getis provide the following table as a simplified guide for interpretation:

Mean\varianceHigh H i H_i HiLow H i H_i Hi
Large $G^*_i$
Small $G^*_i$

3. LOSH 统计的推断

LOSH 统计的 PySAL 实现中的当前推断使用 χ 2 \chi^2 χ2 分布。 对于每个单元,我们计算 Z 分数:

Z i = 2 H i / V i Z_i = 2H_i / V_i Zi=2Hi/Vi

自由度为 2 / V i 2/V_i 2/Vi V i V_i Vi 是单位的局部方差,计算公式为:

V a r p ( H i ) = 1 n − 1 ( 1 h 1 W i 1 ) 2 ( h 2 − h 1 2 ) [ n W i 2 − W i 1 2 ] Var_{p}(H_i) = \frac{1}{n-1} \left( \frac{1}{h_1 W_{i1}}\right) ^2 (h_2 - h_1^2) \left[ nW_{i2} - W_{i1}^2\right] Varp(Hi)=n11(h1Wi11)2(h2h12)[nWi2Wi12]

值得注意的是, Xu et al (2014). 中提出了替代的推理方法。 尚未在 PySAL 中实现,它们可在“R”“spdep”包中作为“LOSH.mc”使用。 PySAL 函数与“spdep”、“LOSH”和“LOSH.cs”函数相当。

4. 在数据集上应用 LOSH 统计数据

作为比较,我们现在在 Boston Housing 数据集 上演示 PySAL losh 函数,该函数也用于 如“R”“spdep”“LOSH.cs”中的文档示例。 我们对变量“NOX”感兴趣,它是“…每个城镇一氧化氮浓度(千万分之一)的向量”。

我们首先从“libpysal”加载“Bostonhsg”示例数据集:

import libpysal
import geopandas
boston = libpysal.examples.load_example('Bostonhsg')
boston_ds = geopandas.read_file(boston.get_path('boston.shp'))
Downloading Bostonhsg to C:\Users\24365\AppData\Local\pysal\pysal\Bostonhsg

然后我们构造一个Queen权重结构:

w = libpysal.weights.Queen.from_dataframe(boston_ds)
d:\work\miniconda3\envs\esda\lib\site-packages\libpysal\cg\voronoi.py:173: FutureWarning: You are adding a column named 'geometry' to a GeoDataFrame constructed without an active geometry column. Currently, this automatically sets the active geometry column to 'geometry' but in the future that will no longer happen. Instead, either provide geometry to the GeoDataFrame constructor (GeoDataFrame(... geometry=GeoSeries()) or use `set_geometry('geometry')` to explicitly set the active geometry column.
  region_df["geometry"] = [Polygon(vertices[region]) for region in regions]
d:\work\miniconda3\envs\esda\lib\site-packages\libpysal\cg\voronoi.py:176: FutureWarning: You are adding a column named 'geometry' to a GeoDataFrame constructed without an active geometry column. Currently, this automatically sets the active geometry column to 'geometry' but in the future that will no longer happen. Instead, either provide geometry to the GeoDataFrame constructor (GeoDataFrame(... geometry=GeoSeries()) or use `set_geometry('geometry')` to explicitly set the active geometry column.
  point_df["geometry"] = gpd.GeoSeries(Point(pnt) for pnt in points)

我们现在可以导入“losh()”函数。 请注意,它采用 scikit-learn 类型估计器的形式,因此我们传递一系列参数,然后调用“.fit()”。

from esda.losh import LOSH
ls = LOSH(connectivity=w, inference="chi-square").fit(boston_ds['NOX'])

我们现在可以检查 LOSH ( H i H_i Hi) 值及其意义。

ls.Hi[0:10]
array([0.19690679, 0.51765774, 0.80382881, 0.80854441, 0.530667  ,
       0.525579  , 0.83291425, 0.84215733, 0.48875154, 0.41955327])
ls.pval[0:10]
array([0.86292242, 0.61157688, 0.45697742, 0.34426167, 0.57934554,
       0.55430556, 0.4135546 , 0.40999792, 0.54025022, 0.57801529])

如果我们想要映射 LOSH ( H i H_i Hi) 值,我们需要将它们添加回“boston_ds”数据帧。

boston_ds['Hi'] = ls.Hi
boston_ds['Hi_pval'] = ls.pval

我们现在可以映射 LOSH ( H i H_i Hi) 值。 请注意,出于可视化目的,我们在这里选择分位数分隔方案。

import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12,10), subplot_kw={'aspect':'equal'})
boston_ds.plot(column='Hi', scheme='Quantiles', 
               k=5, cmap='GnBu', 
               legend=True, ax=ax)
<Axes: >

在这里插入图片描述

我们还可以检查这些值的重要性。 我们使用 0.01、0.05、0.10 和 0.10 以上的截断值。

fig, ax = plt.subplots(figsize=(12,10), subplot_kw={'aspect':'equal'})
boston_ds.plot(column='Hi_pval', cmap='RdBu', 
               legend=True, ax=ax, 
               scheme='user_defined', 
               classification_kwds={'bins':[0.01, 0.05, 0.10, 1]})
<Axes: >

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

el-checkbox-group变成竖着的样式

加 style"display: block; padding-top: 10px; margin-left: 27px" <el-checkbox:indeterminate"isIndeterminate"v-model"checkAll"change"handleCheckAllChange">全选&#xff08;{{ memberList.length }}&#xff09;</el…

从Github中下载部分文件

我们经常回去Github中下载代码&#xff0c;但仓库中存在很多project代码。但我们如果只需要某一个或几个项目的代码&#xff0c;此时应该如何操作呢&#xff1f; 这里介绍两款工具&#xff0c;可以从仓库中下载部分文件的小工具: DownGit 和 GitZip 1. DownGit downGit 国内镜…

基于springboot实现大学生社团活动平台项目【项目源码+论文说明】

摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;网络管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信…

线程池执行流程

源码分析 execute&#xff08;提交&#xff09;方法源码&#xff1a; public void execute(Runnable command) {if (command null)throw new NullPointerException();int c ctl.get();if (workerCountOf(c) < corePoolSize) {if (addWorker(command, true))return;c ct…

python打开.npy文件的常见报错及解决

import numpy as npdata np.load("texture_data_256.npy") print(data) 解决办法&#xff1a; import numpy as npdata np.load("texture_data_256.npy",allow_pickleTrue) print(data) 再次运行后出现乱码&#xff01;&#xff01;&#xff01; 由于…

山西电力市场日前价格预测【2023-10-18】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-18&#xff09;山西电力市场全天平均日前电价为348.72元/MWh。其中&#xff0c;最高日前电价为505.50元/MWh&#xff0c;预计出现在18: 00。最低日前电价为288.10元/MWh&#xff0c;预计…

安科瑞能耗监测系统在新集卫生院综合楼、急诊楼的设计与应用

安科瑞 崔丽洁 摘要&#xff1a;针对医院建筑能耗高且能源管理不合理的问题&#xff0c;利用计算机网络技术、通讯技术、计量控制技术等信息化技术&#xff0c;实现能源资源分类分项计量和能源资源运行监管功能&#xff0c;清晰描述建筑内总的用能现状&#xff1b;实时监测各供…

什么是著作权?对此你了解多少?

在当今信息爆炸的时代&#xff0c;著作权成为一个备受关注的话题。创作是人类文明的重要组成部分&#xff0c;而著作权是创作者对自己作品的劳动和智慧的一种保护。很多人还不太了解著作权&#xff0c;那么希望看完此文&#xff0c;你会对它有一个新的认识。 一、著作权的概念 …

入职后快速配置mac方便快速上手业务for研测向

文章目录 下载基本工具配置 mac 基本修改 mac 密码apple id 登录mac 手势操作 配置开发环境homebrewgitjava/goland/pythonmavenrpcadbmysqlredis前端环境 软件配置配置软件通知chrome 配置配置 jetbrains 插件chrome 插件配置 iterm2配置邮箱视频软件配置软件登录 公司相关配置…

GPIO基本原理

名词解释 高低电平&#xff1a;GPIO引脚电平范围&#xff1a;0V~3.3V&#xff08;部分引脚可容忍5V&#xff09;数据0就是0V&#xff0c;代表低电平&#xff1b;数据1就是3.3V&#xff0c;代表高电平&#xff1b; STM32是32位的单片机&#xff0c;所以内部寄存器也都是32位的…

扫雷游戏源码解析:构建你自己的MineSweeper

大家好&#xff0c;我自己编写了一款扫雷游戏&#xff0c;并决定将其开源。在这个项目中&#xff0c;您可以体验初级、中级和高级难度的游戏模式&#xff0c;适合各种游戏水平。如果您热爱扫雷或对编程有兴趣&#xff0c;这个项目一定会吸引您。 项目亮点&#xff1a; 三种难度…

【数据结构】栈(C语言实现)

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 栈 1.栈1.1栈的概念及结构…

Dynamics 365 QueryExpression生成工具

D365后端的查询构建语句有QueryExpression和FetchExpression&#xff0c;一般在涉及多表查询的时候会用FetchExpression多一些&#xff0c;因为结构看起来比较直观&#xff0c;而且生成也有多种方式&#xff0c;比如高级查找构建后下载XML&#xff0c;比如Xrmtoolbox中的fetch …

Unity 3D 基础——Coroutine 协同程序

Coroutine 称为协同程序或者协程&#xff0c;协同程序可以和主程序并行运行&#xff0c;和多线程有些类似。协同程序可以用来实现让一段程序等待一段时间后继续运行的效果。例如&#xff0c;执行步骤1&#xff0c;等待3秒&#xff1b;执行步骤2&#xff0c;等待某个条件为 true…

微信小程序首页-----布局(详细教程赶快收藏吧)

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 &#xff0c;越幸运。 1.flex弹性布局 Flex是Flexible Box的缩写&#xff0c;意为”弹性布局”&#xff0c;用来为盒状模型提供最大…

被无视的小细节

最近要写一个web服务,对外提供几个Api,选用gin框架. gin的路由广泛为人好评,一直是"gin为什么这么快"的主角. 正在看其用到的httprouter的源码, 对这种特殊的trie树—基树树(Radix Tree),也有还不错的理解. ( httprouter包只有200多k,非常值得一看 ) 就在自以为洞若观…

linux虚机新增加磁盘后在系统中查不到

问题描述 在虚机管理平台上对某一linux主机添加了一块硬盘&#xff0c;但在系统中并未显示 通过执行 lsblk&#xff0c;并未看到新增的硬盘信息 解决方法 1. 可通过重启服务器解决 2. 如果不能重启服务器&#xff0c;可重新扫描下 scsi总线 查看总线&#xff1a; ls /s…

那些年,我们追过的Go BUG

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

多媒体应用设计师 第9章 信息安全性知识

1.信息安全性基本概念 2.计算机病毒防范 2.1.计算机病毒的分类与识别 病毒特点&#xff1a;隐蔽性&#xff0c;传染性&#xff0c;破坏性&#xff0c;潜伏性 计算机病毒构成:感染标志(病毒签名)&#xff0c;引导模块&#xff0c;感染模块&#xff0c;破坏模块(表现模块) 病…

机器学习算法 —— 1. K近邻算法

K近邻算法 1. K近邻算法简介2. K近邻算法常见距离度量2.1 欧氏距离&#xff08;Euclidean Distance&#xff09;2.2 曼哈顿距离&#xff08;Manhattan Distance &#xff09;2.3 切比雪夫距离&#xff08;Chebyshev Distance&#xff09;2.4 闵可夫斯基距离&#xff08;Minkows…