我正在尝试使用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_中,我得到了“规范系数”,即原始X变量(由MATLAB返回的矩阵“A”和“B”的列)的线性组合。但是,“典范相关性”在哪里,即当应用由典范系数给出的变换时达到的最大相关性(即MATLAB返回的矢量“r”)。是否有可能在Python中得到它?

最佳答案

您可以使用.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

关于python - 带有sklearn的Python中的典范相关性分析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26298847/

10-12 20:05