多维点分布的均匀性评估方法(NDD和Voronoi 图法)

news2025/2/25 8:37:07

评估多维点分布的均匀性是统计学和数据科学中的一个重要问题,特别是在模拟、空间分析和样本设计等领域。下面,我将详细介绍2种评估多维点分布均匀性的方法,包括它们的数学原理、实现公式以及各自的优缺点。

1. 最近邻距离法(Nearest Neighbor Distance, NND)

        最近邻距离法(Nearest Neighbor Distance, NND)是一种评估点分布均匀性的方法,其基本思想是通过计算每个点到其最近邻点的距离,构建最近邻距离的经验分布函数,并与理论均匀分布下的经验分布函数进行比较,从而评估点分布的均匀性。

        构建经验分布函数是为了从实际数据中得到最近邻距离的分布情况。而理论分布函数是基于均匀随机点分布假设得到的。两者的比较旨在观察实际数据是否与理论假设(均匀随机分布)一致。

1. 经验分布函数(\hat{G}(r))

经验分布函数用于描述观测数据中,每个点到其最近邻点的距离小于或等于某个特定值 r的比例。具体步骤如下:

计算最近邻距离:对于每个点 x_{i},计算它到所有其他点x_{j}的距离,并找出最小的那个距离d_i

        在二维空间中,给定一组点X=\{x_1,x_2,...,x_n\},每个点x_{i}的位置通常由其坐标(x_{i1},x_{i2})表示。针对每个点x_{i},最近邻距离定义为:

d_i=\min_{j\neq i}\|x_i-x_j\|

        其中,\|x_i-x_j\|是点x_{i}和点x_{j}之间的欧式距离,计算公式为:

\|x_i-x_j\|=\sqrt{(x_{i1}-x_{j1})^2+(x_{i2}-x_{j2})^2}

构建经验分布函数:对于不同的距离阈值 r,计算数据集中满足d_{i}\leq r的点的比例。

2. 理论分布函数(G_{CSR}(r))

        理论分布函数基于假设点是在给定区域内均匀随机分布的。对于二维空间,这个分布可以用以下公式表达:

G_{CSR}(r)=1-\exp(-\lambda\pi r^2)

其中,\lambda是单位面积内的点的密度,可以通过\lambda=\frac{N}{A}计算,其中{N}是点的总数,{A} 是区域的面积。(公式的原理下面附录有推导)

3. 使用单样本Kolmogorov-Smirnov 检验(K-S检验)

Kolmogorov-Smirnov检验是一种非参数检验,用于比较两个样本是否来自同一分布,或一个样本是否来自某个特定的理论分布。在这里,它用于:

计算统计量:K-S检验的统计量是两个分布函数之间的最大差异,即

{D}=\max|\hat{G}(r)-G_{CSR}(r)|

评估显著性:通过计算得到的统计量 {D},与相应的临界值或通过模拟得到的{P}值比较,来判断差异是否统计显著。如果显著,这表明观测数据的分布与理论上的完全随机分布有显著差异。

更详细的K-S检验可以参考

Kolmogorov Smirnov 检验_kolmogorov-smirnov检验-CSDN博客文章浏览阅读1.1w次,点赞5次,收藏41次。Kolmogorov-Smirnov检验一个例子假设你拿到下面的这100个观察值:-0.16-0.68-0.32-0.850.89-2.280.630.410.150.741.30-0.130.80-0.750.28-1.000...._kolmogorov-smirnov检验https://blog.csdn.net/qq_16587307/article/details/102850741

4. 解释结果

  • 如果K-S检验显示实际数据的分布和理论分布之间无显著差异,我们可能会认为数据支持完全随机分布的假设
  • 如果检验结果显示显著差异,这表明数据中的点可能具有聚集性或排斥性,这与完全随机分布假设相违背。

        通过这种方法,科学家和研究人员可以更好地理解空间数据的分布特性,以及它们是否符合某些预期的随机模式或是否存在潜在的空间结构和相互作用。这在生态学、地理学、流行病学等领域尤为重要,因为空间分布模式往往与过程或机制密切相关。

