标准差椭圆算法实现

news2024/9/20 18:42:22

一、标准差椭圆介绍

(一)方法介绍        

        标准差椭圆是一种用于描述多元数据集的离散程度和相关性的可视化工具。它可以帮助我们直观地了解数据的分布情况、方向和离散程度,以及不同变量之间的关系。

        标准差椭圆的计算公式如下:

     

        椭圆的中心点是数据集的均值,其方向由对应于特征值最大和次大的两个特征向量所定义。如果两个特征值相等,则椭圆沿着任何方向都可以。

        需要注意的是,标准差椭圆假设数据服从多元正态分布,并且假定数据集没有缺失值。在实际应用中,我们应该根据具体情况来判断是否适合使用标准差椭圆进行分析,并结合其他的统计方法和领域知识来进行综合判断。

(二)结果的粗略解读

        椭圆的大小:椭圆的半长轴和半短轴长度与数据的标准差相关。较大的椭圆表示数据具有较大的离散程度,而较小的椭圆表示数据相对集中。

        椭圆的形状:椭圆的形状可以反映数据的相关性。如果椭圆比较接近一个圆形,则表示数据之间的相关性相对较低。如果椭圆呈现出拉长的形状,则表示数据之间存在较强的线性相关性。

        椭圆的方向:椭圆的方向表示数据集的主要方向。主要方向与特征向量相关,它们指示了数据集中变化最大的方向。如果椭圆的方向与坐标轴平行,则表示数据集在相应的特征值方向上具有更大的变化。

二、实现标准差椭圆的方法

       (一)python实现标准差椭圆的代码

        示例代码中定义了一个名为plot_std_ellipse的函数,用于计算并绘制标准差椭圆。该函数接收一个二维数据数组data作为输入,并可选地指定透明度alpha(默认为0.5)。函数内部首先计算数据的均值和协方差矩阵,然后通过计算特征值和特征向量得到椭圆的参数。接下来,根据参数生成椭圆的点坐标,并使用Matplotlib库绘制散点图和椭圆。最后,调用示例数据并调用plot_std_ellipse函数进行绘图。

import numpy as np
import matplotlib.pyplot as plt

def plot_std_ellipse(data, alpha=0.5):
    # 计算均值和协方差矩阵
    mean = np.mean(data, axis=0)
    cov = np.cov(data, rowvar=False)

    # 计算特征值和特征向量
    eigenvalues, eigenvectors = np.linalg.eig(cov)

    # 计算标准差椭圆的半长轴和半短轴
    std_dev_1 = np.sqrt(eigenvalues[0]) * 2
    std_dev_2 = np.sqrt(eigenvalues[1]) * 2

    # 计算椭圆在标准差内的角度
    angle = np.arctan2(eigenvectors[1, 0], eigenvectors[0, 0])

    # 生成椭圆的点坐标
    t = np.linspace(0, 2*np.pi, 100)
    ellipse_x = mean[0] + std_dev_1 * np.cos(t) * np.cos(angle) - std_dev_2 * np.sin(t) * np.sin(angle)
    ellipse_y = mean[1] + std_dev_1 * np.cos(t) * np.sin(angle) + std_dev_2 * np.sin(t) * np.cos(angle)

    # 绘制散点图和椭圆
    plt.scatter(data[:, 0], data[:, 1])
    plt.plot(ellipse_x, ellipse_y, color='red', alpha=alpha)
    plt.xlabel('X')
    plt.ylabel('Y')
    plt.title('Standard Deviation Ellipse Analysis')
    plt.axis('equal')
    plt.show()

# 示例数据
data = np.random.multivariate_normal([0, 0], [[2, 1], [1, 2]], 100)

# 绘制标准差椭圆
plot_std_ellipse(data)

