Canonical Correlation Analysis 典型相关分析

介绍

定义

典型相关分析(Canonical Correlation Analysis)12利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。

输入:两个随机变量组\(X = (x_1, \dots, x_n)\)和\(Y = (y_1, \dots, y_m)\)

输出:两个向量\(a\)和\(b\),第一对典型变量\(U = a'X\)和\(V = b'Y\)

目标:\(a'X\)和\(b'Y\)的相关系数\(\rho = \operatorname{corr}(a' X, b' Y)\)最大

起源

1936年由哈罗德·霍特林在《生物统计》期刊上发表的一篇论文《两组变式之间的关系》3首次引入。

优点

既考虑\(Y\)中的每个特征与\(X\)的所有特征的关联,也考虑了\(Y\)中的每个特征之间的关联。

缺点

CCA是寻找\(X\)和\(Y\)投影后\(U\)和\(V\)的关系,显然不能通过该关系来还原出\(X\)和\(Y\),也就是找不到\(X\)到\(Y\)的直接映射。这也是使用CCA预测时大多配上KNN的原因。

应用领域

多元统计分析方法

相关

Kernel Canonical Correlation Analysis (KCCA)

当\(X\)和\(Y\)的关系是非线性的时候,我们可以尝试核函数(Kernel)方法

Generalized Canonical Correlation

不止两个集合\(X\)和\(Y\),而是多个集合的关系。

主成分分析

奇异值分解

Multilinear subspace learning

RV coefficient

Principal angles

Regularized canonical correlation analysis

Partial least squares regression

解法

设 \(\Sigma_{XX} = \operatorname{cov}(X, X)\) 和 \(\Sigma_{YY} = \operatorname{cov}(Y, Y)\)。

需要最大化的参数为

