【python】如何在 Python 中创建相关矩阵

news2024/11/14 16:56:26

目录

一、说明

二、相关理论

2.1 何为相关

2.2 相关的前提

2.3  Correlation Matrix是个啥?

2.4 皮尔逊相关系数

三、Python演示如何创建相关矩阵

四、数据可视化观察

五、后记


一、说明

        本教程介绍如何在 Python 中创建和解释相关矩阵。然而,创建之前还是需要一些条件的,首先要检验数据的相关性。如果明显不相关,相关矩阵没有意义。其次,相关性的解释,相关的展现也是一个重要话题。

二、相关理论

2.1 何为相关

        1 无论是自相关还是互相关,都是描述的几个列向量之间的事情,列向量组合起来就变成了矩阵。

        2 自相关函数指的是列向量 的 相关系数 构成的函数,对于离散序列,自相关函数的变量就是序列的时间差,也就是E [x (k)x (k-t)],当t=0时,求的就是均方值。

        3 相关矩阵出来的就是矩阵 的各个列之间的互相关系数,对角线是样本序列的方差,其他是各个样本序列的 协方差 ,也就是对应时刻的数据乘积的均值。

2.2 相关的前提

        相关分析前,首先通过观察散点图了解变量间大致的关系情况。

        如果变量之间不存在相互关系,那么在散点图上就会表现为随机分布的离散的点,如果存在某种相关性,那么大部分的数据点就会相对密集并以某种趋势呈现。

2.3  Correlation Matrix是个啥?

        Correlation Matrix是指将多个变量之间的相关系数放在一个表格中展示,并以矩阵(Matrix)形式呈现的一种统计工具。在Correlation Matrix中,每个变量都与其他所有变量之间的相关系数都呈现出来,这有助于我们了解变量之间的相关关系。Correlation Matrix通常用于探索性数据分析中,可以通过可视化或数值方式展示变量之间的相关性,从而帮助我们了解变量之间的关系,进而做出合理的决策。

2.4 皮尔逊相关系数

        量化两个变量之间关系的一种方法是使用皮尔逊相关系数,它是两个变量之间线性关联的度量。它衡量了两个变量之间的线性关系强度和方向,它的值介于 -1 和 1 之间,其中:

  • -1 表示完全负线性相关。
  • 0 表示没有线性相关。
  • 1 表示完全正线性相关。

        相关系数离零越远,两个变量之间的相关性越强。

        但在某些情况下,我们想要了解不仅仅是一对变量之间的相关性。在这些情况下,我们可以创建一个相关矩阵,它是一个方表,显示多个变量成对组合之间的相关系数。

三、Python演示如何创建相关矩阵

        使用以下步骤在 Python 中创建相关矩阵。下列以某个篮球对为例生成一组比赛数据:助攻、篮板、得分的关系,以8场篮球的比赛统计说事。

Step 1: 先生成数据集.

import pandas as pd

data = {'助攻次数': [4, 5, 5, 6, 7, 8, 8, 10],
        '篮板球': [12, 14, 13, 7, 8, 8, 9, 13],
        '得分': [22, 24, 26, 26, 29, 32, 20, 14]
        }

df = pd.DataFrame(data, columns=['assists','rebounds','points'])

        以上用字典生成一个pd.DataFrame,表格如下: 

df

   assist  rebounds  points
0	4	12	22
1	5	14	24
2	5	13	26
3	6	7	26
4	7	8	29
5	8	8	32
6	8	9	20
7	10	13	14

Step 2: 生成相关矩阵.

#create correlation matrix
df.corr()

                assists   rebounds     points
assists        1.000000  -0.244861  -0.329573
rebounds      -0.244861   1.000000  -0.522092
points        -0.329573  -0.522092   1.000000

#create same correlation matrix with coefficients rounded to 3 decimals 
df.corr().round(3)
	       assists	rebounds  points
assists	         1.000	  -0.245  -0.330
rebounds	-0.245	   1.000  -0.522
points	        -0.330	  -0.522   1.000

