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://xiahunao.cn/news/3224284.html

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

相关文章

国际网课平台Udemy上的亚马逊云科技AWS免费高分课程和创建、维护EC2动手实践

亚马逊云科技(AWS)是全球云行业最🔥火的云平台,在全球经济形势不好的大背景下,通过网课学习亚马逊云科技AWS基础备考亚马逊云科技AWS证书,对于找工作或者无背景转行做AWS帮助巨大。欢迎大家关注小李哥,及时了解世界最前…

数据类型及数据块认知

西门子STEP7编程语言 梯形图(LAD) 功能块图(FBD) 语句表(STL) 其中梯形图和功能块图可以相互转换 CPU常用数据区 信号输入区 I 信号输出区 Q 程序中表现形式,IX.X/QX.X;IWX/QWX-访问的是CPU输出输入过程映像区 另一种形式IWX:P/QWX:P-访问的是信号端口地址&#xf…

红酒的秘密配方:如何调配出个性化的口感?

在红酒的世界里,每一滴都蕴藏着大自然的秘密和酿酒师的匠心。那些令人陶醉的口感、迷人的色泽和香气,都是经过精心调配和时光酝酿的结果。今天,就让我们一起揭开红酒调配的神秘面纱,探索如何调配出个性化的口感,感受雷…

推荐4款免费好用文本转语音工具

Edge文本转语音 Edge文本转语音功能主要通过Edge-TTS实现。Edge-TTS是由微软开发的文本转语音(TTS)Python库,利用微软Azure Cognitive Services的强大功能,能够将文本信息转换成流畅自然的语音输出。该库支持多种中文语音语色&…

Idea使用EasyApi插件自动生成接口文档到Yapi

1.安装EasyApi插件 2.配置Yapi 设置-》EasyApi Yapi的Server 配置为Yari项目的地址 tokens:项目名Yapi项目里面的token:例如:test-project0e6cfb3c22c884a0fce108fffe554a20ca12341e421d7201233143ee440af36b mytest-portal0e6cfb3c22c884a…

【Linux进阶】文件系统4——文件系统特性

1.磁盘组成与分区的复习 首先说明一下磁盘的物理组成,整块磁盘的组成主要有: 圆形的碟片(主要记录数据的部分);机械手臂,与在机械手臂上的磁头(可擦写碟片上的数据);主轴马达,可以…

从“+AI”到“AI+”,时代进入“Next Level”

“创新的速度比创新本身更重要。”埃隆马斯克曾这样说到。 近日,由马斯克所掌舵的特斯拉,在2024年世界人工智能大会上正式推出了第二代Optimus(擎天柱)人形机器人,距离第一代面世,仅过去9个月。 加速升级…

Java 操作 Redis客户端

目录 1.渐进式遍历 2.Java 操作 Redis 客户端 2.1 引入依赖 2.2 配置端口转发 2.3 连接Redis Server 3.基础操作 3.1 set 和 get 3.2 exists 和 del 3.3 keys 3.4 expire 和 ttl 3.5 type 4.字符串操作 4.1 mget 和 mset 4.2 append 4.3 getrange 和 setrange 4.4 incr 和 d…

第5章-组合序列类型

#全部是重点知识,必须会。 了解序列和索引|的相关概念 掌握序列的相关操作 掌握列表的相关操作 掌握元组的相关操作 掌握字典的相关操作 掌握集合的相关操作1,序列和索引 1,序列是一个用于存储多个值的连续空间,每一个值都对应一…

美容师有什么话术技巧?美业人如何提升自己的销售技巧?博弈美业门店管理系统分享经验

作为一名美容师,有一些话术和销售技巧可以帮助你提升服务质量和销售业绩。以下是博弈美业收银系统分享的一些建议: 1.建立信任: 在与客户交流时,表现出真诚、友好和专业的态度。倾听客户的需求,并给予针对性的建议&a…

降Compose十八掌之『见龙在田』| Modifier

