【问题标题】:Calculate the correlation coefficient using the probability density in Matlab使用Matlab中的概率密度计算相关系数
【发布时间】:2014-01-03 01:24:22
【问题描述】:

我正在尝试使用 Matlab 计算二维正态定律的相关系数。

mu = [1 2]; 
SIGMA = [9 4; 4 3]; 
X = mvnrnd(mu,SIGMA); 
p = mvnpdf(X,mu,SIGMA);

变量p存储了向量X遵循二维正态法则的概率密度。我必须使用概率函数 p 来计算相关系数,而函数 R = corrcoef(X) 不会这样做。

【问题讨论】:

  • 不确定您要计算哪些事物之间的相关性,但corrcoef 会计算矩阵列之间的相关性。
  • 分布的相关系数是协方差的函数(此处为 SIGMA),因此您可以在不生成任何随机数的情况下计算它。也许您必须更清楚地解释您要完成的工作。

标签: matlab statistics probability-density


【解决方案1】:

您实际上是在代码的第三行创建了一个多元正态随机数 (1x2),但您需要更多。

根据文档:

R = corrcoef(X) 返回从输入矩阵 X 计算的相关系数矩阵 R,其 行是观察值 并且其列是变量

在您的情况下,您有一个观察值和两个变量,corrcoef 函数将返回 1。

所以你可以这样做:

mu = [1 -1]; 
SIGMA = [.9 .4; .4 .3]; 
X = mvnrnd(mu,SIGMA,10); % a 10 x 2 matrix
p = mvnpdf(X,mu,SIGMA);  % a 10 x 1 vector

corrcoef(X)
ans =

    1.0000    0.7846
    0.7846    1.0000

【讨论】:

  • 谢谢你的解释,我测试的时候看到相关系数是1。那么p变量没有实际用处?
猜你喜欢
  • 2017-09-20
  • 2020-04-22
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 2021-12-10
相关资源
最近更新 更多