Step 3:  解释相关矩阵

        沿表对角线的相关系数均等于 1,因为每个变量与其自身完全相关。所有其他相关系数表示变量的不同成对组合之间的相关性。例如:

  • 助攻和篮板之间的相关系数为-0.245。
  • 助攻数和得分之间的相关系数为-0.330。
  • 篮板数和得分之间的相关系数为-0.522。

四、数据可视化观察

        数据科学最重要的技能之一就是数据可视化,在数据建模过程中,我们比较关心数据之间的相关性,而观察数据相关性我们使用最多的技能之一就是相关性矩阵。数据相关性矩阵可以让我们对数据之间的关联关系有更为直观的理解。这里简单汇总一下使用Python绘制传统相关性矩阵/下三角相关性矩阵/重点相关性矩阵的代码。

        3种常见方式:

  • 1. 简单直接 - df.corr() 方法;
  • 2. 常见好用 - heatmap 热力图;
  • 3. 形象且有规律 - 正负相关关系分离的条形图。

Step 4: 可视化相关矩阵(可选)。

        您可以使用 pandas 中可用的样式选项来可视化相关矩阵:

corr = df.corr()
corr.style.background_gradient(cmap='coolwarm')

        您还可以更改 cmap 的参数以生成具有不同颜色的相关矩阵。

corr = df.corr()
corr.style.background_gradient(cmap='RdYlGn')

corr = df.corr()
corr.style.background_gradient(cmap='bwr')

corr = df.corr()
corr.style.background_gradient(cmap='PuOr')

五、后记

        相关一般是和其它统计手段同时应用的。我们本文只讲相关矩阵生成部分,但不分析数据,因此,如何用python生成才是重点。

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

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

相关文章

English Learning - L3 作业打卡 Lesson7 Day47 2023.6.20 周二

English Learning - L3 作业打卡 Lesson7 Day47 2023.6.20 周二 引言🍉句1: Growing up in a hot Las Vegas desert, all I wanted was to be free.成分划分弱读连读语调 🍉句2: I would daydream about traveling the world, living in a place where i…

有三个线程,分别只能打印A,B和C要求按顺序打印ABC,打印10次(多种方法,小白也懂)

目录 第一种方法:使用LockSupport的park和unpark功能(推荐) 第二种方式:synchronizedwaitnotify 第三种:暴力循环方法(不推荐) 第一种方法:使用LockSupport的park和unpark功能(推荐) 简单来说我们有一个名为LockSupport的方法 park就是阻塞当前进程 unpark就是取消阻塞让其…

DRIFTINGBLUES: 4实战演练

文章目录 DRIFTINGBLUES: 4实战演练一、前期准备1、相关信息 二、信息收集1、端口扫描2、访问网站3、查看源码4、解密5、访问网页6、解密7、访问网页8、微信扫一扫9、爆破FTP10、登录FTP11、下载文件并查看12、写入SSH密钥并上传13、SSH连接 三、后渗透1、查看第一个flag2、查找…

Golang | Web开发之Gin静态资源映射及HTML模板渲染

欢迎关注「全栈工程师修炼指南」公众号 点击 👇 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! 专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享 “ 花开堪折直须折&#xf…

[Eigen中文文档] 稀疏矩阵操作

文档总目录 本文目录 稀疏矩阵格式SparseMatrix 类 第一个示例SparseMatrix 类矩阵和向量属性迭代非零系数 填充稀疏矩阵支持的运算符和函数基本操作矩阵乘积块操作三角形视图和自共轭视图 英文原文(Sparse matrix manipulations) 处理和解决稀疏问题涉及各种模块&#xff0c…

【马蹄集】第十六周作业

第十六周作业 目录 MT2149 最长子段和MT2150 旅费MT2156 矩阵取数MT2157 迷宫MT2155 四柱河内塔 MT2149 最长子段和 难度:钻石    时间限制:1秒    占用内存:128M 题目描述 给出一个长度为 n n n 的序列 A A A,选出其中连续…

Android studio的安装的详细过程

Android开发环境 Eclipse Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 Eclipse是一种面…

动手实现条件随机场(上)

