通过案例学习pandas计算相关系数

news2025/1/11 23:34:44

pandas计算相关系数

在数据分析和统计学中,相关系数是一种用于衡量两个变量之间关系强度的统计指标。它可以帮助我们了解两个变量之间的线性关系强度和方向。

Pandas是一个强大的Python库,提供了许多用于数据分析和处理的功能。在本文中,我们将介绍如何使用Pandas计算相关系数以及其原理。

导入pandas和数据

首先,我们需要导入Pandas库,用来分析我们的数据。
假设我们有一个包含5个变量XY的数据集,我们可以使用sklearn.datasetsmake_regression函数生成我们需要的数据。

以下是获取数据的示例代码:

import pandas as pd

# 用sklearn制作一些数据
from sklearn.datasets import make_regression

X, y = make_regression(n_samples=100, n_features=5, noise=1, random_state=42)

df = pd.DataFrame(data=X,columns=list("abcde"))
df["y"] = y

在这里插入图片描述

计算相关系数

接下来,我们可以使用Pandascorr函数计算相关系数。corr函数可以计算多个变量之间的相关系数,返回一个相关系数矩阵。

以下是计算相关系数的示例代码:

# 计算相关系数
corr = df.corr()

图2

相关系数矩阵是一个对称矩阵,其中每个元素表示两个变量之间的相关系数。对角线上的元素始终为1,因为每个变量与自身的相关系数为1。

相关系数矩阵美化

相关系数矩阵计算完成后,我们可以知道各个变量之间的强弱关系。但是由于数据太多,让人眼花缭乱的看不清楚。我们可以用pandas的表格美化工具,将相关系数低于-0.2和高于0.2的数据标红。

以下是表格数据标红的示例代码:

def highlight_max(s, props=''):
    return np.where((s >= 0.2)|(s<=-0.2), props, '')

corr2.style.apply(highlight_max, props='color:white;background-color:red', axis=0)

图3

热力图可视化

我们还可以使用seabornheatmap函数可视化相关系数矩阵。heatmap函数可以根据相关系数的大小,将相关系数矩阵绘制为热力图。以下是绘制热力图的示例代码:

import warnings
warnings.filterwarnings("ignore")
from pylab import mpl 
import matplotlib.pyplot as plt
import seaborn as sns
# 防止中文显示为方格
mpl.rcParams['font.sans-serif']=['SimHei']

f , ax = plt.subplots(figsize = (7, 7))
plt.title('Correlation of Numeric Features with Price',y=1,size=16)
sns.heatmap(corr2,square = True, annot=True, vmax=1,cmap='coolwarm')
plt.show()

图4

在上述代码中,我们使用seaborn库的heatmap函数绘制热力图,并使用matplotlib库的plt.show()函数显示图形。通过设置annot参数为True,可以在热力图上显示相关系数的值。通过设置cmap参数为coolwarm,可以将相关系数的值映射为不同的颜色。

通过以上步骤,我们可以使用Pandas轻松计算相关系数并可视化相关系数矩阵。这对于分析两个变量之间的关系非常有用,并可以帮助我们了解数据集的特征。

1. 相关系数的定义

相关系数是一个介于-1和1之间的值,表示两个变量之间的关联程度。相关系数为正表示两个变量呈正相关关系,即当一个变量增加时,另一个变量也增加;相关系数为负表示两个变量呈负相关关系,即当一个变量增加时,另一个变量减少;相关系数接近于0表示两个变量之间没有线性关系。

2. 相关系数的计算方法

常用的相关系数有皮尔逊相关系数和斯皮尔曼相关系数。

2.1 皮尔逊相关系数

皮尔逊相关系数是用来衡量两个连续变量之间线性关系强度的统计量。它的计算公式如下:

r = ∑ ( X i − X ˉ ) ( Y i − Y ˉ ) ∑ ( X i − X ˉ ) 2 ∑ ( Y i − Y ˉ ) 2 r = \frac{{\sum{(X_i - \bar{X})(Y_i - \bar{Y})}}}{{\sqrt{\sum{(X_i - \bar{X})^2}\sum{(Y_i - \bar{Y})^2}}}} r=(XiXˉ)2(YiYˉ)2 (XiXˉ)(YiYˉ)

其中, X i X_i Xi Y i Y_i Yi分别表示两个变量的观测值, X ˉ \bar{X} Xˉ Y ˉ \bar{Y} Yˉ分别表示两个变量的均值。

