基本上我有两个矩阵,像这样:
> Matrix A (100 rows x 2 features)
Height - Weight
1.48 75
1.55 65
1.60 70
etc...
还有一个矩阵B(维度与矩阵A相同,但值不同,当然)
我想知道矩阵A和矩阵B之间是否存在某种相关性,你建议我采用哪种策略?
基本上我有两个矩阵,像这样:
> Matrix A (100 rows x 2 features)
Height - Weight
1.48 75
1.55 65
1.60 70
etc...
还有一个矩阵B(维度与矩阵A相同,但值不同,当然)
我想知道矩阵A和矩阵B之间是否存在某种相关性,你建议我采用哪种策略?
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);
r
的第一个元素,第二个典型相关是r
的第二个元素。
canoncorr
函数还有许多其他输出。我不确定自己是否聪明到足以在此提供令人满意且简洁的解释,因此我要推荐您在多元分析教材中阅读相关章节 - 大多数多元分析教材都会有一整章专门介绍典型相关。好的,让我们简单尝试一下:
A = [1:20; rand(1,20)]'; % Generate some data...
检查二维关系的最佳方法是查看数据图表:
plot(A(:,1), A(:,2), 'o') % In the random data you should not see some pattern...
corrcoef
函数进行计算:B = corrcoef(A)
ans =
1.0000 -0.1350
-0.1350 1.0000
这里,B(1,1)
表示列1和列1之间的相关性,B(2,1)
表示列1和列2之间的相关性(反之亦然,因此B
是对称的)。
在二维情况下,人们可能会对这种度量的有用性提出质疑 - 在我看来,通过查看图表通常可以获得更多的见解。
Weight = a*Height
(就像线性模型中一样),并且想比较两个矩阵是否包含类似的模型,例如,如果矩阵A的a
大致等于矩阵B的a
? - Thilocorrcoef
返回的是一个数组而不是一个数字。 - dynamic