两个矩阵之间的Matlab相关性

dyn*_*mic 7 matlab matrix correlation

基本上我有两个矩阵,如下所示:

  > Matrix A (100 rows x 2 features)

  Height - Weight
  1.48      75
  1.55      65
  1.60      70
  etc...
Run Code Online (Sandbox Code Playgroud)

和矩阵B(矩阵A的相同维度,但当然具有不同的值)

我想了解Matrix A和Matrix B之间是否存在某种相关性,您建议我使用哪种策略?

Col*_*ers 9

您正在寻找的概念称为规范相关.它是多变量分析领域中发展良好的理论.本质上,我们的想法是找到第一个矩阵中列的线性组合和第二个矩阵中列的线性组合,以便最大化两个线性组合之间的相关性.

这可以使用特征向量和特征值手动完成,但如果您有统计工具箱,那么Matlab已经打包并准备好为您服务.该函数被调用canoncorr,文档在这里

以下是该函数用法的简要示例:

%# Set up some example data
CovMat = randi(5, 4, 4) + 20 * eye(4); %# Build a random covariance matrix
CovMat = (1/2) * (CovMat + CovMat'); %# Ensure random covriance matrix is symmetrix
X = mvnrnd(zeros(500, 4), CovMat); %# Simulate data using multivariate Normal

%# Partition the data into two matrices
X1 = X(:, 1:2);
X2 = X(:, 3:4);

%# Find the canonical correlations of the two matrices
[A, B, r] = canoncorr(X1, X2);
Run Code Online (Sandbox Code Playgroud)

第一个典型相关是第一个元素r,第二个典型相关是第二个元素r.

canoncorr功能还有很多其他输出.我不确定我是否足够聪明,可以在这里提供一个令人满意而简洁的解释,所以相反我会跛脚并建议你在多元分析教科书中阅读 - 大多数多元分析教科书都会有一个完整的致力于典型相关的章节.

最后,如果您没有统计工具箱,那么快速谷歌会透露以下FEX提交声称提供规范相关性分析 - 请注意,我自己没有测试过.