优点:

  1. 计算简单直观:最近邻距离法的计算过程相对简单,只需要计算每个点到其最近邻点的距离,然后构建经验分布函数,再与理论分布函数进行比较。这个过程直观易懂,便于实现和解释。

  2. 对数据分布的局部特征敏感:最近邻距离法关注每个点的局部邻域,能够捕捉到数据分布在局部尺度上的特征。如果点在局部区域内分布不均匀,最近邻距离法能够有效地检测到这种异常。

缺点:

  1. 对噪声和异常值敏感:最近邻距离法依赖于每个点到其最近邻点的距离,如果数据中存在噪声或异常值,可能会影响最近邻距离的计算,进而影响均匀性的评估结果。

  2. 缺乏全局信息:最近邻距离法主要关注局部邻域的信息,而缺乏对数据全局分布的考虑。在某些情况下,局部均匀但全局不均匀的分布可能无法被最近邻距离法有效地检测到。

  3. 参数选择影响结果:最近邻距离法中的一些参数,如最近邻的数量、距离度量的选择等,都会影响均匀性评估的结果。不同的参数选择可能导致不同的结论。

5. 示例

假设我们有以下五个二维点:

\begin{gathered} x_{1} =\begin{pmatrix}0.1,0.2\end{pmatrix} \\ x_{2} =(0.3,0.4) \\ x_{3} =(0.2,0.6) \\ x_{4} =(0.7,0.8) \\ x_{5} =(0.5,0.1) \end{gathered}

构建经验分布函数 \hat{G}(r)

        使用欧几里得距离公式\|x_i-x_j\|=\sqrt{(x_i^1-x_j^1)^2+(x_i^2-x_j^2)^2},计算各点之间的距离,并找到每个点的最近邻距离d_{i}

        假设r=0.3,我们统计满足d_{i}\leqslant 0.3的点的数量和比例。

        如果3个点的最近邻距离 ≤0.3,则\hat{G}(0.3)=\frac35=0.6

计算理论分布函数G_{CSR}(r)

        假设区域面积 A=1平方单位,点总数N=5,则\lambda=\frac51=5

        G_{CSR}(0.3)=1-\exp(-5\cdot\pi\cdot(0.3)^2)=1-\exp(-1.413)\approx0.756

        这样,你可以比较经验分布函数 \hat{G}(0.3)=0.6 和理论分布函数 G_{CSR}(0.3)\approx0.756,看它们是否接近。

单样本Kolmogorov-Smirnov检验(K-S检验)

        上面内容展示了实际数据点的位置、如何计算点之间的距离、如何得到经验分布函数\hat{G}(r),以及如何计算理论上的完全随机分布的分布函数 G_{CSR}(r)。然后,它说明了对于r=0.3,经验分布函数和理论分布函数之间的差值,这个差值 |\hat{G}(0.3)-G_{CSR}(0.3)| 可以用作K-S检验的统计量D。最后一步将是比较这个统计量临界值来判定是否拒绝原假设。

        在Kolmogorov-Smirnov检验中,临界值取决于样本大小和选择的显著性水平(通常是0.05或0.01)。临界值可以通过查阅Kolmogorov-Smirnov检验的临界值表获得,或者通过计算机软件计算得到。通常,统计软件包(如R、Python的SciPy库等)都有现成的Kolmogorov-Smirnov检验的实现,可以直接输出检验统计量和对应的P值,无需手动查表。

2. Voronoi 图法

通过构建 Voronoi 图,将空间划分为多个 Voronoi 多边形,每个多边形内只包含一个样本点,且多边形内任意点到该样本点的距离小于到其他样本点的距离。通过分析 Voronoi 多边形的形状和大小分布,评估点分布的均匀性。

        目前,我们有两个特定的点。假象一下,如果我们以这两个点作为圆心,向外扩散形成圆周,随着半径的增加,这两个扩散的圆将在某个时刻相交,形成一条交线。

我们给它再加几个点:

优点:能够同时考虑点之间的距离关系和局部空间结构,对点密度变化较为鲁棒。
缺点:计算 Voronoi 图的复杂度较高,对边界效应敏感

1. 构建 Voronoi 图

        首先,我们需要给定一组点集{x_i}\mathbb{R}^d空间中。Voronoi图可以定义如下:

        对于每个点{x_i},其Voronoi多边形 V_i 定义为集合:

V_i=\{x\in\mathbb{R}^d:d(x,x_i)\leq d(x,x_j),\forall j\neq i\}