\(\rho = \frac{a' \Sigma_{XY} b}{\sqrt{a' \Sigma_{XX} a} \sqrt{b' \Sigma_{YY} b}}\).

第一步是定义一个基变更以及

\(c = \Sigma_{XX} ^{1/2} a\),

\(d = \Sigma_{YY} ^{1/2} b\).

因此我们有

\(\rho = \frac{c' \Sigma_{XX} ^{-1/2} \Sigma_{XY} \Sigma_{YY} ^{-1/2} d}{\sqrt{c' c} \sqrt{d' d}}\).

根据柯西-施瓦茨不等式,我们有

\(\left(c' \Sigma_{XX} ^{-1/2} \Sigma_{XY} \Sigma_{YY} ^{-1/2} \right) d \leq \left(c' \Sigma_{XX} ^{-1/2} \Sigma_{XY} \Sigma_{YY} ^{-1/2} \Sigma_{YY} ^{-1/2} \Sigma_{YX} \Sigma_{XX} ^{-1/2} c \right)^{1/2} \left(d' d \right)^{1/2}\),

\(\rho \leq \frac{\left(c' \Sigma_{XX} ^{-1/2} \Sigma_{XY} \Sigma_{YY} ^{-1} \Sigma_{YX} \Sigma_{XX} ^{-1/2} c \right)^{1/2}}{\left(c' c \right)^{1/2}}\).

如果向量 \(d\) 和 \(\Sigma_{YY} ^{-1/2} \Sigma_{YX} \Sigma_{XX} ^{-1/2} c\) 共线,那么上式相等。此外,如果 \(c\) 是矩阵 \(\Sigma_{XX} ^{-1/2} \Sigma_{XY} \Sigma_{YY} ^{-1} \Sigma_{YX} \Sigma_{XX} ^{-1/2}\) (见Rayleigh quotient) 最大特征值对应的特征向量,那么就可以得到相关的最大值。随后的典型变量对可以通过减少特征值的量级来得到。正交性保证了相关矩阵的对称性。

因此解法是:

\(c\) 是 \(\Sigma_{XX} ^{-1/2} \Sigma_{XY} \Sigma_{YY} ^{-1} \Sigma_{YX} \Sigma_{XX} ^{-1/2}\) 的一个特征向量。

\(d\) 是 \(\Sigma_{YY} ^{-1/2} \Sigma_{YX} \Sigma_{XX} ^{-1/2} c\) 的比例项。

相反地,也有:

\(d\) 是 \(\Sigma_{YY} ^{-1/2} \Sigma_{YX} \Sigma_{XX} ^{-1} \Sigma_{XY} \Sigma_{YY} ^{-1/2}\) 的一个特征向量。

\(c\) 是 \(\Sigma_{XX} ^{-1/2} \Sigma_{XY} \Sigma_{YY} ^{-1/2} d\) 的比例项。

把坐标反过来,我们有

\(a\) 是 \(\Sigma_{XX} ^{-1} \Sigma_{XY} \Sigma_{YY} ^{-1} \Sigma_{YX}\) 的一个特征向量。

\(b\) 是 \(\Sigma_{YY} ^{-1} \Sigma_{YX} \Sigma_{XX} ^{-1} \Sigma_{XY}\) 的一个特征向量。

\(a\) 是 \(\Sigma_{XX} ^{-1} \Sigma_{XY} b\) 的比例项。

\(b\) 是 \(\Sigma_{YY} ^{-1} \Sigma_{YX} a\) 的比例项。

那么相关变量定义为:

\(U = c' \Sigma_{XX} ^{-1/2} X = a' X\)\(V = d' \Sigma_{YY} ^{-1/2} Y = b' Y\)

实现

Python

Scikit-Learn

sklearn.cross_decomposition.CCA

cca_example.py

1

2

3

4

5

6from 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)

output

1

2

3

4

5

6

7

8

9

10>>> X_c

array([[-1.3373174 ],

[-1.10847164],

[ 0.40763151],

[ 2.03815753]])

>>> Y_c

array([[-0.85511537],

[-0.70878547],

[ 0.26065014],

[ 1.3032507 ]])

Matlab

R

SAS

应用

典型相关分析的用途很广。在实际分析问题中,当我们面临两组多变量数据,并希望研究两组变量之间的关系时,就要用到典型相关分析。 例如,为了研究扩张性财政政策实施以后对宏观经济发展的影响,就需要考察有关财政政策的一系列指标如财政支出总额的增长率、财政赤字增长率、国债发行额的增长率、税率降低率等与经济发展的一系列指标如国内生产总值增长率、就业增长率、物价上涨率等两组变量之间的相关程度。

又如,为了研究宏观经济走势与股票市场走势之间的关系,就需要考察各种宏观经济指标如经济增长率、失业率、物价指数、进出口增长率等与各种反映股票市场状况的指标如股票价格指数、股票市场融资金额等两组变量之间的相关关系。再如,工厂要考察所使用的原料的质量对所生产的产品的质量的影响,就需要对所生产产品的各种质量指标与所使用的原料的各种质量指标之间的相关关系进行测度。

又如,在分析评估某种经济投入与产出系统时,研究投入和产出情况之间的联系时,投入情况面可以从人力、物力等多个方面反映,产出情况也可以从产值、利税等方面反映。

再如在分析影响居民消费因素时,我们可以将劳动者报酬、家庭经营收入、转移性收入等变量构成反映居民收入的变量组,而将食品支出、医疗保健支出、交通和通讯支出等变量构成反映居民支出情况的变量组,然后通过研究两变量组之间关系来分析影响居民消费因素情况。

参考

Knapp T R. Canonical correlation analysis: A general parametric significance-testing system[J]. Psychological Bulletin, 1978, 85(2): 410.↩︎

python 典型相关分析_Canonical Correlation Analysis 典型相关分析相关推荐

  1. 数学建模 典型相关分析Canonical Correlation analysis

    典型相关分析CCA和主成分分析PCA非常相似,都是通过现有变量的线性组合构造新的综合变量以实现减少变量数目但代表几乎同样多的信息的目的.只是CCA分析的是两组变量,是要把每一组变量用一个线性组合综合变 ...

  2. 生物统计学(Biostatistics)笔记第七讲-Linear regression and correlation analysis

    Linear regression and correlation analysis •第五章中,我们介绍了如何研究两个定性变量是否有关系的问题. •实际工作中,我们经常需要研究两个或两个以上定量变量 ...

  3. 典型相关分析(Canonical correlation analysis)(二):原始变量与典型变量之间的相关性 、典型相关系数的检验

    典型相关分析系列博文: 典型相关分析(Canonical correlation analysis)(一):基本思想 .复相关系数.偏相关系数 典型相关分析(Canonical correlation ...

  4. 03 - 滤波器组典型相关分析(Filter bank canonical correlation analysis,fbcca)

    03 - 滤波器组典型相关分析(Filter bank canonical correlation analysis,fbcca) 这里介绍了一种简单的SSVEP算法,在实际中有着重要的作用. 文章目 ...

  5. 典型相关分析(Canonical correlation analysis)(一):基本思想 、复相关系数、偏相关系数

    典型相关分析系列博文: 典型相关分析(Canonical correlation analysis)(一):基本思想 .复相关系数.偏相关系数 典型相关分析(Canonical correlation ...

  6. 典型相关分析(Canonical Correlation Analysis, CCA)

    文章目录 一 什么是典型相关分析 二 基本概念 1 典型变量(Canonical Variates) 2 补充概念 三 典型相关分析 一 什么是典型相关分析 用来探索两个向量之间的关联关系的,这两个向 ...

  7. 典型相关分析(Canonical Correlation Analysis,CCA)

    1.从概率论中相关系数推广而来 在概率论中,研究两个变量之间的线性相关情况时,提出了 相关系数 这个概念.做一下推广,如果研究一个变量和多个随机变量之间的线性相关关系时,提出了 全相关系数(或者复相关 ...

  8. 经典相关分析,典型关分析, CCA,Canonical Correlation Analysis,多元变量分析,线性组合,相关系数最大化...

    1.从概率论中相关系数推广而来 在概率论中,研究两个变量之间的线性相关情况时,提出了 相关系数 这个概念.做一下推广,如果研究一个变量和多个随机变量之间的线性相关关系时,提出了 全相关系数(或者复相关 ...

  9. 典型相关分析(cca)原理_CCA典型关联分析原理与Python案例

    文章来源于"脑机接口社区" CCA典型关联分析原理与Python案例​mp.weixin.qq.com Rose今天分享一下CCA的相关原理以及Python应用,CCA在EEG等脑 ...

  10. python中的corr函数_Python中的相关分析correlation analysis的实现

    相关分析(correlation analysis) 研究两个或两个以上随机变量之间相互依存关系的方向和密切程度的方法. 线性相关关系主要采用皮尔逊(Pearson)相关系数r来度量连续变量之间线性相 ...

最新文章

  1. tensorflow中的向量范数
  2. 不要在覆写的方法中用super
  3. 青蛙学Linux—NFS
  4. Intellij Idea: Thymeleaf 命名空间th报错
  5. NumPy Beginner's Guide 2e 带注释源码 二、NumPy 基础入门
  6. Java之乘积最大子数组
  7. idea debug的时候 启动起来超级慢
  8. ssms 缺少索引信息_SQLServer索引重建
  9. cocos2d学习之路四(添加遥控杆)
  10. 银行IT系统-整体架构
  11. 用java开发编译器之Thompson构造:正则表达式的词法解析
  12. 【随笔记】NDK 编译开源库 SQLite3
  13. 戴尔将为奔驰多款车型设计专业的车载智能系统
  14. Excel和Python实现梯度下降法
  15. z中国禽肉深加工市场盈利动态与竞争前景分析报告2022-2027年
  16. 计算机组成与嵌入式系统 百度云,计算机组成及嵌入式系统.pdf
  17. 加密后的数据如何进行模糊查询?
  18. “网络三结义”--mpls 进阶实验详细配置
  19. Echarts 地图使用,以及tooltip轮播使用
  20. 解决Oracle中文乱码问题

热门文章

  1. 联发科正式发布Helio P23/P30 SoC:GPU、基带大升级
  2. 【英语魔法俱乐部——读书笔记】 1 初级句型-简单句(Simple Sentences)
  3. 【MML】华为MML AAA接口联调,Java版本
  4. 针对于网站被黑被劫持了的解决办法、网站被劫持了怎么办
  5. 谨以此写下本人安装riscv的全过程 简单易懂!!(本人环境是在ubuntu18.04中)
  6. Referenced file contains errors解决
  7. 抓取猫眼电影TOP10榜数据
  8. ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略
  9. 人工智能聊天机器人(有详细安装教程)/ 自动学习型
  10. ICS bomblab总结