matlab计算斜方差_协方差与Matlab的实现
(参考文章)
标准差和方差一般是用来描述一维数据的
所谓的维数,拿EEG信号来说,每个通道就是一个维度,而同一个通道的每个一数字是样本。
协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:
来度量各个维度偏离其均值的程度,标准差可以这么来定义:
从协方差的定义上我们也可以看出一些显而易见的性质,如:
协方差多了就是协方差矩阵
这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有
三个维度,则协方差矩阵为
其中cov(x,y)就是一个数,
对应x,y渠道平均值后,求内积再求平均值,就是x,y之间的协方差
可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。
Matlab协方差实战
协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。
这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数 。
首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。
1MySample = 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 ) % 得到 74.5333
sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到 -10.0889
sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到 -106.4000
搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:
std(dim1)^2 % 得到 108.3222 std()是求标准差的函数
std(dim2)^2 % 得到 260.6222
std(dim3)^2 % 得到 94.1778
这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:
cov(MySample)
=
简化算法:
由于分别为m 与n 个标量元素的列向量随机变量X 与Y,二者对应的期望值分别为μ与ν,这两个变量之间的协方差定义为m×n
矩阵
也就是说,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新得到的样本矩阵乘上它的转置,然后除以(N-1)即可。即为上式。N 表示的是每一维度的样本数。
例子:
X’=[1 2 3 ] %均值是2
Y’=[4 5 6] %均值是5
则会得到 x-2=[-1 0 1]’ ; y-5=[-1 0 1]’
进行转置相乘后 求均值
则得到 ((x-2)’*(y-5))/2=[1 1;1 1] 同结果是一样的
再举个例子:
a=fix(rand(10,3)*50)
a =
37 42 17
12 12 41
25 40 29
34 12 27
44 46 45
47 17 14
27 9 37
6 12 37
7 30 19
12 23 28
x=a-repmat(mean(a),10,1)%这里mean(a)得到的是列平均值,repmat(mean(a),10,1)是产生一个10行一列的矩阵。在这里的一列是指mean(a)整体
x =
11.9000 17.7000 -12.4000
-13.1000 -12.3000 11.6000
-0.1000 15.7000 -0.4000
8.9000 -12.3000 -2.4000
18.9000 21.7000 15.6000
21.9000 -7.3000 -15.4000
1.9000 -15.3000 7.6000
-19.1000 -12.3000 7.6000
-18.1000 5.7000 -10.4000
-13.1000 -1.3000 -1.4000
(x’*x)./ (size(x,1)-1) =
232.9889 70.0778 -31.9333
70.0778 200.6778 -17.2444
-31.9333 -17.2444 111.1556
matlab计算斜方差_协方差与Matlab的实现相关推荐
- matlab计算斜方差_协方差与协方差矩阵(附Matlab实现)
今天天气很棒呀,所以也要是活力满满的一天鸭!今天回顾了之前看到的协方差和协方差矩阵,发现真的缺漏了很多,所以做如下记录. 协方差 学过概率统计的应该都知道协方差的定义,接下来就简单说明一下. 协方差表 ...
- matlab计算斜方差_利用matlab进行协方差运算
本文全部参考自: http://www.cnblogs.com/welen/articles/5535042.html#undefined 知识点一: MATLAB中四个取整函数具体使用方法如下: M ...
- matlab计算斜方差_计算一幅图像的信噪比
本文摘自本人的毕业设计<数字图像滤波算法研究>2019, Chang'an University, Xi'an, China. 本文适用于原始图像(即不含噪声的图像)存在的情况下. 使用待 ...
- matlab计算斜方差_Matlab求方差,均值,均方差,协方差的函数
1.均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均值是一个向量组.mean(X,1)为列向量的均值,me ...
- MATLAB中fix啥意思,matlab fix函数用法_常见问题解析,matlab
matlab syms什么意思_常见问题解析 matlab中syms的意思是定义多个变量,可以用来创建符号变量x和y,语法是"syms x y":也可以创建一些符号变量.函数和数组 ...
- 求均值方差_协方差,方差,标准差
要深度理解定义!!!要深度理解定义!!!要深度理解定义!!! 协方差,如下定义: 方差如下定义: 标准差就是sqrt(方差) 之前总是有个混淆的点. 故在这里mark一下.(要理解好定义的想表达的深层 ...
- 用matlab计算卫星的瞬时位置,用MATLAB计算GPS卫星位置.PDF
用MATLAB计算GPS卫星位置 高 新 技 术 用MATLAB计算GPS卫星位置 罗利娟 杨乐 (西安翻译学院 陕西西安 710061) 摘 要:本文主要介绍了GPs测量数据的常用格式RINEX标准 ...
- matlab最优控制实验报告_最优控制的MATLAB实现.doc
最优控制的MATLAB实现 最优控制的MATLAB实现 摘要 线性二次型最优控制是一种普遍采用的最优控制系统设计方法.使用MATLAB软件设计的GUI控制界面实现最优控制,有较好的人机交互界面,便于使 ...
- matlab app设计步骤_如何从MATLAB/Simulink入手,系统地学习自动驾驶?
自动驾驶相关的软件工具有不少,作为汽车工程师,我们最熟悉的可能是MATLAB/Simulink.如何从MATLAB/Simulink入手,系统地学习自动驾驶? 本文来源:自动驾驶仿真 自动驾驶相关的软 ...
最新文章
- 南京微盟计算机,南京微盟 ME6118A50B3G ME6119A33PG ME6119A50PG 稳压IC
- 浅谈JavaScript错误
- hashcode的理解
- gwt-2.8.2下载_GWT 2 Spring 3 JPA 2 Hibernate 3.5教程– Eclipse和Maven 2展示
- java 电梯算法_编程之美之小飞的电梯调度算法(多种解法)---Java语言
- vue 功能模块后台可配置_Github14k的Springboot后台管理系统
- 简单搜索 poj1321
- 在SpringBoot中优雅的实现定时任务
- View相关知识学习总结
- JAVE 视音频转码
- python实现外挂自动学习网络课程实例
- 中国普通魔方行业市场供需与战略研究报告
- 智慧消防之物联网消防的意义
- android高仿微信拍摄,Android 仿微信视频拍摄 支持触摸拍摄 长按拍摄
- 海龟交易法则(中译文)
- RabbitMQ基础学习
- 图形验证码和短信验证码
- Conflux 网络已获 Cobo 钱包支持
- 022kuo_zhan_guan_li_qi
- 浅谈软件供应链安全治理与DevSecOps落地实践