其中 d(x, y)表示点 x 和点y之间的距离(通常是欧几里得距离)。

2. 计算每个 Voronoi 多边形的面积和周长

        面积  A_i 和 周长 P_i 可以通过计算几何库来获得。在Python中,可以使用scipy.spatialVoronoi 类和shapely库来计算。

3. 分析面积和周长的分布

        计算面积和周长的均值(\mathbb{E}[A_i]\mathbb{E}[P_i])以及方差(\text{Var}(A_i)\text{Var}(P_i))。

        计算变异系数:

CV(A)=\frac{\sqrt{\mathrm{Var}(A_i)}}{\mathbb{E}[A_i]}

CV(P)=\frac{\sqrt{\mathrm{Var}(P_i)}}{\mathbb{E}[P_i]} 

        变异系数越小,表明Voronoi多边形的大小和形状分布越均匀,进而说明点分布越均匀。

优点:

  1. 考虑了点之间的空间关系:Voronoi 图将空间划分为多个 Voronoi 多边形,每个多边形内只包含一个样本点,且多边形内任意点到该样本点的距离小于到其他样本点的距离。这种划分方式充分考虑了点之间的空间关系,能够反映点分布的局部特征。

  2. 对点密度变化较为鲁棒:Voronoi 图法通过分析 Voronoi 多边形的面积和周长分布来评估点分布的均匀性。当点密度发生变化时,Voronoi 多边形的面积和周长也会相应调整,从而在一定程度上适应点密度的变化。这使得 Voronoi 图法对点密度的变化较为鲁棒。

  3. 提供了多个指标衡量均匀性:Voronoi 图法可以计算多个指标来衡量点分布的均匀性,如 Voronoi 多边形面积的变异系数、周长的变异系数等。这些指标从不同角度反映了点分布的均匀性,提供了更全面的评估信息。

  4. 直观易懂:Voronoi 图将空间划分为多个多边形,每个多边形对应一个样本点,这种划分方式直观易懂,便于理解点分布的空间结构。Voronoi 图也可以直观地展示点分布的不均匀性,如异常大或异常小的 Voronoi 多边形可能表示局部点密度的异常。

缺点:

  1. 计算复杂度较高:构建 Voronoi 图的时间复杂度为 $O(n \log n)$,其中 $n$ 为点的数量。对于大规模数据集,计算 Voronoi 图可能非常耗时。此外,计算 Voronoi 多边形的面积和周长也需要额外的计算开销。

  2. 对边界效应敏感:Voronoi 图法对边界点的处理较为敏感。对于位于边界的点,其对应的 Voronoi 多边形可能会延伸到边界之外,导致面积和周长的计算不准确。处理边界效应需要特殊的技巧,如引入虚拟点或对边界多边形进行修正。

  3. 评估结果依赖于点密度:Voronoi 图法的评估结果在一定程度上依赖于点的密度。在点密度较低的区域,Voronoi 多边形的面积和周长可能会较大,而在点密度较高的区域,Voronoi 多边形的面积和周长可能会较小。这种差异可能影响均匀性的评估结果。

  4. 局限于欧式空间:Voronoi 图法通常适用于欧式空间,即数据点之间的距离可以用欧几里得距离来度量。对于非欧式空间或者具有复杂度量的空间,构建 Voronoi 图可能变得困难或者不适用。

  5. 缺乏统一的显著性检验:与其他一些均匀性评估方法不同,Voronoi 图法缺乏统一的显著性检验方法。评估结果的显著性通常需要通过经验阈值或者与其他分布的比较来判断,这可能带来一定的主观性。

        尽管 Voronoi 图法存在一些局限性,但它仍然是一种有效的均匀性评估方法,特别适用于分析点分布的局部特征和空间结构。在实际应用中,可以结合数据的特点和分析目的,权衡 Voronoi 图法的优缺点,并与其他均匀性评估方法进行互补和对比,以获得更全面可靠的结果。同时,也可以考虑一些改进措施,如采用增量算法构建 Voronoi 图、引入加权 Voronoi 图等,以提高计算效率和适应性。

示例1:均匀分布的点

        假设我们在一个平面区域上随机均匀地放置了100个点。这些点没有聚集在特定的区域,而是均匀分布在整个平面上。生成这些点后,我们绘制了对应的Voronoi图。

