Python相关系数导图

2024-08-26 09:52
文章标签 python 导图 相关系数

本文主要是介绍Python相关系数导图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🎯要点

  1. 量化变量和特征关联
  2. 绘图对比皮尔逊相关系数、斯皮尔曼氏秩和肯德尔秩
  3. 汽车性价比相关性矩阵热图
  4. 大流行病与资产波动
  5. 城镇化模型预测交通量
  6. 宝可梦类别特征非线性依赖性捕捉
  7. 向量加权皮尔逊相关系数
  8. 量化图像相似性
    在这里插入图片描述

Python皮尔逊-斯皮尔曼-肯德尔

皮尔逊相关系数

在统计学中,皮尔逊相关系数 是一种用于测量两组数据之间线性相关性的相关系数。它是两个变量的协方差与其标准差乘积的比率;因此,它本质上是协方差的标准化测量,其结果始终介于 -1 和 1 之间。与协方差本身一样,该测量只能反映变量的线性相关性,而忽略了许多其他类型的关系或相关性。举一个简单的例子,人们会期望来自小学的一组儿童的年龄和身高的皮尔逊相关系数明显大于 0,但小于 1(因为 1 表示不切实际的完美相关性)。

皮尔逊相关系数是两个变量的协方差除以其标准差的乘积。定义的形式涉及“乘积矩”,即均值调整后的随机变量乘积的均值(关于原点的一阶矩),因此名称中带有修饰词“乘积矩”。

皮尔逊相关系数应用于样本时,通常用 r x y r_{x y} rxy 表示,可称为样本相关系数或样本皮尔逊相关系数。通过将基于样本的协方差和方差的估计值代入上述公式,我们可以得到 r x y r_{x y} rxy 的公式。给定由 n n n 对组成的配对数据 { ( x 1 , y 1 ) , … , ( x n , y n ) } \left\{\left(x_1, y_1\right), \ldots,\left(x_n, y_n\right)\right\} {(x1,y1),,(xn,yn)},定义 r x y r_{x y} rxy
r x y = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r_{x y}=\frac{\sum_{i=1}^n\left(x_i-\bar{x}\right)\left(y_i-\bar{y}\right)}{\sqrt{\sum_{i=1}^n\left(x_i-\bar{x}\right)^2} \sqrt{\sum_{i=1}^n\left(y_i-\bar{y}\right)^2}} rxy=i=1n(xixˉ)2 i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)
要计算 Pearson’s R 相关系数,使用 scipy.stats 库中的 pearsonr 函数。

import numpy as np
from scipy.stats import pearsonrx = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])correlation_coefficient, _ = pearsonr(x, y)
print("Pearson's Correlation Coefficient:", correlation_coefficient)

这里的输出显示了完美的正相关性,其中当一个变量增加 1 时,另一个变量也增加相同的量。

Pearson's Correlation Coefficient: 1.0

绘图

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import pearsonr
import seaborn as snsnp.random.seed(0)
x_neg = np.linspace(0, 10, 50)
y_neg = -2 * x_neg + 10 + np.random.normal(0, 2, 50)x_pos = np.linspace(0, 10, 50)
y_pos = 2 * x_pos + np.random.normal(0, 2, 50)x_no_corr = np.linspace(0, 10, 50)
y_no_corr = np.random.normal(0, 2, 50)corr_coeff_neg, _ = pearsonr(x_neg, y_neg)
corr_coeff_pos, _ = pearsonr(x_pos, y_pos)
corr_coeff_no_corr, _ = pearsonr(x_no_corr, y_no_corr)fig, axes = plt.subplots(1, 3, figsize=(15, 5))sns.regplot(x=x_neg, y=y_neg, ax=axes[0], color='red', scatter_kws={'s': 15}, line_kws={'color': 'blue'}, ci=95)
axes[0].set_xlabel('X')
axes[0].set_ylabel('Y')
axes[0].set_title(f"Negative Correlation (r = {corr_coeff_neg:.2f})")sns.regplot(x=x_pos, y=y_pos, ax=axes[1], color='green', scatter_kws={'s': 15}, line_kws={'color': 'blue'}, ci=95)
axes[1].set_xlabel('X')
axes[1].set_ylabel('Y')
axes[1].set_title(f"Positive Correlation (r = {corr_coeff_pos:.2f})")sns.regplot(x=x_no_corr, y=y_no_corr, ax=axes[2], color='blue', scatter_kws={'s': 15}, line_kws={'color': 'blue'}, ci=95)
axes[2].set_xlabel('X')
axes[2].set_ylabel('Y')
axes[2].set_title(f"No Correlation (r = {corr_coeff_no_corr:.2f})")plt.tight_layout()
plt.show()

斯皮尔曼秩相关系数

在统计学中,斯皮尔曼等级相关系数或斯皮尔曼 ρ \rho ρ,通常用希腊字母 ρ \rho ρ (rho) 或 r s r_s rs 表示,是一个排名相关性的非参数度量(两个变量秩之间的统计依赖性)。它评估使用单调函数描述两个变量之间的关系的程度。

斯皮尔曼相关系数定义为秩变量之间的皮尔逊相关系数。对于大小为 n n n 的样本, n n n 对原始分数 ( X i , Y i ) \left(X_i, Y_i\right) (Xi,Yi) 转换为秩 $R \left[X_i\right], R \left[Y_i\right] $ ,于是 r s r_s rs 计算为
r s = ρ [ R [ X ] , R [ Y ] ] = cov ⁡ [ R [ X ] , R [ Y ] ] σ R [ X ] σ R [ Y ] r_s=\rho[ R [X], R [Y]]=\frac{\operatorname{cov}[ R [X], R [Y]]}{\sigma_{ R [X]} \sigma_{ R [Y]}} rs=ρ[R[X],R[Y]]=σR[X]σR[Y]cov[R[X],R[Y]]

要计算斯皮尔曼的秩相关性,使用 scipy.stats 库中的 Spearmanr 函数。

from scipy.stats import spearmanrx = [10, 20, 30, 40, 50]
y = [5, 15, 25, 35, 45]rho, p_value = spearmanr(x, y)print(f"Spearman's Rank Correlation Coefficient: {rho}")
print(f"P-value: {p_value}")

解释 ρ \rho ρ 结果:

  • ρ \rho ρ:当一个变量增加时,另一个变量也会增加,
  • ρ \rho ρ:当一个变量增加时,另一个变量往往会减少。
  • ρ \rho ρ=0:没有单调关系。

肯德尔秩相关系数

在统计学中,肯德尔秩相关系数通常称为肯德尔 τ 系数(以希腊字母 τ 命名,即 tau),是一种用于测量两个测量量之间的序数关联的统计数据。τ 检验是一种基于 τ 系数的统计依赖性非参数假设检验。它是秩相关的度量:按每个量对数据进行排序时,数据排序的相似性。

要计算肯德尔秩相关系数,使用 scipy.stats 库中的 kendalltau 函数。

import numpy as np
from scipy.stats import kendalltaux = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 1, 5, 4])tau, p_value = kendalltau(x, y)print(f"Kendall's Tau (τ): {tau:.2f}")
print(f"P-value: {p_value:.4f}")

👉更新:亚图跨际

这篇关于Python相关系数导图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108225

相关文章

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

使用Python实现高效的端口扫描器

《使用Python实现高效的端口扫描器》在网络安全领域,端口扫描是一项基本而重要的技能,通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用,本文将介绍如何使... 目录1. 端口扫描的基本原理2. 使用python实现端口扫描2.1 安装必要的库2.2 编写端口扫

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交