【Matlab】方差是偏离均值的程度,那偏离中位数的程度怎么算呢?

在这里插入DAS描述

1.Introduction

最近做建模遇到一个问题,平常求一组数据的离散程度,可以用方差(相对均值)来表示,计算方法如下图所示。那么如果想计算偏离中位数的程度,这个“中差”怎么算呢?
在这里插入图片描述

2.Materials and methods

本研究以3×3的顺序数组A为例,首先利用 Matlab 官方函数计算其方差,如下所示。

A = [1 2 3;4 5 6;7 8 9]
var(A(:))

在这里插入图片描述
注:A(:)为读取数组里的所有元素,即二维数组转一维

因为 var 函数已经封装好了,所以我们自己实现一遍计算方差,试图复现并修改,代码如下。

A = [1 2 3;4 5 6;7 8 9];
rowNum = size(A,1);
colNum = size(A,2);

variancSum = 0;

for i = 1:rowNum
    for j = 1:colNum
        varianc = ( A(i,j) - mean(A(:)) )^2;		   	% 减均值
        variancSum = variancSum + varianc;                      
    end
end
        
varianceOut= variancSum /( (rowNum*colNum)-1 );   

上述代码复现了方差计算,下面将其改成“中差”,即改第9行。

A = [1 2 3;4 5 6;7 8 9];
rowNum = size(A,1);
colNum = size(A,2);

variancSum = 0;

for i = 1:rowNum
    for j = 1:colNum
        varianc = ( A(i,j) - prctile(A(:),50) )^2;		 % 减中值
        variancSum = variancSum + varianc;                      
    end
end
        
varianceOut= variancSum /( (rowNum*colNum)-1 );   

本文使用 prctile(A,p) 来计算中值,相比 median(A) 而言,当 p=50 时,两者等同,而 p 在[1,100]中可任意取值,有利于后期改成四分位数等特定值。

3. Results and discussion

当矩阵中值等于均值时,中差等于方差,当两者不相等时,结果便会产生差异,下面以3×3的随机矩阵为例。
在这里插入图片描述
可以看到均值为0.11,中值为1,计算矩阵偏离两者程度,结果如下:
方差 = 2
中差 = 1.11

4. Conclusion

本文提出一种计算“中差”的方法,代表实现矩阵偏离中值的程度,同时也可以推广到针对四分位数等的偏离程度。而“中差”等指标的实际意义还有待实践和证明。

猜你喜欢:👇🏻
【Matlab】一种超简单的二维矩阵降维方法
【Matlab】矩阵中选取任意子矩阵
【Matlab】山地建模?立体热度?怎么绘制三维曲面图?

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值