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

协方差

协方差(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.rhkb.cn/news/82218.html

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

相关文章

【JAVA】七大排序算法(图解)

稳定性: 待排序的序列中若存在值相同的元素,经过排序之后,相等元素的先后顺序不发生改变,称为排序的稳定性。 思维导图: (排序名称后面蓝色字体为时间复杂度和稳定性) 1.直接插入排序 核心思…

【Vue3】Teleport 传送组件

Teleport 组件是 Vue.js 3 中引入的特性之一&#xff0c;它允许将组件的内容传送&#xff08;teleport&#xff09;到当前组件之外的目标位置&#xff0c;这在处理复杂的布局、模态框等方案时非常有用。 A.vue <template><div class"dialog"><heade…

Android Studio新版本logcat过滤说明

按包名过滤 //输入package:&#xff08;输入一个p就会有提示的&#xff09; &#xff0c;后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考&#…

用了回不去的卷王机械键盘,看这些就够了

前几天出了一期不同价位鼠标推荐&#xff1a;外设圈彻底开卷&#xff0c;2023 下半年无脑入鼠标推荐表来了&#xff01; 结果不少小伙伴儿留言&#xff0c;鼠标是有了&#xff0c;还缺一把趁手好用且高性价比的机械键盘&#xff0c;并强烈要求咱再出一期。 话不多说&#xff0…

docker-compose部署milvus

部署milvus 上一篇介绍了使用kubernetes来部署milvus&#xff0c;这篇介绍下使用docker-compose来部署milvus。 下载docker-compose docker-compose的Github地址https://github.com/docker/compose/releases下载最新版的 docker-compose-linux-x86_64 在服务器上使用 wget …

vue+Highcharts绘制3D饼图

效果图 一、下载highcharts插件 npm install highcharts 二、main.js全局配置插件 import Highcharts from "highcharts/highcharts"; import highcharts3d from "highcharts/highcharts-3d"; highcharts3d(Highcharts); 三、封装highcharts.vue组件 …

多功能翻译工具——图片翻译器

这是一款多功能的翻译工具&#xff0c;简单几步即可完成图片翻译操作&#xff0c;支持多种语言的翻译&#xff0c;包括英语、法语、德语、西班牙语等&#xff0c;并支持文档翻译、pdf翻译、同声传译等形式的翻译功能。可以轻松翻译图片、pdf、execl、txt、word等格式的文档&…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis em

​ 鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内…

jmeter如何压测和存储

一、存储过程准备&#xff1a; 1、建立一个空表&#xff1a; 1 CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER ); 2、建立一个存储过程&#xff1a; 1 2 3 4 5 6 7 8 9 CREATE OR REPLACE PROCEDURE insert_test_data (n IN NUMBER) AS BEGIN --E…

代码随想录二刷博客Day3~Day4

707. 设计链表 这道题的解题思路其实就是让我们模拟一个链表的实现&#xff1a; 首先我们先要创建一个内部类作为链表的结点&#xff0c;这个内部类要包含两个元素&#xff0c;一个是val值&#xff0c;一个是指向下一个节点的指针 在构造方法这里我们要初始化一个虚拟头街点…

2023年第三届工业自动化、机器人与控制工程国际会议 | IET独立出版 | EI检索

会议简介 Brief Introduction 2023年第三届工业自动化、机器人与控制工程国际会议&#xff08;IARCE 2023&#xff09; 会议时间&#xff1a;2023年10月27 -30日 召开地点&#xff1a;中国成都 大会官网&#xff1a;www.iarce.org 2023年第三届工业自动化、机器人与控制工程国际…

java泛型和通配符的使用

泛型机制 本质是参数化类型(与方法的形式参数比较&#xff0c;方法是参数化对象)。 优势:将类型检查由运行期提前到编译期。减少了很多错误。 泛型是jdk5.0的新特性。 集合中使用泛型 总结&#xff1a; ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构② 在实例化集合类时…

2023河南萌新联赛第(五)场:郑州轻工业大学--买爱心气球

题目链接&#xff1a;A-买爱心气球_2023河南萌新联赛第&#xff08;五&#xff09;场&#xff1a;郑州轻工业大学 (nowcoder.com) 题目描述 Alice 和 Bob 是一对竞技编程选手&#xff0c;他们路过了一家气球店&#xff0c;发现有 m 个大爱心气球和 n 个小爱心气球。他们决定玩…

SSM个人博客项目

文章目录 SSM个人博客系统实现项目介绍 一、准备工作0. 创建项目添加对应依赖1. 数据库设计2. 定时实体类 二、功能实现1.统一功能处理统一返回格式统一异常处理定义登录拦截器 2. 注册登录实现生成获取验证码密码加盐实现注册功能登录功能注销功能 3.登录用户博客列表获取登录…

clickhouse断电重启故障解决方案

业务场景 公司的一个日志系统用到了clickhouse。一线运维反映说有个生产环境因为异常断电造成服务器重启。在执行日志系统的启动脚本时&#xff0c;一直报clickhouse启动不起来&#xff0c;日志系统无法使用。 问题排查 通过阅读启动脚本代码&#xff0c;以及启动日志系统&a…

Android 项目导入高德SDK初次上手

文章目录 一、前置知识&#xff1a;二、学习目标三、学习资料四、操作过程1、创建空项目2、高德 SDK 环境接入2.1 获取高德 key2.2下载 SDK 并导入2.2.1、下载SDK 文件2.2.2、SDK 导入项目2.2.3、清单文件配置2.2.4、隐私权限 3、显示地图 一、前置知识&#xff1a; 1、Java 基…

关于在c++中使用数组名作为函数参数,或者使用数组名的地址作为函数参数问题的一些研究

前言 使用数组名作为函数参数&#xff0c;或者使用数组名的地址作为函数参数&#xff0c;常常出现于对于字符串的读入问题之中。 常有以下两种写法&#xff1a; 这是使用数组名作为函数参数 #include<cstdio> char s[100]; int main() {scanf("%s",s); }在…

【如何构建自己的基于Arduino的Scara 机器人】

【如何构建自己的基于Arduino的Scara 机器人】 1. 概述2. Scara机器人3D模型3. 3D打印机器人零件4. 组装机器人5. SCARA机器人电路图6. 完成装配7. SCARA机器人的工作原理8. 对 SCARA 机器人进行编程 – Arduino 和处理代码9. 总结在本教程中,我们将学习如何构建基于 Arduino …

导出LLaMA ChatGlm2等LLM模型为onnx

通过onnx模型可以在支持onnx推理的推理引擎上进行推理&#xff0c;从而可以将LLM部署在更加广泛的平台上面。此外还可以具有避免pytorch依赖&#xff0c;获得更好的性能等优势。 这篇博客&#xff08;大模型LLaMa及周边项目&#xff08;二&#xff09; - 知乎&#xff09;进行…

leetcode 399-除法求值

法一&#xff1a;并查集 分析示例1&#xff1a; a / b 2.0 a/ b 2.0 a/b2.0&#xff0c;说明 a 2 b a2b a2b&#xff0c; a a a和 b b b在同一个集合中 b / c 3.0 b/c3.0 b/c3.0&#xff0c;说明 b 3 c b3c b3c&#xff0c; b b b和 c c c在同一个集合中 求 a / c a/…