在均匀分布的情况下,我们通常会观察到以下特点:

        Voronoi多边形的形状和大小相似:因为点是均匀分布的,所以每个点周围的空间大致相同,导致大多数Voronoi多边形在面积和周长上差异不大。

        较低的变异系数:面积和周长的变异系数(CV)较低,这表示多边形的大小和形状比较均匀。

示例2:聚集(集群)分布的点

        假设我们在相同的平面区域上放置了100个点,但这次我们将它们分为几个小群集。每个群集中的点非常接近,而群集之间的距离较远。

在聚集分布的情况下,我们通常会观察到以下特点:

        Voronoi多边形的形状和大小差异显著:位于群集中心的点通常拥有较小的Voronoi多边形,因为周围点的密度较高;而位于群集间的点则可能有较大的Voronoi多边形,因为周围较少点。

        较高的变异系数:面积和周长的变异系数(CV)较高,这表明多边形的大小和形状差异显著,指示出点的分布不均匀。

        通过比较两种情况下Voronoi图的特征,我们可以获得关于点分布均匀性的直观理解。在实际应用中,这种方法可以帮助我们了解数据点在空间上的分布特征,从而对数据集进行初步的空间分析。例如,在生态学研究中,科学家可能会利用这种方法来评估物种在环境中的分布是否均匀。在城市规划中,这种分析可以帮助规划者了解设施(如公园、商店等)的空间分布是否满足居民的需求。

附录

A.  二维空间理论分布函数过程

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

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

相关文章

AzureDataFactory 表选项之自动创建表

接上篇, 该篇里表与表之间采取了提前mapping的方式,通过Import schemas的方式将源和目标的表的schemas做了一对一的匹配 但如果我的应用场景是将D365的表数据推送到外部数据源,需要原表clone,如果我去先建表建字段再做mapping未免过于繁琐&am…

AS-VJ900实时视频拼接系统产品介绍:两画面视频拼接方法和操作

目录 一、实时视频拼接系统介绍 (一)实时视频拼接的定义 (二)无缝拼接 (三)AS-VJ900功能介绍 1、功能 2、拼接界面介绍 二、拼接前的准备 (一)摄像机选择 (二&a…

FreeRTOS标准库例程代码

1.设备STM32F103C8T6 2.工程模板 单片机: 部分单片机的程序例程 - Gitee.comhttps://gitee.com/lovefoolnotme/singlechip/tree/master/STM32_FREERTOS/1.%E5%B7%A5%E7%A8%8B%E6%A8%A1%E6%9D%BF 3.代码 1-FreeRTOS移植模板 #include "system.h" #include "…

Linux虚拟机运行“yum install gcc-c++”报错“Loading mirror speeds from cached hostfile”

目录 一、在Linux上安装Redis时,在终端执行命令“yum install gcc-c”时,报错: 二、然后发现linux的网络不通,什么网站都访问不了 三、连上网后,再变换yum源 四、重新运行yum install gcc 一、在Linux上安装Redis时…

QT--5

1> 将网络聊天室重新实现一遍 服务器端 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ser new QTcpServer(this); }Widget::~Widget() {delete ui; }vo…

js教程(13)

一、作用域 作用域规定了变量能够被访问的范围,而离开变量作用域的变量则不能被访问(有时也叫变量的生命周期)。作用域又分为局部作用域和全局作用域。 1.局部作用域 在函数或代码块内部声明的变量只能在其内部被访问,在外部无法…

Docker部署Azure chatgpt样例应用

Github地址 https://github.com/microsoft/sample-app-aoai-chatGPT?tabreadme-ov-file#environment-variables 使用Amazon Linux 2 AMI 的arm 64版本镜像, t4g.medium实例。 需要安装git,可能需要安装 pip3等 sudo apt-get install -y python3-pip 然后从如下…

AWS Lambda 第一个例子Hello (JAVA)

什么是Serverless(无服务器计算) 行业通常所说的Serverless,主要是指“无服务器计算(Serverless Computing)”。无服务器计算,并不是真的不需要服务器,而是说,对于用户,…

200-500人规模工厂网络方案(中小企业网络)

一、方案概述 工厂一般有单独的弱电房,类似这种 里面采用的方案如下: 主要考虑有线、无线、财务、办公、访客等业务,便于维护管理和后续扩容 还需要 Wi-Fi覆盖零死角高速率,工作不卡顿 同时考虑AV反病毒、IPS入侵防御、用户准…

