【数学】协方差介绍、相关系数介绍,Python代码

news2024/9/27 15:32:31

协方差

协方差(Covariance)是统计学中用来衡量两个随机变量之间关系的一种度量。它反映了这两个变量的变化趋势是否一致,即当一个变量偏离其均值时,另一个变量是否也倾向于偏离其均值。协方差可以帮助我们了解变量之间的线性关系以及它们的相互变化情况。

具体而言,对于两个随机变量 X 和 Y,它们的协方差记作 Cov(X, Y),计算公式如下:

Cov(X, Y) = Σ [(Xᵢ - μₓ) * (Yᵢ - μᵧ)] / (n - 1)

其中:

  • Xᵢ 和 Yᵢ 分别表示两个变量在第 i 个观测点的取值。
  • μₓ 和 μᵧ 分别表示 X 和 Y 的均值。
  • n 表示观测点的数量。

协方差的值有以下几种情况:

  • 若协方差为正值,说明两个变量倾向于一起增加或减少,表现出正相关关系。
  • 若协方差为负值,说明一个变量增加时另一个变量倾向于减少,表现出负相关关系。
  • 若协方差接近于零,说明两个变量之间关系较弱,可能不存在明显的线性关系。

然而,协方差的数值大小受到变量单位的影响,不易直接比较不同数据集之间的关系。因此,人们通常使用标准化后的协方差,即相关系数(Correlation Coefficient),来更好地度量变量之间的关联程度。相关系数范围在 -1 到 1 之间,能够消除单位的影响,更直观地反映变量之间的线性关系程度。

相关系数

相关系数(Correlation Coefficient)是用来衡量两个随机变量之间线性关系强度的统计指标。它反映了两个变量的变化趋势是否在某种程度上是一致的,即当一个变量发生变化时,另一个变量是否倾向于以一定的方式随之变化。相关系数的取值范围在 -1 到 1 之间,不受变量单位的影响,能够更清晰地描述变量之间的关系。

常见的相关系数有皮尔逊相关系数(Pearson Correlation Coefficient)和斯皮尔曼等级相关系数(Spearman Rank Correlation Coefficient)等。

  1. 皮尔逊相关系数:
    皮尔逊相关系数衡量的是两个变量之间的线性关系程度。它的计算公式如下:

ρ(X, Y) = Cov(X, Y) / (σₓ * σᵧ)

其中:

  • Cov(X, Y) 是变量 X 和 Y 的协方差。
  • σₓ 和 σᵧ 分别是变量 X 和 Y 的标准差。

皮尔逊相关系数的取值范围在 -1 到 1 之间:

  • 当相关系数接近 1 时,表明两个变量呈现强正相关关系,即一个变量增加时另一个变量也倾向于增加。
  • 当相关系数接近 -1 时,表明两个变量呈现强负相关关系,即一个变量增加时另一个变量倾向于减少。
  • 当相关系数接近 0 时,表明两个变量之间关系较弱,可能没有线性关系。
  1. 斯皮尔曼等级相关系数:
    斯皮尔曼等级相关系数适用于在数据集中存在非线性关系或异常值时。它首先将变量的观测值转化为等级,然后计算等级之间的皮尔逊相关系数。这种方法对于不满足正态分布假设的数据集更具鲁棒性。

总之,相关系数可以帮助我们判断两个变量之间的关系强度和方向,从而更好地理解数据的特性和变化趋势。

Python

下面是Python代码:

import numpy as np
import matplotlib.pyplot as plt

# 示例数据:学习时间(小时)和考试成绩
study_time = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
exam_scores = np.array([60, 65, 70, 75, 80, 85, 88, 92, 95, 98])

# 计算皮尔逊相关系数
correlation_coefficient = np.corrcoef(study_time, exam_scores)[0, 1]
# 计算斯皮尔曼等级相关系数
spearman_corr = np.corrcoef(study_time, exam_scores)[0, 1]

# 计算协方差
covariance = np.cov(study_time, exam_scores)[0, 1]