(二)Arc Map实现标标准差椭圆分析


        案例描述:现有江西省 11个地级市市的矢量地图以及相应年份人均 GDP 属性数据,通过空间自相关分析江西省人均GDP空间分布方向性变化。对应操作视频见引用3(视频不对应但包含其中)。
        1、加载江西省市域图层,并与相关年份人均 GDP 属性数据进行连接 操作。
        2、打开工具箱→【空间统计工具】→【度量地理分布】→【方向分布标准差椭圆】
        3、弹出对话框,按照下图进行参数设置,【输入要素类】项输入江西省地 级市图层,【椭圆大小】通常选一个标准差,【权重字段】里输入所要研究的经济 属性字段,这里输入 2011年人均 GDP。完成参数设置后,点击确定。


        4、工具计算完毕后,返回 GIS窗口,即可看到标准差椭圆图层,如图:


        5、由于椭圆图层覆盖在江西省地级市图层上,导致原图层难以有效标 识,南昌、宜春等地市的边界被覆盖掉,故需通过符号选择器对椭圆图层符号进 行修改,将其设置为空心,提高轮廓宽度,从而有效地显示两类图层。


        6、打开椭圆图层属性表,可以看到 Shape-leng\ Shape-Aera \Center X\ Center Y\X Std Dist\Y Std Dist \Rotation 等字段。

        7、按照上述操作,对 2016 年人均 GDP进行标准差椭圆分析,并于 2011年进行对比分析。下图 中颜色更深黑色圈代表 2011 年,颜色更浅代表 2016年。


        8将 2011年与 2016 年图层属性表内容导出,对相关字段内容加以对比。 需要注意的是,由于在处理图层时未进行投影坐标系转化,故椭圆长度、面积表 示的是弧度单位。

        从生成面积表示范围,可以发现 2016年 的经济发展范围要大于 2011 年;扁 率表示他的方向明确性和向心力的程度,2016年生成的椭圆扁率低于 2011 年 的,说明了 2016的经济发展情况比 2011 年的方向趋势更明显。空间旋转角变化来看,旋转角由 2011 年的 58.263°降低到2016 年的57.675°,生成的椭圆方向与鄱阳湖生态经济区发展方向基本相符,所以鄱阳湖生态经济区在江西经济发展扮演着重要角色。
        此外,江西经济发展空间分布格局的重心移动路 径总体呈现向东北方向移动的趋势,由 2011 年的(115.712、28.149)移动到 2016 年的(115.744、28.152)。原因在于:受昌九一体化、鄱阳湖生态经济区、 长江中游城市群等战略的影响,资本、技术、固定资产投资及外商投资等向江西北部、东部地区转移。长半轴由 2011 年的 1.747 降至 2016 年的 1.744,下降幅度都较小,表明经济发展空间分布在主要方向上越来越集聚,但是集聚的 幅度不大,短半轴则由 0.925 上升至 0.953,椭圆长轴缩短、短轴增长,说明该阶段江西省经济发展空间分布格局较为稳定,经济发展空间溢出效应尚不明显,空间分布格局仍以南 -北方向为主导,东- 西方向的影响较弱。

三、结果解读

(一)常规结果数据分析  

      (1)椭圆的长半轴表示的是数据分布的方向短半轴表示的是数据分布的范围,长短半轴的值差距越大(扁率越大),表示数据的方向性越明显。反之,如果长短半轴越接近,表示方向性越不明显。如果长短半轴完全相等,就等于是一个圆了,的话就表示没有任何的方向特征

        (2)短半轴表示数据分布的范围,短半轴越,表示数据呈现的向心力越明显;反之,短半轴越,表示数据的离散程度越大。同样,如果短半轴与长半轴完全相等了,就表示数据没有任何的分布特征。

        (3)中心点表示了整个数据的中心位置,一般来说,只要数据的变异程度不是很大的话,这个中心点的位置大约与算数平均数的位置基本上是一致的,至于数据变异是什么情况,请看下面第4点。

        (4)关于标准差椭圆分析的补充介绍

        “标准差椭圆”在Arc MAP中会生成三个级别的椭圆,分别表示了你生成的椭圆,能够包含68%,95%和99%三个级别的数据,当要素具有空间正态分布时(即这些要素在中心处最为密集,而在接近外围时会逐渐变得稀疏),第一级标准差(默认值)范围可将约占总数 68% 的输入要素的质心包含在内。第二级标准差范围会将约占总数 95% 的要素包含在内,而第三级标准差范围则会覆盖约占总数 99% 的要素的质心。