C语言实现扫雷游戏完整版

游戏介绍: 目录 游戏介绍: 游戏框架: 游戏具体功能实现: 棋盘的定义: 棋盘初始化: 棋盘打印: 棋盘布置雷: 棋盘扫雷: 爆炸展开一片: 获取周围八个…

HTML【安装HBuilder、常用标签】--学习JavaEE的day44

day44 JavaEE 学习过程:前端—>数据库—>服务器端 前端的VUE在框架阶段学习 JavaEE学习过程图 HTML 前端:展示页面、与用户交互 — HTML 后端:数据的交互和传递 — JavaEE/JavaWeb 1. 前端开发的工作模式 开发输出htmlcssjs 理解&am…

keil5软件安装教程(MDKv5.39)

keil5软件安装分为三部分: 目录 1.安装mdk 2.激活mdk 3.安装STM32芯片包 1.安装mdk 安装包链接:链接:https://pan.baidu.com/s/1PZoGhzI5Y19ROv7xe9QJKA?pwdgt3s 提取码:gt3s 1、下载keil5的压缩包并解压,鼠…

浅谈如何利用 AI 提高内容生产效率?|TodayAI

在数字化时代,内容的创建和分发速度变得尤为关键。人工智能(AI)技术提供了加速这一过程的可能性,不仅提升了生产效率,还改善了内容的质量和受众的接受度。本文深入探讨AI如何在内容生成、分发与推广,以及内…

Linux下GraspNet复现流程

Linux,Ubuntu中GraspNet复现流程 文章目录 Linux,Ubuntu中GraspNet复现流程1.安装cuda和cudnn2.安装pytorch3.编译graspnetAPIReference 🚀非常重要的环境配置🚀 ubuntu 20.04cuda 11.0.1cudnn v8.9.7python 3.8.19pytorch 1.7.0…

如何使用openEuler 22.03 配置mail.rc给邮箱发送邮件

目录 需求环境总体步骤梳理详细步骤1. 安装mailx软件包(centos默认安装,openEuler不默认安装)2. 检查是否能ping得到smtp服务器3. 在qq邮箱开启smtp设置4. 修改/etc/mail.rc文件5. 测试 可能遇到的问题 需求 希望检查每日的备份和系统运行记…

在windows下安装wsl子系统

一、安装环境 windows规格 版本Windows 10企业版版本号22H2操作系统内部版本19045.4291 二、安装过程 2.1 以管理员身份打开PowerShell(win X快捷键); 2.2 输入命令:wsl --list --online(简写:wsl -l …

中北大学软件学院javaweb实验二JSP应用开发实验报告

实验时间 2024年4月 25 日17时至 22 时 学时数 4 1.实验名称 实验2:JSP应用开发(2学时) 2.实验目的 (1)学会编写和运行简单的JSP页面,理解其运行原理; (2)学会使用JSP的声明、表达式、脚…

【全开源】Java外卖霸王餐免费吃外卖小程序+APP+公众号+H5多端霸王餐源码

一、特色功能 霸王餐活动管理:允许商家发布和管理霸王餐活动,包括设置活动时间、具体优惠、活动规则等。用户参与与浏览:用户可以在小程序中浏览霸王餐活动列表,查看活动的详情信息,如商品或服务的免费赠送、活动规则…

MemoryModule - exp - test

文章目录 MemoryModule - exp - test概述笔记测试环境GetModuleFileName不能正常执行GetModuleFileNameWntdll_LdrGetDllFullName猜测原因用LoadLibrary载入的DLL中功能是正常的 gLog可以正常使用内存载入DLL无法支持的功能的折中方法COM操作正常调用方代码接口代码 接口入参测…

【竞技宝】欧冠:欧洲三大赛事决赛对阵出炉

本赛季欧洲三级赛事的决赛对阵均已出炉:皇马与多特蒙德相聚欧冠决赛;勒沃库森将会和亚特兰大争夺欧联杯冠军;奥林匹亚科斯则要与佛罗伦萨争夺欧协联的冠军。在6支决赛球队中,德甲和意甲都有两支球队,而西甲的皇马则是夺冠最大热门,近几个赛季战斗力极强的英超在欧战方面彻底失败…