使用MATLAB的var函数时得到的结果与基于方差公式计算时的结果不同。
我的意见是:
x = [1,1,1,2];
当我使用var函数时,我得到:
var(x)
ans =
0.2500
当我使用方差公式计算方差时,我得到:
mean((x-mean(x)).^2)
ans =
0.1875
其中方差公式由
定义有谁知道这种行为的原因是什么?
答案 0 :(得分:1)
在matlab的功能var
的说明/帮助中,它表示默认使用N-1
而不是N
对和进行规范化,这就是为什么会得到不同的结果:
x = [1,1,1,2];
mean_x=mean(x);
var1=sum((x-mean_x).^2)/length(x)
var2=sum((x-mean_x).^2)/(length(x)-1)
var1 =
0.1875
var2 =
0.2500
您可以找到here关于使用N-1
而不是N
的区别的讨论。 Var
允许您通过将第二个参数设置为0 default N-1
或1 for N
答案 1 :(得分:1)
只是添加到上面的点
V = var(A,w)指定加权方案。当w = 0(默认值)时,V为 通过观察数量1归一化。当w = 1时,它是 通过观察次数归一化。 w也可以是重量 包含非负元素的向量。在这种情况下,w的长度 必须等于var运行的维度的长度。
因此,做var(x,1)会给你正确答案