无法手动复现sklearn CCA算法的canonical loadings(载荷)计算结果
关于scikit-learn CCA载荷与手动计算相关系数不符的问题解答
你没有操作错误,数值差异的核心原因是scikit-learn的x_loadings_定义和通用统计教材中的典型载荷定义不一致:
- 你参考的文献中提到的典型载荷,指的是原始变量与对应典型变量的皮尔逊相关系数,你通过
scipy.stats.pearsonr计算得到的0.961是符合理论定义的正确结果。 - scikit-learn返回的
cca.x_loadings_不属于上述统计定义的典型载荷,它是模型内部迭代计算用到的投影类参数,本质是去均值后的输入特征矩阵在典则权重方向上投影后的奇异向量乘积,和你要计算的典型载荷不是同一个概念。
后续分析直接使用你手动计算的皮尔逊相关系数作为典型载荷即可,不需要依赖scikit-learn返回的x_loadings_属性。如果做交叉验证,其他统计工具输出的典型载荷结果会和你手动计算的结果一致。
内容的提问来源于stack exchange,提问作者Johannes Wiesner
相关产品推荐
相关产品推荐

