我想用MATLAB做一些非常简单的事情。我想要计算总体标准差(也就是说,我想要分母n,而不是n-1,如回顾的这里)。
MATLAB的默认情况是计算样本标准差。如本例所示:
example = [0.555158185377949 0.572544871140911 0.566844451709150 0.585793022458150 0.577877363402946 0.564285735627449 0.582162844985863 0.576409646607226 0.583718583332482 0.577417064869028]
std(example)
ans =
0.0096
对于MuPad,加入“人口”似乎应该给出总体标准差。在MATLAB中,添加'Population'
确实给出了与普通std()
不同的结果。
test1=std(example,'Population')
test1 =
0.0087
但这一结果似乎与人口差异的平方根不同:
sqrt(var(example,1))
ans =
0.0091
请注意,“样本”标准偏差确实等于“样本”方差的平方根,正如您所预期的:
sqrt(var(example))
ans =
0.0096
std(example)
ans =
0.0096
所以问题就在于人口标准差。我是不是遗漏了什么?是否有MATLAB命令给出总体标准差(而不是样本标准差)?还是我总是需要取人口方差的平方根来计算总体标准差?
发布于 2015-10-28 17:45:14
“标志”确定您是使用样本标准差(以n表示)还是使用总体标准差(以n-1表示)。
std(example,1)
ans =
0.0091
它与sqrt(var(例如,1))相同。
https://stackoverflow.com/questions/33399073
复制相似问题