Why is the result matrix “rho” of function corr (A, B) not a symmetric matrix?
4 views (last 30 days)
Show older comments
When I was browsing the ‘corr’ function examples provided on the official website, I found that the matrix rho in the result of corr (A, B) is not a symmetric matrix. This contradicts the mathematical knowledge I have learned, and I cannot understand why. Can someone help me? I would greatly appreciate it. The link is Linear or rank correlation - MATLAB corr (mathworks.com)
1 Comment
Stephen23
on 4 Dec 2023
Note that the provided formulas show that CORR calculates the mean of each column:
Accepted Answer
Bruno Luong
on 4 Dec 2023
As the doc describe, for example
- rho(2,1) is the correlation between X(:,2) and Y(:,1)
- rho(1,2) is the correlation between X(:,1) and Y(:,2)
There is no reason why rho(2,1) must be equal to rho(1,2), as they involve two DIFFERENT pairs.
More Answers (1)
Torsten
on 4 Dec 2023
Moved: Torsten
on 4 Dec 2023
corr(X,X) is symmetric, but why should corr(X,Y) be symmetric ? Element (i,j) is the correlation of column i of X and column j of Y, while element (j,i) is the correlation of column j of X and column i of Y.
1 Comment
Steven Lord
on 4 Dec 2023
Instead of corr(X, X) you should probably just call corr(X). As stated on the documentation page for the corr function, "If you input only a matrix X, rho is a symmetric k-by-k matrix, where k is the number of columns in X. The entry rho(a,b) is the pairwise linear correlation coefficient between column a and column b in X."
The corresponding sentence for the two-input case does not include the word "symmetric".
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!