方差,协方差、标准差,与其意义

2023-11-10

  有国才有家,支持国产,生活中点滴做起,买手机就买华为,这是我们国家IT界的脊梁!!!

协方差的意义和计算公式

协方差的意义和计算公式

学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。

很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

为什么需要协方差?

上面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:

 

来度量各个维度偏离其均值的程度,标准差可以这么来定义:

 

协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

从协方差的定义上我们也可以看出一些显而易见的性质,如:

协方差多了就是协方差矩阵

上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算 n! / ((n-2)!*2) 个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

 

这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有三个维度,则协方差矩阵为

 

可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

Matlab协方差实战

上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数(蓝色部分为Matlab代码)。

首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。

mysample = fix(rand(10,3)*50)

根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

>> dim1 = mysample(:,1);
>> dim2 = mysample(:,2);
>> dim3 = mysample(:,3);

计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

>> sum((dim1 - mean(dim1)) .* (dim2 - mean(dim2))) / (size(mysample, 1) - 1)  %得到 -147.0667
>> sum((dim1 - mean(dim1)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1)  %得到  -82.2667
>> sum((dim2 - mean(dim2)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1)  %得到   76.5111

搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

>> var(dim1)  %得到 227.8778
>> var(dim2)  %得到 179.8222
>> var(dim3)  %得到 156.7111

 这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

>> cov(mysample)

 把我们计算的数据对号入座,是不是一摸一样?

Update

今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式推导而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出Matlab代码实现:

>> temp = mysample - repmat(mean(mysample), 10, 1);
>> result = temp' * temp ./ (size(mysample, 1) - 1)

总结

理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了~ 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方差,协方差、标准差,与其意义 的相关文章

  • 两个实例看Vue数据代理

    数据代理 概念 通过一个对象代理对另一个对象中属性的操作 读 写 基本原理 通过Object defineproperty方法把data对象中的所有属性添加vm上 为每一个添加到vm上的属性指定getter和 setter方法 利用它去操作
  • Mybatis同时支持多种数据库(oracle 和MySQL)

    这里说下对多种数据库的支持 不是多个数据源 这里要用到mybatis的databaseId 如下
  • task_1

    task 1 赛题数据概况 数据集 条 训练集 5w 测试集A 5w 测试集B 5w 特征列 31列 匿名特征 15列 和非匿名特征 全部数据已经脱敏 编码 预测评估指标 平均绝对误差 Mean Absolute Error MAE 评估指
  • 124. 二叉树中的最大路径和

    124 二叉树中的最大路径和 题目描述 路径 被定义为一条从树中任意节点出发 沿父节点 子节点连接 达到任意节点的序列 同一个节点在一条路径序列中 至多出现一次 该路径 至少包含一个 节点 且不一定经过根节点 路径和 是路径中各节点值的总和
  • Java两数之和

    1 两数之和 1 问题描述 给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 target 的那两个整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能
  • Microsoft Teams的 CAA20002错误

    一个用户的Teams不能用了 登录后无法正常使用 打开Teams总是提示错误为 ERROR CODE caa20002 用户登录web网页没有问题 只有使用桌面程序才会出现这个错误 重新卸载后再安装 即便删除Teams相关的文件也不好使 最
  • bash调试经验

    bash是Unix Linux操作系统最常用的shell之一 它非常灵活 和awk c 配合起来异常强大 以下使用一个测试脚本来说明使用bash调试的方法 test sh plain view plain copy print bin ba
  • 使用计算机采用十进制数,计算机内部采用的是十六进制数吗?

    计算机内部采用的不是十六进制数 而是二进制 计算机内部采用二进制进行运算和存储 在电子计算机中采用二进制表示数可以节省设备 并且由于二进位制包括三进位制在内的其他进位制所没有的优点 所以大多数电子计算机还是采用二进制 计算机内部采用的数制是
  • chatGPT在数据安全领域的应用场景分析

    随着数据在现代生活中的不断增长 数据安全问题已经成为一个重要的议题 数据安全涉及到数据的整个生命周期 包括数据采集 存储 处理 传输和销毁等各个方面 而聊天机器人技术 尤其是ChatGPT 已经被广泛应用于数据安全领域 成为解决数据安全问题
  • 什么是cherry-pick

    文章目录 前言 图示 前言 这里的cherry pick指的是git的命令 cherry pick 这个命令的作用就是把指定的commit 拉到一个新的分支上 图示 比如此时分支情况如下 这幅图中 每个圆圈代表一次commit 一条线是一个
  • 程序真的是从main开始的吗?

    程序真的是从main开始的吗 程序从main开始的吗 在执行main之前全局变量已经初始化 main函数的两个参数也被正确传了进来 堆和栈的初始化也已经完成 一些系统I O也被初始化 完成上面这些工作的函数称为入口函数 Entry Poin
  • Mysql导出word表结构

    一 代码如下 package com icip util import com alibaba fastjson JSONObject import org apache poi xwpf usermodel XWPFDocument im
  • Sqlalchemy 2.x exists 使用方法

    Sqlalchemy 2 0 exists 使用方法 在sqlalchemy 1 4 中 想要查询一个数据在不在 可以用这种方法查询 from sqlalchemy import exists it exists Session query
  • 15个未来高科技产品会让你无法想象!这些开脑洞的设计太牛了!

    导读 从衣食住行到生活的方方面面 未来必将会有天翻地覆的变化 大数据 云计算 物联网和人工智能这些年的发展 让我们对并不遥远的未来有了更多想象和期待 那些我们现阶段不可企及的所思所想 将在未来成为大部分人的日常 这么想想 是不是有点小激动呢
  • 什么是代码评审(Code Review)

    1 什么是CodeReview Code Review CR 即代码评审 又名代码走查 是一种通过复查代码来提高代码质量的过程 一般体现在一个团队的开发过程中 CR要求团队成员有意识地 系统地检查彼此的代码 从而验证需求 发现错误 同时指出
  • JS数据类型转换详解

    文章内容为所看网课笔记 如有侵权请联系删除 JS数据类型 1 基本数据类型 number string undefined null boolean symbol bigint 2 引用数据类型 对象类型 1 标准普通对象 object 2
  • BLSP

    1 基础概念 1 Bus Access Module BAM 总线访问模块 BAM is used to move data to from the peripheral buffers 2 BAM Low Speed Peripheral
  • Topaz Sharpen AI中文版

    教程 1 下载解压软件得到安装包以及 2 双击 TopazSharpenAI 2 1 1 windows x64 Full Installer exe 开始安装软件 3 用户许可协议 这里选择i accept 4 选择软件的安装目录 开始菜

随机推荐

  • 【C++后台开发面试】STL相关

    此部分较为精简 只供面试前联想记忆使用 需要先熟读相关的内容知识才能发挥其作用 推荐书籍 STL源码剖析 侯捷 六大组件及其关系 空间配置器 容器 迭代器 算法 仿函数 适配器 内存管理 内存配置和对象构造 析构分开 使用双层级配置器 第一
  • 【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell

    文件包含漏洞的利用 读取敏感文件 我们可以利用文件包含漏洞读取任意文件 读取文件的时候有利用条件 目标主机文件存在 目标文件的路径 绝对路径 相对路径 具有文件可读权限 提交参数http localhost include include
  • WinHTTP Web Proxy Auto-Discovery Service 服务处于 停止 状态

    WinHTTP Web Proxy Auto Discovery Service 服务处于 停止 状态还有 我的服务器没有使用WEB代理和防火墙客户端 但是有一天早上来发现全部电脑都无法上网 PING ISA都不通 重新启动后正常 我检查系
  • svn服务器搭建

    1 首先下载svn sudo apt get install subversion 如果不能安装先更新库再试 sudo apt get update 2 添加svn管理用户及subversion组 sudo adduser svnuser
  • 【Java】ThreadLocal详细解析

    ThreadLocal全面解析 前置知识 具有一定的javase和javaweb基础 熟悉synchronized关键字 熟悉HashMap 熟悉 JDBC技术 学习目标 了解ThreadLocal的介绍 掌握ThreadLocal的运用场
  • collapse mode 严重_被GANs虐千百遍后,我总结出来的10条训练经验

    一年前 我决定开始探索生成式对抗网络 GANs 自从我对深度学习产生兴趣以来 我就一直对它们很着迷 主要是因为深度学习能做到很多不可置信的事情 当我想到人工智能的时候 GAN是我脑海中最先出现的一个词 GANs生成的人脸 StyleGAN
  • 计算机系统的组成及编程示例

    计算机系统是由硬件和软件两部分组成的 硬件是指计算机的物理组件 如中央处理器 CPU 内存 硬盘 输入输出设备等 而软件则是指运行在计算机上的程序和数据 在计算机系统中 编程是一项重要的活动 它通过编写代码来实现特定的功能 编程语言是用来编
  • Mask_RCNN 配置并训练自己的数据集

    文章目录 1 配置Mask RCNN 并运行demo 1 1环境 1 2下载github 1 3安装依赖库 1 4安装Mask RCNN 1 5下载coco已训练好模型 1 6安装 pycocotools 1 7使用 Jupyter 运行
  • https://oshwhub.com/explore?page=6

    开源广场 嘉立创EDA开源硬件平台 硬件工程师的电路家园 oshwhub com
  • eclipse导入项目会有红叉叉

    eclipse导入项目会有红叉叉 我这边以导入的是SpringMVC项目为例 下面有很多图片 eclipse导入项目后 jsp页面都是红叉叉 注意 有一些情况有红叉叉的情况 是因为字符集 要把eclipse默认字符集设为UTF 8 第一步
  • 网络安全攻防对抗之白加黑技术

    目录 一 什么是白加黑技术 二 怎么防范白加黑技术 一 什么是白加黑技术 白加黑 手法是一种利用DLL劫持技术的攻击方式 它通过在应用程序的导出目录中创建一个DLL文件 并通过LoadLibrary函数 或者找一个已有的DLL注入恶意代码
  • 多元时间序列

    多元时间序列 BiLSTM双向长短期记忆神经网络多变量时间序列预测 Matlab完整程序 目录 多元时间序列 BiLSTM双向长短期记忆神经网络多变量时间序列预测 Matlab完整程序 预测结果 评价指标 基本介绍 程序设计 参考资料 预测
  • [YAPI]导出API文档

    1 进入某个分组主页 切换到 项目列表 菜单下 点击进入其中一个项目 2 切换到 数据管理 菜单下 执行导出功能
  • 肾模?你还不会sqlalchemy!【SQLite】

    Part1什么是 sqlalchemy sqlalchemy 是 Python 的一个优秀的开源 ORM 框架 为开发者提供了方便快捷的 API 能够提高开发效率 让开发者专心于业务代码开发 而非浪费时间在数据库的维护上 今天我们就来一起了
  • 基于java的医院住院管理系统

    为了更好的满足医护人员用户的需求 本医院住院管理系统包括如下功能模块 出入院管理 病人管理 病房管理 系统用户管理模块 每个模块都有其独自的功能 以达到更好的服务于用户 系统采用BS结构 用当前最流行的java技术开发 系统架构采用MVC模
  • vue2+elementui表单手机号码、邮箱、经纬度、百分比验证

    1 手机号码验证 验证方式写在一个公共js文件中 在对应组件中引入即可 方法一 需传参 n为是否必填参数 export const isPhone n gt return required n message 不能为空 trigger bl
  • 封装、继承、多态

    目录 访问限定符 封装 继承 super关键字 super和this的比较 继承在内存中的情况 重写override 重写和重载的比较 多态 JAVA中的动态绑定机制 JAVA面向对象程序三大特性 封装 继承 多态 在类和对象阶段 主要研究
  • iTerm2配置(rz/sz命令)

    1 安装iTerm2 到iTerm2官网下载安装 2 安装HomeBrew 参考博客 https brew idayer com guide start 作者写的非常细 但我照着执行下来有2个注意事项 1 别急忙执行安装命令 先得去镜像助手
  • UNC博士计算机申请,科学网-申请美国博士研究生的自我陈述(Personal Statement)该怎么写?-周耀旗的博文...

    申请美国大学的博士研究生除了考试成绩 简历之外 常常还要写一篇长短要求不一的 自我陈述 Personal Statement 或者 目的陈述 Statement of purpose 我在美国大学做老师的时候 曾经多次参与招生委员会的工作
  • 方差,协方差、标准差,与其意义

    有国才有家 支持国产 生活中点滴做起 买手机就买华为 这是我们国家IT界的脊梁 协方差的意义和计算公式 协方差的意义和计算公式 学过概率统计的孩子都知道 统计里最基本的概念就是样本的均值 方差 或者再加个标准差 首先我们给你一个含有n个样本