print(f"Covariance between X and Y: {covariance:.2f}")

# 绘制散点图
plt.scatter(study_time, exam_scores, color='blue', label='Data Points')
plt.title(
    f"Pearson Correlation Coefficient: {correlation_coefficient:.2f}\n"
    f"Spearman Rank Correlation Coefficient: {spearman_corr:.2f}\n"
    f"Covariance: {covariance:.2f}")
plt.xlabel('Study Time (hours)')
plt.ylabel('Exam Scores')
plt.legend()
plt.grid(True)
plt.show()


可见:

在这里插入图片描述

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

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

相关文章

❤ TypeError: Assignment to constant variable-Vue3 项目使用

❤ TypeError: Assignment to constant variable 背景: Vue3 项目使用 TypeError: Assignment to constant variable. 原因: 因为我对const定义的常量重新赋值了 解决方法: 换成 var 声明

Flink源码之JobManager启动流程

从启动命令flink-daemon.sh中可以看出StandaloneSession入口类为org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint, 从该类的main方法会进入ClusterEntrypoint::runCluster中, 该方法中会创建出主要服务和组件。 StandaloneSessionClusterEntrypoint:…

内存新一轮暴跌,即将大量流行“官方翻新”

如果说最近一年你有在关注 PC 硬件价格,内存、SSD 想必是值得感慨的。 一次次的好价抄底,似乎永没有尽头。 SSD 降价归功于国产长江存储闪存颗粒大量出货,但内存的猛降能理解但又不完全能理解。 DDR4 到 DDR5 换代没错,但更早知…

COS控制台体验升级 - 文件列表支持网格布局

前言 对象存储(Cloud Object Storage,COS)控制台文件列表页以表格的形式列出存储桶下的所有文件,为了提高用户在COS控制台文件列表页的操作体验,我们对其进行了改版,现在文件列表页支持网格视图&#xff0…

攻防世界-web-shrine

1. 题目描述 打开链接,发现是一串源码: 从源码中不难发现关键词是flask.render_template_string(safe_jinja(shrine)) ,这个函数说明了题目的关键点在于模板渲染,即存在模板注入 2. 思路分析 从代码中不难发现,即使…

什么是思维导图?怎么制作思维导图?看这篇就够了!

在当下快节奏的社会中,无论是学习、工作还是生活,我们都需要处理大量的信息和任务。对于这些复杂的信息和任务,如何有效地理解、记忆和管理,成为了我们面临的一个重要挑战。对于诸如此类场景,使用思维导图就能很好地辅…

python-docx常用方法总结

由于最近有任务需要自动生成word报告,因此学习了一些python-docx的使用方法,在此总结。 目前网上相关的资料不算太多,且大多数都很简单。有一些稍微复杂的需求往往找不到答案,很多想要的方法这个库似乎并没有直接提供。在git上看…

面部表情识别(Pytorch):人脸检测模型+面部表情识别分类模型

目录 0 相关资料1 基于人脸检测面部表情分类识别方法2 项目安装2.1 平台与镜像2.2 项目下载2.3 模型下载2.4 上传待测试图片2.5 项目安装 3 demo测试 0 相关资料 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码):https://blog.csdn.net…

链表oj (环形链表oj)

文章目录 1.数组oj 2.链表oj 文章内容 1.数组oj 1. 原地移除数组中所有的元素值为val&#xff0c;要求时间复杂度为O(N)&#xff0c;空间复杂度为O(1)。力扣 int removeElement(int* nums, int numsSize, int val){int k numsSize;int a 0;int b 0;while(b<k){if(nu…

Centos7安装jdk8教程——rpm安装

1. rpm文件下载 下载链接 Java SE 8 Archive Downloads (JDK 8u211 and later) 2.上传到服务器指定路径下并安装 切换到上传目录&#xff0c;然后执行以下命令 rpm -ivh jdk-8u221-linux-x64.rpm3. 设置环境变量并重载配置 # 设置环境变量 vim /etc/profile# 文件末尾添加…