公众号「稀有猿诉」 原文链接 降Compose十八掌之『见龙在田』| Modifier 通过前面的文章我们学会了如何使用元素来构建和填充我们的UI页面,但这只完成了一半,元素还需要装饰,以及进行动画和事件响应,这才能生成完整的UI。这…

洛谷 数学进制 7.9

P1100 高低位交换 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码一 #include<bits/stdc.h> using namespace std; typedef long long ll; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)const ll N1e510; char a[N];int main() {IOS;ll a;int b[32]…

关于Qt模型插入最后一行数据中存在未填满的项,点击导致崩溃的解决办法

在使用Qt模型视图框架的时候&#xff0c;你可能会遇见这种情况&#xff1a;给QTableView设置设置模型的时候&#xff0c;网模型里面插入数据&#xff0c;因为数据是一行一行插入的&#xff0c;即要使用model的appandRow函数&#xff0c;但有时候最后一行数据没有填满一行&#…

Java面试八股之MySQL索引B+树、全文索引、哈希索引

MySQL索引B树、全文索引、哈希索引 注意&#xff1a;B树中B不是代表二叉树&#xff08;binary&#xff09;&#xff0c;而是代表平衡&#xff08;balance&#xff09;&#xff0c;因为B树是从最早的平衡二叉树演化而来&#xff0c;但是B树不是一个二叉树。 B树的高度一般在2~…

新火种AI|OpenAI的CEO又有新动作?这次他成立了AI健康公司

作者&#xff1a;一号 编辑&#xff1a;美美 AI技术即将改变医疗健康市场。 就在前两天&#xff0c;人工智能和医疗健康领域迎来了一个重要时刻。OpenAI的CEO萨姆阿尔特曼&#xff08;Sam Altman&#xff09;与Thrive Global的CEO阿里安娜赫芬顿&#xff08;Arianna Huffing…

业务咨询方案 + IT落地方案建议设计

近期&#xff0c;在深入探索咨询方案的实施与落地路径时&#xff0c;体会到了一系列心得与启示&#xff0c;旨在为未来的项目实践提供可借鉴的蓝本。 咨询方案的精髓&#xff0c;在于“业务引领&#xff0c;IT支撑”的核心理念。所以方案的前提是在于业务的梳理&#xff1b; …

已解决 javax.xml.transform.TransformerFactoryConfigurationError 异常的正确解决方法,亲测有效!!!

已解决 javax.xml.transform.TransformerFactoryConfigurationError 异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 一、问题分析 二、报错原因 三、解决思路 四、解决方法 五、总结 博主v&#xff1a;XiaoMing_Java 博主v&#x…

淮北在选择SCADA系统时,哪些因素会影响其稳定性?

关键字:LP-SCADA系统, 传感器可视化, 设备可视化, 独立SPC系统, 智能仪表系统,SPC可视化,独立SPC系统 在选择SCADA系统时&#xff0c;稳定性是一个关键因素&#xff0c;因为它直接影响到生产过程的连续性和安全性。以下是一些影响SCADA系统稳定性的因素&#xff1a; 硬件质量…

百度文心4.0 Turbo开放,领跑国内AI大模型赛道!

百度文心4.0 Turbo开放&#xff0c;领跑国内AI大模型赛道&#xff01; 前言 文心一言大模型 就在7月5日&#xff0c;在2024世界人工智能大会 (WAIC) 上&#xff0c;百度副总裁谢广军宣布文心大模型4.0 Turbo正式向企业客户全面开放&#xff01;这一举动直接引发了业界的关注。那…

【C++知识点总结全系列 (08)】:面向对象编程OOP

这里写目录标题 1、OOP概述(1)面向对象四大特征A.抽象B.封装C.继承D.多态 (2)构造函数A.What&#xff08;什么是构造函数&#xff09;B.Why&#xff08;构造函数的作用&#xff09;C. Which&#xff08;有哪些构造函数&#xff09; (3)析构函数A.What&#xff08;什么是析构函数…