![]() |
为什么MATLAB本机函数cov(协方差矩阵计算)使用与我预期不同的除数?
假设有M个维度和N个样本的数据矩阵数据,
data = randn(N, M); 我可以用以下公式计算协方差矩阵 data_mu = data - ones(N, 1)*mean(data); cov_matrix = (data_mu'*data_mu)./N 如果我使用本机MATLAB函数 cov_matrix2 = cov(data) 这将始终等于 cov_matrix = (data_mu'*data_mu)./(N-1) 也就是说,分母是(N-1)少一。 为什么??你能复制吗?这是一个错误吗? 我使用MATLAB版本7.6.0.324(2008)。 [B]回答:[/B] [INDENT]也就是说,分母是(N-1)少一。为什么??你能复制吗?这是一个错误吗? [/INDENT]请参阅[URL="http://www.mathworks.com/access/helpdesk/help/techdoc/ref/cov.html"]cov文档[/URL] 。它与[URL="http://en.wikipedia.org/wiki/Variance#Population_variance_and_sample_variance"]总体方差与样本方差有关[/URL] 。 还要注意,如果您希望使用分母N而不是N-1,则可以在调用中添加尾随1参数,即根据文档所述, cov(x,y,1)或cov(x,1) 。 [url=https://stackoverflow.com/questions/3256798]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 01:02。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.