引言 本文基于PyTorch实现条件随机场,实现CRF层参考论文Neural Architectures for Named Entity Recognition中关于CRF层的描述。包含大量的图解和例子说明,看完一定能理解! 论文地址: https://arxiv.org/pdf/1603.01360.pdf 也可…

【Linux】随机数的生成

生成随机数目录 生成随机数:默认为(0-32767)生成指定区间随机数:随机生成1-50之间的数随机生成时间戳秒和纳秒加密运算生成一个随机字符指定10个在使用md5sum校验/dev/random是什么? 生成随机的UUID加密算法相关文章 生成随机数:默…

CODESYS斜坡函数功能块(ST源代码)

SMART PLC梯形图斜坡函数FC请参看下面文章链接: SMART PLC斜坡函数功能块(梯形图代码)_RXXW_Dor的博客-CSDN博客斜坡函数Ramp的具体应用可以参看下面的文章链接:PID优化系列之给定值斜坡函数(PLC代码+Simulink仿真测试)_RXXW_Dor的博客-CSDN博客很多变频器里的工艺PID,…

Gradio Blocks:queue、integrate和load方法介绍

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

(2019,图像指纹 模型指纹)溯源虚假图像的 GAN:学习和分析 GAN 指纹

Attributing fake images to gans: Learning and analyzing gan fingerprints 公众号:EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 用于图像溯源的指纹学习 3.1 溯源网络 3.2 成分分析网络 3.3 指纹可视化 4. 实验 4.1 设置 4.2 存在性和唯一性&#xff…

【Red Hat 7.9---详细安装Oracle 11g】---图形化界面方式

【Red Hat 7.9---详细安装Oracle 11g】---图形化界面方式 🔻 一、安装前规划🔻 二、安装前准备一(系统参数修改)⛳ 2.1 内核版本、系统版本查看⛳ 2.2 修改主机名-重启生效⛳ 2.3 关闭selinux⛳ 2.4 防火墙设置1521端口开放⛳ 2.5…

scapy定制数据包探测主机

kali 输入scapy 进入界面 scapy定制ARP协议 输入ARP().display()显示ARP包的详细信息 输入sr1(ARP(pdst"192.168.133.2")),向网关发送arp请求数据包 scapy定制PING包 输入IP().display()显示IP包的详细信息 输入ICMP().display()显示ICMP包的详细信息…

C++【STL】之stack和queue学习

文章目录: 1. 容器适配器1.1 适配器的概念1.2 STL标准库中stack和queue的底层结构 2. 栈stack2.1 stack的使用2.2 stack模拟实现 3. 队列queue3.1 queue的使用3.2 queue模拟实现 1. 容器适配器 1.1 适配器的概念 适配器是一种设计模式(设计模式是一套被反复使用的…

Elasticsearch“滚动查询“(Scrolling)的机制的与Java使用ES Client 调用滚动查询

Elasticsearch"滚动查询"(Scrolling)的机制的与Java使用ES Client 调用滚动查询 前言1. 滚动查询的一般步骤1.1 发起初始搜索请求,返回命中结果和滚动ID1.2 使用滚动ID检索下一页结果1.4 重复执行直到没有检索结果返回1.5 清除滚动上下文释放资…

【系统开发】尚硅谷 - 谷粒商城项目笔记(八):Seata分布式事务

文章目录 Seata分布式事务简介事务的隔离级别事务传播行为本地事务[Transactional](https://so.csdn.net/so/search?qTransactional&spm1001.2101.3001.7020)传播行为分布式事务CAP理论分布式事务常见解决方案2PC(两阶段提交,刚性事务)TCC(柔性事务…

头一次见单例模式讲的如此透彻

简介 单例模式是一种常用的软件设计模式,用于创建类型。通过单例模式的方法创建的类在当前进程中只有一个实例。单例模式的类只能允许一个实例存在。单例模式的作用是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个…

【springboot整合】Spring缓存抽象

JSR-107简介 为了统一缓存开发规范,以及提升缓存开发的扩展性,J2EE发布了JSR-107缓存开发规范。 Java Caching定义了5个核心接口,分别是CachingProvider、CacheManger、Cache、Entry和Expiry CachingProvider:定义了创建、配置…

基于Java毕业论文管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…