Pearson 相关系数的可视化辅助判断和怎么用

Pearson 相关系数的可视化辅助判断和怎么用

flyfish

Pearson 相关系数 是一种用于衡量两个连续型变量之间线性相关程度的统计量。其定义为两个变量协方差与标准差的乘积的比值。公式如下: 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 和 Y 的观测值。

  • x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ 分别是 X 和 Y 的均值。

取值范围为 [-1, 1]:

  • 1 表示完全正相关。

  • -1 表示完全负相关。

  • 0 表示无线性相关。
    在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns# 生成样本数据
np.random.seed(0)
x = np.random.randn(100)
y1 = 2 * x + np.random.randn(100)  # 正相关
y2 = -2 * x + np.random.randn(100) # 负相关data = pd.DataFrame({'x': x, 'y1': y1, 'y2': y2})# 绘图
plt.figure(figsize=(12, 6))# 正相关
plt.subplot(1, 2, 1)
sns.regplot(x='x', y='y1', data=data, scatter_kws={'color': 'blue'}, line_kws={'color': 'red'})
plt.title('Positive Correlation')# 负相关
plt.subplot(1, 2, 2)
sns.regplot(x='x', y='y2', data=data, scatter_kws={'color': 'blue'}, line_kws={'color': 'red'})
plt.title('Negative Correlation')plt.show()

在零均值化处理之后,Pearson 相关系数的计算公式与 Cosine 相似度的计算公式本质上变得相同

可视化辅助判断相关性

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.metrics.pairwise import cosine_similarity# 生成样本数据
np.random.seed(0)
x = np.random.randn(100)
y1 = 2 * x + np.random.randn(100)  # 正相关
y2 = -2 * x + np.random.randn(100) # 负相关
y = 0.5 * x**2 + np.random.randn(100)  # 非线性相关data = pd.DataFrame({'x': x, 'y1': y1, 'y2': y2, 'y': y})# 绘图
plt.figure(figsize=(18, 6))# 正相关
plt.subplot(1, 3, 1)
sns.regplot(x='x', y='y1', data=data, scatter_kws={'color': 'blue'}, line_kws={'color': 'red'})
plt.title('Positive Correlation')# 负相关
plt.subplot(1, 3, 2)
sns.regplot(x='x', y='y2', data=data, scatter_kws={'color': 'blue'}, line_kws={'color': 'red'})
plt.title('Negative Correlation')# 非线性相关
plt.subplot(1, 3, 3)
sns.scatterplot(x='x', y='y', data=data, color='blue')
plt.title('Nonlinear Correlation')plt.show()# 热图(Heatmap)
corr_matrix = data.corr()
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('Correlation Matrix Heatmap')
plt.show()# 散点图矩阵(Pair Plot)
sns.pairplot(data)
plt.show()# 计算 Pearson 相关系数与 Cosine 相似度
x_mean = x - np.mean(x)
y_mean = y1 - np.mean(y1)
pearson_corr = np.corrcoef(x, y1)[0, 1]
cosine_sim = cosine_similarity([x_mean], [y_mean])[0, 0]print(f'Pearson 相关系数: {pearson_corr}')
print(f'Cosine 相似度: {cosine_sim}')

Pearson 相关系数与Cosine 相似度 的比较

Pearson 相关系数

Pearson 相关系数衡量的是两个变量之间的线性相关性,具体公式为:
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 X X Y Y Y 的观测值, x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ 分别是 X X X Y Y Y 的均值。
Pearson 相关系数的取值范围是 [-1, 1]:

  • 1 表示完全正相关。

  • -1 表示完全负相关。

  • 0 表示没有线性相关性。

Cosine 相似度

Cosine 相似度主要用于衡量两个向量在向量空间中的方向相似度,公式为:
Cosine Similarity = ∑ x i y i ∑ x i 2 ∑ y i 2 \text{Cosine Similarity} = \frac{\sum x_i y_i}{\sqrt{\sum x_i^2 \sum y_i^2}} Cosine Similarity=xi2yi2 xiyi
取值范围是 [0, 1]:

  • 1 表示两个向量完全同向。

  • 0 表示两个向量完全不相关。

当向量经过零均值化处理后,对两个变量 X X X Y Y Y 进行零均值化处理(即将它们的均值减去),那么 Pearson 相关系数和 Cosine 相似度是相等的。

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity# 生成样本数据
np.random.seed(0)
x = np.random.randn(100)
y = 2 * x + np.random.randn(100)# 0 均值化
x_mean = x - np.mean(x)
y_mean = y - np.mean(y)# 计算 Pearson 相关系数
pearson_corr = np.corrcoef(x, y)[0, 1]# 计算 Cosine 相似度
cosine_sim = cosine_similarity([x_mean], [y_mean])[0, 0]print(f'Pearson 相关系数: {pearson_corr}')
print(f'Cosine 相似度: {cosine_sim}')
Pearson 相关系数: 0.9006752160894267
Cosine 相似度: 0.9006752160894267