(5)其余常识

        点的疏密:包含点数据的分布探索,是否一致、均匀或者不均匀。点的方位:包含点的分布和方向。点的数量:多少(极值和均值)。点的大小:代表的含义(如点一个点代表多少人口)。

(二) Arc Map结果数据分析

        当中,Shape_Leng和Shape_Area是生成的椭圆的周长和面积。单位与你数据的单位同样,这里我的数据是经纬度的,所以生成的结果仅仅能作为相对參考结果。CenterX和CenterY表示的是椭圆的中心点。XstdDist和YStdDist表示的X轴的长度和Y轴的长度。Rotation表示的是椭圆的方向角度。

四、参考引用

[1]新版白话空间统计(25):方向分布(标准差椭圆) - 知乎 (zhihu.com)

[2]Arcgis空间分布方向性分析_标准差椭圆-CSDN博客

[3]基于GIS的标准差椭圆及重心迁移制作上:标准差椭圆

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

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

相关文章

模型训练环境相关(CUDA、PyTorch)

模型训练环境相关(CUDA、PyTorch) 1. 查看当前 GPU 所能支持的最高版本的 CUDA2. 如何判断是否安装了 CUDA3. 安装 PyTorch3.1 创建虚拟环境3.2 激活并进入虚拟环境3.3 安装 PyTorch 1. 查看当前 GPU 所能支持的最高版本的 CUDA 打开 NVIDIA 控制面板&a…

【Java】抽象类案例

需求:加入我们在开发一个系统时 需要对员工(Employee)类进行设计,员工包含3个属性:姓名、工号(number)以及工资(salary)。 经理(Manager)也是员工…

mysql面试题16:说说分库与分表的设计?常用的分库分表中间件有哪些?分库分表可能遇到的问题有哪些?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说说分库与分表的设计? 在MySQL中,分库与分表是常用的数据库水平扩展技术,可以提高数据库的吞吐量和扩展性。下面将具体讲解MySQL中分库与分表…

机器视觉工程师努力工作确实不一定涨工资,但是努力工作,确实有很大可能涨工资

机器视觉工程师努力工作确实不一定涨工资,但是努力工作,确实有很大可能涨工资 其实在我们机器视觉工程张薪资方面,正常是一年两次调整周期。

基于Java的网上邮轮预定系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

中秋时节赏明月,五子棋戏月饼趣 — Flutter中秋限定版五子棋

前言 当中秋时节来临,我们都期待着与亲人朋友共度这个美好的节日。这个时候,除了传统的赏月和品尝美味的月饼,我还有一个特别的建议——尝试一款有趣的Flutter五子棋游戏!这款五子棋游戏以中秋为主题,游戏的棋子也可爱…

【计算机网络】HTTPS协议详解

文章目录 一、HTTPS协议 介绍 1、1 HTTP协议不安全的体现 1、2 什么是 HTTPS协议 二、加密的一些概念 2、1 怎么理解加密 2、2 为什么要加密 2、3 常见的加密方式 2、2、1 对称加密 2、2、2 非对称加密 三、HTTPS协议探究加密过程 3、1 只使用对称加密 3、2 只是用非对称加密 3…

Discuz!X 3.4任意文件删除漏洞

复现过程: 1.访问http://x.x.x/robots.txt(文件存在) 2.登录弱口令 账号:admin密码:admin 3.来到个人设置页面找到自己的formhash: 4.点击保存,抓包 来到这个参数:birthprovin…

C#开发的OpenRA游戏之电力系统之一

