MATLAB函数var、std浅析

在衡量一组数据的离散程度的时候通常计算这组数据的方差(Variance)或者标准差(Standard Deviation)

当分析数据为总体(Population)和样本(Sample)时方差和标准差的计算方式又有不同,简单可以记忆为样本数据(Sample Data)求方差除以n-1 ,总体数据(The Population )求方差除以n ,公式如下:

The Population:

Variance:

σ2=(xiμ)2N

Stand Deviation:
σ=σ2

A Sample

Variance:

s2=(xiμ)2N1

Stand Deviation:
s=s2

下面给出MATLAB的var()std() 函数的运算结果

test=[4 5 6 3 5 7 2]; %随机给出一组数据
m=mean(test)
var1=sum((test(1,:)-m).^2)/length(test) %用总体数据公式定义的方法求方差
var2=sum((test(1,:)-m).^2)/(length(test)-1) %求样本数据的方差
var3=var(test) %用var函数计算

得到如下结果:
m =
   4.571428571428571
var1 =
   2.530612244897959
var2 =
   2.952380952380953
var3 =
   2.952380952380953

由结果知var()函数是以求样本方差的公式计算的,那么怎么求总体方差呢?通过查看帮助文档可以发现var(data,1) 即后面加个参数1就可以求总体方差了,函数var()默认的参数是0,也就是求样本方差

var4=var(test,1)

结果如下:
var4 =
   2.530612244897959

同理,对于std()求标准差的也是通过修改参数实现不同的算法

std1=std(test,0)  %默认参数就是0来的
std2=sqrt(var(test,0))

std3=std(test,1)  %选择参数为1
std4=sqrt(var(test,1))

结果如下:
std1 =
   1.718249385968449
std2 =
   1.718249385968449
std3 =
   1.590789817951435
std4 =
   1.590789817951435

你可能感兴趣的:(matlab)