我尝试使用sklearn进行典型相关分析(CCA)。我开始使用manual中包含的简单示例:
from sklearn.cross_decomposition import CCA
X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [3.,5.,4.]]
Y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
cca = CCA(n_components=1)
cca.fit(X, Y)
X_c, Y_c = cca.transform(X, Y)
据我所知,在cca.x_weights_中,我得到了#34;规范系数",即原始X变量的线性组合(矩阵列#34; A"" ; B"由MATLAB返回。然而,"规范相关"在哪里,即应用由规范系数给出的变换时达到的最大相关性(即,矢量" r"由MATLAB返回)。是否有可能在Python中获得它?
答案 0 :(得分:0)
您可以使用.transfrom
的输出来计算相关性。可以使用numpy或scipy来完成。我更喜欢scipy的stats模块:
X_c, Y_c = cca.transform(X, Y)
import scipy.stats
corrcoef,p_value = scipy.stats.pearsonr(X_c,Y_c)
很显然,由于您没有足够的样本(即 n ),因此您的相关系数为1。