欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Matlab】方差是偏离均值的程度,那偏离中位数的程度怎么算呢? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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:rowNumfor j = 1:colNumvarianc = ( A(i,j) - mean(A(:)) )^2; % 减均值variancSum = variancSum + varianc; end endvarianceOut= 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:rowNumfor j = 1:colNumvarianc = ( A(i,j) - prctile(A(:),50) )^2; % 减中值variancSum = variancSum + varianc; end endvarianceOut= 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】山地建模?立体热度?怎么绘制三维曲面图?

总结

以上是生活随笔为你收集整理的【Matlab】方差是偏离均值的程度,那偏离中位数的程度怎么算呢?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。