【网站搭建】开源社区Flarum搭建记录

环境 服务器系统&#xff1a;腾讯云 OpenCloudOS 宝塔版本&#xff1a;免费版8.0.1 Nginx&#xff1a;1.24.0 MySQL&#xff1a;5.7.42 PHP&#xff1a;8.1.21 萌狼蓝天 2023年8月7日 PHP设置 1.安装扩展&#xff1a;flieinfo、opcache、exif 2.解除禁用函数&#xff1a;putenv…

Llama 2 with langchain项目详解(一)

Llama 2 with langchain项目详解(一) 2023年2月25日,美国Meta公司发布了Llama 1开源大模型。随后,于2023年7月18日,Meta公司发布了Llama 2开源大模型,该系列包括了70亿、130亿和700亿等不同参数规模的模型。相较于Llama 1,Llama 2的训练数据增加了40%,上下文长度提升至…

直线模组在AGV物流设备起什么作用?

在物流产业高速发展的今天&#xff0c;机器人技术的应用程度已经成为决定企业间相互竞争和未来发展的重要衡量因素。智能机器人运用到物流产业&#xff0c;其效率不言而喻。AGV智能仓储作为现代物流系统的重要组成部分&#xff0c;物流自动化、智能化不光是能提升效率和安全性&…

前端懒加载

懒加载的概念 懒加载也叫做延迟加载、按需加载&#xff0c;指的是在长网页中延迟加载图片数据&#xff0c;是一种较好的网页性能优化的方式。在比较长的网页或应用中&#xff0c;如果图片很多&#xff0c;所有的图片都被加载出来&#xff0c;而用户只能看到可视窗口的那一部分…

Java GUI,mybatis实现资产管理系统

Java GUI——资产管理系统 前言&#xff1a;为了做java课设&#xff0c;学了一手Java GUI。感觉蛮有意思的&#xff0c;写写文章&#xff0c;做个视频记录一下。欢迎大家友善指出我的不足 资产管理系统录制视频&#xff0c;从头敲到尾 模块划分 资产信息管理 资产信息查询 …

【Linux取经路】进程的奥秘

文章目录 1、什么是进程&#xff1f;1.1 自己写一个进程 2、操作系统如何管理进程&#xff1f;2.1 描述进程-PCB2.2 组织进程2.3 深入理解进程 3、Linux环境下的进程3.1 task_struct3.2 task_struct内容分类3.3 组织进程3.4 查看进程属性 4、结语 1、什么是进程&#xff1f; 在…

Java GUI——网页浏览器开发

Java GUI——网页浏览器开发 前言&#xff1a;为了做java课设&#xff0c;学了一手Java GUI。感觉蛮有意思的&#xff0c;写写文章&#xff0c;做个视频记录一下。欢迎大家友善指出我的不足 网页浏览器开发录制视频&#xff0c;从头敲到尾 任务需求 界面需求 菜单栏 文件 【…

构建IT项目价值管理体系︱陆金所控股有限公司项目管理专家朱磊

陆金所控股有限公司项目管理专家朱磊先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;陆控-构建IT项目价值管理体系。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; IT资源有限&#xff0c;…

常见的几大排序问题

前言&#xff1a;排序问题&#xff0c;是数据结构中的一大重要的组成板块&#xff0c;很多的面试机试中都会多多少少的涉及到排序问题&#xff0c;之前在上数据结构的那个学期整理过排序问题&#xff0c;不过大都是囫囵吞枣&#xff0c;不求甚解&#xff0c;今天&#xff0c;我…

Altium Designer (AD) 绘制原理图及双层PCB简易教程

目录 前言 工程建立 创建工程 创建原理图文件 创建PCB文件 绘制原理图 导入元件库 ​编辑绘制原理图 设置原理图标注 ​编辑​编辑 结果图​编辑 制作PCB板 生成PCB​编辑 绘制PCB边缘 设置PCB网格间距大小 走线规则设置 修改安全间距 什么是安全间距 怎样修…