2.2 斯皮尔曼相关系数

斯皮尔曼相关系数是用来衡量两个变量之间的单调关系强度的统计量。它的计算公式如下:

ρ = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) \rho = 1 - \frac{{6\sum{d_i^2}}}{{n(n^2-1)}} ρ=1n(n21)6di2

其中, d i d_i di表示两个变量的秩次差, n n n表示样本数量。

3. 相关系数的解释

相关系数的取值范围为-1到1,可以根据取值范围来解释两个变量之间的关系强度和方向。当相关系数接近于1时,表示两个变量之间存在强正相关关系;当相关系数接近于-1时,表示两个变量之间存在强负相关关系;当相关系数接近于0时,表示两个变量之间没有线性关系。

需要注意的是,相关系数只能衡量线性关系,不能衡量非线性关系。此外,相关系数只能衡量两个变量之间的关系,不能确定因果关系。

4. 相关系数的应用

相关系数在统计学和数据分析中有广泛的应用。它可以帮助我们了解变量之间的关系,从而进行预测和决策。

在金融领域,相关系数可以用来衡量不同股票之间的关联程度,从而进行投资组合的优化。

在医学研究中,相关系数可以用来衡量药物剂量与疗效之间的关系,从而确定最佳的治疗方案。

在市场营销中,相关系数可以用来衡量广告投入与销售额之间的关系,从而确定最有效的营销策略。

结论

相关系数是衡量两个变量之间关联程度的重要统计量。通过pandas计算相关系数,我们可以了解两个变量之间的线性关系强度和方向。相关系数的应用广泛,可以帮助我们进行预测和决策。然而,需要注意的是,相关系数只能衡量线性关系,不能确定因果关系。

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

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

相关文章

「新整理」战略定位理论发展史

1954年&#xff0c;彼得德鲁克——现代管理学之父 代表作《管理的实践》 提出具有划时代意义的概念——目标管理&#xff0c;将管理划分为战略管理、组织管理和自我管理。将生产力从生产部门扩大到组织的所有职能部门&#xff0c;以知识精英为代表的职业经理人开始代替资本家走…

基于ssm的CRM客户管理系统(spring + springMVC + mybatis)营销业务信息java jsp源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于ssm的CRM客户管理系统&#xff08;spring spring…

java-JVM 类加载机制

JVM 类加载机制 JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&#xff0c;下面我们就分别来看一下这五个过程。 1.1. 加载 加载是类加载过程中的一个阶段&#xff0c;这个阶段会在内存中生成一个代表这…

浏览器控制台调试实用方法

许多程序员仅知道控制台的console.log&#xff0c;其实控制台API还包含一些其他实用方法&#xff0c; 这些方法在前端调试时会很有帮助。 目录 console.dir 查看对象属性和方法 输出DOM元素 console.error console.time和console.timeEnd console.log console.clear 总结…

13---内嵌HTML和React

虽然Markdown本身不支持内嵌HTML和React&#xff0c;但可以在Markdown文档中直接插入HTML代码和React组件。 一、在markdown中内嵌HTML 在Markdown中&#xff0c;你可以使用HTML标签来实现更复杂的样式和布局。例如&#xff0c;你可以使用<div>标签来创建一个容器&#…

【Axure模板】APP帮助中心原型,在线客服意见反馈模块高保真原型

作品概况 页面数量&#xff1a;共 10 页 兼容软件&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 应用领域&#xff1a;原型设计模板 作品申明&#xff1a;页面内容仅用于功能演示&#xff0c;无实际功能 作品特色 该模板作品为APP帮助与客服的通用模块&#xff0c;…

Kepware 读取16位或32位数据时,结果不是真实数据的问题解决

kepware采集PLC的数据“IW260” IW260的值为61696&#xff0c;与PLC中显示的数值不一致。 61696二进制表示“11110001 00000000”,低8位“00000000”变为十进制为0&#xff1b;高8位“11110001”变为十进制为241&#xff0c;而241是IW260在PLC中显示的数值。由此可看出&#x…

【C语言】字符串函数介绍三(strstr、strtok、streeror)

前言 之前我们用两篇文章介绍了strlen、strcpy、stract、strcmp、strncpy、strncat、strncmp这些函数 第一篇文章strlen、strcpy、stract 第二篇文章strcmp、strncpy、strncat、strncmp 今天我们就来学习&#xff1a; 话不多说&#xff0c;我们直接开始 strstr 返回值 …