Pearson 相关系数的使用条件

  1. 线性关系:
    Pearson 相关系数适用于度量两个变量之间的线性关系。如果变量之间的关系是非线性的,Pearson 相关系数可能无法准确反映它们的相关性。

  2. 连续变量:
    适用于连续型变量。对于分类变量或离散型变量,应该使用其他相关性度量方法,如 Spearman 相关系数或 Kendall 相关系数。

  3. 正态分布:
    变量应该大致符合正态分布。如果变量显著偏离正态分布,可以考虑进行数据变换(如对数变换)或使用非参数方法(如 Spearman 相关系数)。

  4. 独立性:
    变量应该是独立的。相关系数度量的是两个变量之间的关系,而不是因果关系。因此,两个变量的独立性是一个基本假设。

  5. 方差不为零:
    变量的方差不应该为零。如果一个变量的方差为零,那么所有观测值都是相同的,无法计算相关性。

Pearson 相关系数的使用注意事项

  1. 敏感性:
    Pearson 相关系数对异常值非常敏感。少量的异常值可能会显著影响相关系数的值,因此在计算相关系数之前,应处理异常值(如删除或平滑处理)。

  2. 线性相关性:
    Pearson 相关系数只能度量线性相关性。如果两个变量之间存在复杂的非线性关系,Pearson 相关系数可能无法准确反映它们的相关性。应结合散点图等可视化手段来判断是否存在线性关系。

  3. 范围限制:
    Pearson 相关系数的取值范围在 [-1, 1] 之间。绝对值接近 1 表示强线性相关性,接近 0 表示弱线性相关性。然而,接近 0 的相关系数并不一定意味着变量之间没有关系,可能存在非线性关系。

  4. 数据清洗:
    在计算相关系数之前,需对数据进行清洗,包括处理缺失值、异常值和确保数据满足正态分布等条件。

  5. 样本大小:
    Pearson 相关系数的可靠性依赖于样本大小。较小的样本可能导致不稳定的相关系数,因此需要足够大的样本量以获得可靠的估计。

  6. 因果关系:
    Pearson 相关系数只能反映变量之间的相关性,不能推断因果关系。即使两个变量之间存在高相关性,也不能直接说明一个变量导致了另一个变量的变化。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3568平台(opencv篇)opencv处理图像视频

一.读取图像文件并展示 灰度图像: 灰度图需要用 8 位二进制来表示,取值范围是 0-255。用 0 表示 0(黑色), 用 255 表示 1(白色),取值越大表示该点越亮。 RGB 彩色图像:…

计算机网络浅谈—什么是 OSI 模型?

开放系统通信(OSI)模型是一个代表网络通信工作方式的概念模型。 思维导图 什么是 OSI 模型? 开放系统互连 (OSI) 模型是由国际标准化组织创建的概念模型,支持各种通信系统使用标准协议进行通信。简单而言,OSI 为保证…

【问题记录】VsCode中以管理员权限运行Powershell

问题展示 今天在尝试运行nodemon命令的时候出问题,显示没法识别,经过分析发现是管理员权限的问题,由于是在vscode里面进行开发,因此特此进行配置。 方法一 直接在vscode命令行中输入如下命令: Start-Process powers…

如何查询并下载韩国签证