C#开发的OpenRA游戏之电力系统之一 前面已经分析过雷达地图显示,在雷达地图的下面有一个显示电力数量显示,如下图: 从上图看到电力的数量为0,所以这时候就处于低电力的模式。 要在这里显示电力,那么就需要在界面上做一点编辑,是在yaml文件定义它: Container@POWERBAR…

基于springboot的大创管理系统

目录 前言 一、技术栈 二、系统功能介绍 项目中检管理 专家评审管理 项目申报管理 项目结项管理 学生注册管理 优秀项目信息 项目信息申报 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理…

Qt 设置软件的版本信息:QMake、CMake工程

本文借鉴了Qt 设置软件的版本信息 - 疯狂delphi - 博客园 (cnblogs.com) 在原文基础增加了CMake工程实现的方法。 Qt设置软件的版本等信息 对于Qt开发的软件,我们如何去方便的查看其软件的版本信息。这里提供了几种方式。 在运行程序期间设置版本信息 大部分的程序…

【NeurIPS 2023】Backdoor对抗攻防论文汇总

NeurIPS 对抗攻防论文 NeurIPS2022|对抗攻防论文整理 - 知乎 NeurIPS 2023 Papers BIRD: Generalizable Backdoor Detection and Removal for Deep Reinforcement Learning https://neurips.cc/virtual/2023/poster/70618 摘要: 后门攻击对深度强化学习&…

Nginx在CentOS上的安装部署、RabbitMQ在CentOS上安装部署

目录 1. Nginx在CentOS上的安装部署 1.1 Nginx简介 1.2 Nginx安装 1.2.1 安装yum依赖程序 1.2.2 手动添加,nginx的yum仓库 1.2.3 通过yum安装最新稳定版的nginx 1.2.4 启动 1.2.5 配置防火墙放行 1.2.6 启动后浏览器输入Linux服务器的IP地址或主机…

微信支付费率降低到0.2%,商家收款开户手续费0.6%降低的操作方法

在如今的数字时代,移动支付已成为人们日常生活中必不可少的一部分。微信支付作为国内最受欢迎的移动支付平台,一直致力于为商家和个人提供最便捷、安全的支付方式。如果可以将微信支付将费率降低到仅为0.2%,这无疑给广大商家带来了巨大的利好…

基于SpringBoot的网上超市系统

基于SpringBoot的网上超市系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:用户、管理员 管理员:个人中心、用户管理、商品分类…

基于Java的校园跑腿接单管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

武汉建筑模板厂家哪家质量好?

武汉作为中国的重要城市,建筑业的发展日益蓬勃。在众多建筑材料供应商中,选择一家质量好的建筑模板厂家对于工程质量和施工效率至关重要。那么,武汉有哪些建筑模板厂家质量好呢?让我们来探讨一下。 首先,武汉建筑模板厂…

【Docker Compose】Docker Compose 的安装,使用以及实现微服务集群的部署

文章目录 前言:Docker 部署存在的问题一、 初识 Docker Compose1.1 什么是 Docker Compose1.2 在 CentOS 上安装 Docker Compose 二、深入了解 Docker Compose 文件2.1 Docker Compose 文件概述2.2 Docker Compose 文件详解2.3 示例:编写 Docker Compose…

20231005使用ffmpeg旋转MP4视频

20231005使用ffmpeg旋转MP4视频 2023/10/5 12:21 百度搜搜:ffmpeg 旋转90度 https://zhuanlan.zhihu.com/p/637790915 【FFmpeg实战】FFMPEG常用命令行 https://blog.csdn.net/weixin_37515325/article/details/127817057 FFMPEG常用命令行 5.视频旋转 顺时针旋转…

国庆发生的那些事儿------编写了炫酷的HTML动态鼠标特效,超级炫酷酷酷!

文章目录 前言具体操作总结 前言 国庆假期的欢乐,当然少不了编码爱好者!假期编写了炫酷的HTML动态鼠标特效,超级炫酷酷酷!让你的页面变得更加炫酷,让你的小伙伴们羡慕的大神编码!快来看看大神是如何编写的…