护航顶级赛事 | 以赛事空间信息服务助力大运会有序运行

8月8日&#xff0c;第31届世界大学生夏季运动会在成都圆满闭幕。此前&#xff0c;赛事组委会与相关部门着力建设“综合运行管理中心系统(后简称“MOC”系统)”&#xff0c;利用信息化手段&#xff0c;实现了对赛前、赛中、赛后各个阶段、各个对象、各个服务的信息化监管&#x…

用讯飞星火认知大模型构建一个带界面的聊天机器人

在本篇博客中&#xff0c;我们将使用 最新的星火认知大模型和 Tkinter 构建一个简单的聊天机器人界面。通过这个界面&#xff0c;用户可以与聊天机器人进行交互&#xff0c;并查看机器人的回答。 C:\pythoncode\blog\static_16919367030710594_SparkApi_Python\testui.py 准备…

Kubernetes二进制部署方案

目录 一、环境准备 2.1、主机配置 2.2、安装 Docker 2.3、生成通信加密证书 2.3.1、生成 CA 证书&#xff08;所有主机操作&#xff09; 2.3.2、生成 Server 证书&#xff08;所有主机&#xff09; 2.3.3、生成 admin 证书(所有主机) 2.3.4、生成 proxy 证书 三、部署 …

Java多态详解(1)

多态 多态的概念 所谓多态&#xff0c;通俗地讲&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。 比如&#xff1a; 这一时间爆火的“现代纪录片”中&#xff0c;麦克阿瑟总是对各种“名人”有不同的评价&…

Linux常用命令——dircolors命令

在线Linux命令查询工具 dircolors 置ls命令在显示目录或文件时所用的色彩 补充说明 dircolors命令设置ls命令在显示目录或文件时所用的色彩。dircolors可根据[色彩配置文件]来设置LS_COLORS环境变量或是显示设置LS_COLORS环境变量的命令。 语法 dircolors(选项)(参数)选项…

如何区分闰年与平年

首先要明白 地球绕太阳运行周期为365天5小时48分46秒&#xff08;合365.24219天&#xff09;&#xff0c;即一回归年&#xff08;tropical year&#xff09;。公历的平年只有365日&#xff0c;比回归年短约0.2422 日&#xff0c;每四年累积约一天&#xff0c;把这一天加于2月末…

指令:指令执行过程、指令寻址、指令组成、数据寻址、补充(扩展操作码指令格式)

计算机的工作过程是执行程序的过程&#xff0c;程序是一系列按一定顺序执行的指令。 指令是指挥机器执行某种操作的命令&#xff0c;是计算机运行的最小功能单元&#xff08;一组二进制代码&#xff09;。 指令系统&#xff1a;计算机中所有指令的集合&#xff0c;也称指令集…

idea安装插件JRebel

一、安装插件 二、下载代理服务并启动 首先下载服务&#xff0c;网址 Releases ilanyu/ReverseProxy (kgithub.com) 下载后直接双击运行&#xff0c;杀毒软件可以会报警告&#xff0c;直接忽略就行 启动好&#xff0c;等着就行&#xff0c;接下来会用到。 三、在线获取GUID …

通讯协议044——全网独有的OPC HDA知识一之聚合(十二)持续坏值时间

本文简单介绍OPC HDA规范的基本概念&#xff0c;更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化&#xff0c;以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…

Python绘图系统6:自定义坐标列表控件

文章目录 自定义坐标列表控件显示和隐藏加载按钮坐标设置控件的显示和隐藏源代码 Python绘图系统&#xff1a; 基础&#xff1a;将matplotlib嵌入到tkinter &#x1f4c8;简单的绘图系统 &#x1f4c8;数据导入&#x1f4c8;三维绘图系统自定义控件&#xff1a;坐标设置控件&a…

Threejs学习04——球缓冲几何体环境光以及直线光源

实现随机多个三角形随机位置随机颜色展示效果 这是一个非常简单基础的threejs的学习应用&#xff01;本节主要学习的是球面缓冲几何体在环境光合直线光源下的效果&#xff0c;可以学习到环境光和直线光源的生成效果等功能&#xff01;主要使用的是球缓冲几何体对象SphereGeome…

综合能源系统(8)——综合能源系统支撑技术

1、大数据技术 1.1、大数据技术概述 大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 维克托迈尔舍恩伯格和肯尼斯克耶编写…