登录大韩民国签证门户网站(https://www.visa.go.kr),点击“查询/签发”- “办理进度查询及打印”。 2) 输入护照号码、英文姓名及出生日期后点击查询。 3) 若签证通过,办理状态信息栏下面会显示签证信息。 4)点击“签证…

人生苦短,我用Python+Docker

今天用一个简单的例子,介绍下如何使用Docker进行Python部署。 前期准备 本地需要有Python环境; 一个Linux的服务器并已经装好Docker ; 能把代码上传到服务端的工具。 本文的本地环境是Win10Python3.12,服务器使用Ubuntu的云服…

springboot通江银耳销售管理系统-计算机毕业设计源码15998

摘要 随着人们健康意识的增强,银耳这种传统的中药食材备受关注。而通江银耳是四川省通江县特产,中国国家地理标志产品。四川省通江县是银耳的发源地,中国银耳之乡,通江银耳因主产于此而得名,以其独到的质厚、肉嫩、易炖…

Objective-C 中的 isa 不再是简单的结构体指针

了解 Objective-C 中的 isa 指针内存结构 在 Objective-C 中,isa 指针是对象和类之间的重要桥梁。它不仅帮助运行时系统识别对象的类型,还参与了一些内存和性能优化。本文将深入讲解 isa 指针的内存结构,包括其在早期和现代实现中的演变。 …

彩虹小插画:成都亚恒丰创教育科技有限公司

彩虹小插画:色彩斑斓的梦幻世界 在繁忙的生活节奏中,总有一抹温柔的色彩能悄然触动心弦,那就是彩虹小插画带来的梦幻与宁静。彩虹,这一自然界的奇迹,被艺术家们巧妙地融入小巧精致的插画之中,不仅捕捉了瞬…

海外金融机构银行保险证券数字化转型营销销售数字化成功案例讲师培训师讲授开户销售营销客户AI人工智能创新思维

金融机构需要数字营销的主要原因 数字银行、直接存款和移动网络的兴起让客户无需前往当地分行即可轻松办理银行业务。这些举措不仅提升了用户体验,也迫使银行向数字化世界迈进。 金融服务公司需要在数字营销渠道上保持稳固的地位,以免落后于大型机构。…

man手册的安装和使用

man手册 - HQ 文章目录 man手册 - HQ[toc]man手册的使用Linux man中文手册安装man中文手册通过安装包安装通过apt安装 配置man中文手册README使用说明配置步骤 man手册的使用 首先man分为八个目录,每个目录用一个数字表示 1.可执行程序2.系统调用3.库函数4.特殊文…

2024亚太杯中文赛数学建模B题word+PDF+代码

2024年第十四届亚太地区大学生数学建模竞赛(中文赛项)B题洪水灾害的数据分析与预测:建立指标相关性与多重共线性分析模型、洪水风险分层与预警评价模型、洪水发生概率的非线性预测优化模型,以及大规模样本预测与分布特征分析模型 …

[Linux]安装+使用虚拟机

首先下载(提取码 : ssjf)虚拟机(应该是必须要下载17的了 , 我刚开始下载了15,16的在解决了不兼容的问题后频繁出现蓝屏的 ) 刚开始我遇见了 小问题 --》 在查看了以下两篇blog就解决了 虚拟机无法打开,…

防火墙安全策略用户认证综合实验

基础配置 1,交换机配置(LSW5) 划分vlan10和vlan20,将g0/0/1与与防火墙化为trunk干道,使用防火墙路由模式(子接口),g0/0/2和g0/0/3化为access链路,分别连接生产区&#xf…

nginx的重定向(rewrite)

1、location 匹配 location匹配的就是后面的URL,对访问的路径做访问控制或者代理转发 共有三个匹配:精确匹配、正则匹配、一般配 a、精确匹配 格式:location/ 对字符串进行完全匹配,必须完全合 c、正则匹配 ^~:前…

【ARMv8/v9 GIC 系列 5.6 -- GIC 超优先级中断详细介绍】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 Interrupt superpriority超优先级中断的特性和应用Physical interface interrupt signalsPhysical Group 1 Non-NMI for Current Security StatePhysical Group 1 for Other Security State, or a Group 0 Non-NMIPhysical Group 1 …

微软发布Win11 21H2七月更新补丁KB5040431,快来体验!

系统之家于7月10日发出最新报道,微软为Win11 21H2用户发布了七月的安全更新补丁KB5040431。用户升级系统后,会发现版本号升至22000.3079。此次更新针对远程桌面MultiPoint Server在争用条件会导致服务停止响应等多个问题进行修复。接下来跟随小编看看此次…

Python 中创建当前日期和时间的文件名技巧详解

概要 在日常开发中,经常需要创建带有当前日期和时间的文件名,以便进行日志记录、数据备份或版本控制等操作。Python 提供了丰富的库和函数,可以方便地获取当前日期和时间,并将其格式化为字符串,用于生成文件名。本文将详细介绍如何使用 Python 创建带有当前日期和时间的文…

使用ifconfig命令获取当前服务器的内网IP地址

如何使用ifconfig命令获取当前服务器的内网IP地址呢? ifconfig eth0 | grep inet | awk {print $2}

汇川CodeSysPLC教程03-2-14 与HMI通信

硬件连接 PLC与HMI连接采用何种连接方式,通常是参考双方支持哪些接口。PLC(可编程逻辑控制器)与HMI(人机界面)之间的通讯方式主要有以下几种: 串行通讯(Serial Communication)&…