Canonical Correlation Analysis 典型相关分析

介绍

定义

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

  输入:两个随机变量组 X=(x1,,xn) Y=(y1,,ym)
  输出:两个向量 a b,第一对典型变量 U=aX V=bY
  目标: aX bY 的相关系数 ρ=corr(aX,bY) 最大

起源

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

优点

  既考虑 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

解法

ΣXX=cov(X,X) ΣYY=cov(Y,Y) 。需要最大化的参数为

$
\rho = \frac{a’ \Sigma {XY} b}{\sqrt{a’ \Sigma {XX} a} \sqrt{b’ \Sigma _{YY} b}}.
$

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

c=Σ1/2XXa,

d=Σ1/2YYb.

因此我们有

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

因此解法是:
* c Σ1/2XXΣXYΣ1YYΣYXΣ1/2XX 的一个特征向量。
* d Σ1/2YYΣYXΣ1/2XXc 的比例项。

相反地,也有:
* d Σ1/2YYΣYXΣ1XXΣXYΣ1/2YY 的一个特征向量。
* c Σ1/2XXΣXYΣ1/2YYd 的比例项。

把坐标反过来,我们有
* a Σ1XXΣXYΣ1YYΣYX 的一个特征向量。
* b Σ1YYΣYXΣ1XXΣXY 的一个特征向量。
* a Σ1XXΣXYb 的比例项。
* b Σ1YYΣYXa 的比例项。

那么相关变量定义为:

U=cΣ1/2XXX=aX

V=dΣ1/2YYY=bY

实现

Python

  • Scikit-Learn
    Cross decomposition
    http://scikit-learn.org/stable/modules/cross_decomposition.html
    • cca_example.py
      python
      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)

Matlab

R

SAS

应用

  典型相关分析的用途很广。在实际分析问题中,当我们面临两组多变量数据,并希望研究两组变量之间的关系时,就要用到典型相关分析。 例如,为了研究扩张性财政政策实施以后对宏观经济发展的影响,就需要考察有关财政政策的一系列指标如财政支出总额的增长率、财政赤字增长率、国债发行额的增长率、税率降低率等与经济发展的一系列指标如国内生产总值增长率、就业增长率、物价上涨率等两组变量之间的相关程度。
  又如,为了研究宏观经济走势与股票市场走势之间的关系,就需要考察各种宏观经济指标如经济增长率、失业率、物价指数、进出口增长率等与各种反映股票市场状况的指标如股票价格指数、股票市场融资金额等两组变量之间的相关关系。再如,工厂要考察所使用的原料的质量对所生产的产品的质量的影响,就需要对所生产产品的各种质量指标与所使用的原料的各种质量指标之间的相关关系进行测度。
  又如,在分析评估某种经济投入与产出系统时,研究投入和产出情况之间的联系时,投入情况面可以从人力、物力等多个方面反映,产出情况也可以从产值、利税等方面反映。
  再如在分析影响居民消费因素时,我们可以将劳动者报酬、家庭经营收入、转移性收入等变量构成反映居民收入的变量组,而将食品支出、医疗保健支出、交通和通讯支出等变量构成反映居民支出情况的变量组,然后通过研究两变量组之间关系来分析影响居民消费因素情况。

参考

  1. https://en.wikipedia.org/wiki/Canonical_correlation
  2. http://baike.baidu.com/view/3307489.htm
  3. Knapp T R. Canonical correlation analysis: A general parametric significance-testing system[J]. Psychological Bulletin, 1978, 85(2): 410.
  4. http://www.cnblogs.com/jerrylead/archive/2011/06/20/2085491.html
典型相关分析是一种多元统计分析方法,用于研究两组变量之间的相关关系。它通过将两组变量进行线性组合,找到最大相关系数,从而得到两组变量之间的典型相关变量。 以一个典型相关分析的案例来说明。假设我们想研究体质指标与心理健康之间的关系。我们收集了100名成年人的体质指标数据(如身高、体重、腰围等)和心理健康指标数据(如抑郁倾向、幸福感等)。我们希望通过典型相关分析找到体质指标和心理健康指标之间的关联。 首先,我们将两组变量进行标准化处理,以消除单位的影响。然后,我们将体质指标和心理健康指标分别进行线性组合,得到两个典型变量。这两个典型变量分别代表了体质指标和心理健康指标的主要共同方差。 在典型相关分析中,我们计算典型相关系数来衡量两个典型变量的相关性。该系数的取值范围为-1到1,越接近1表示两个典型变量之间的相关性越强。 通过典型相关分析,我们可能发现体质指标和心理健康指标之间存在显著的正相关关系。例如,我们可能发现第一个典型变量代表了一个既高体质指标又高心理健康指标的模式,这表明身体健康和心理健康呈正相关。而第二个典型变量可能代表了一个低体质指标和低心理健康指标的模式,这表明身体健康和心理健康呈负相关。 此外,我们还可以通过典型相关分析得到两个典型变量的贡献度,以及每个变量对典型变量的权重系数。这些信息可以帮助我们理解体质指标和心理健康指标之间的相关机制,并为进一步的研究提供线索。 总之,典型相关分析是一种有效的统计方法,可以揭示出两组变量之间的相关性,并为研究者提供有关变量之间关系的有用信息。在不同领域中,典型相关分析都可以被广泛应用,以帮助我们更好地理解变量之间的关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值