使用Matlab中的概率密度计算相关系数

时间:2014-01-02 16:26:17

标签: matlab statistics probability-density

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

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

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

1 个答案:

答案 0 :(得分:0)

您实际上是在代码的第三行创建一个多元正常随机数(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