典型相关分析(CCA)简述

it2023-10-04  72

文章目录

前言一、算法原理二、举个例子三、CCA算法计算步骤总结


前言

        典型相关分析(Canonical Correlation Analysis)是研究两组变量之间相关关系的一种多元统计方法,它能够揭示出两组变量之间的内在联系。         在一元统计分析中,用相关系数来衡量两个随机变量的线性相关关系,用复相关系数研究一个随机变量与多个随机变量的线性相关关系。然而,这些方法均无法用于研究两组变量之间的相关关系,于是提出了CCA。         其基本思想和主成分分析非常相似。首先,在每组变量中寻找出变量的线性组合,使得两组的线性组合之间具有最大的相关系数;然后选取和已经挑选出的这对线性组合不相关的另一对线性组合,并使其相关系数最大,如此下去,直到两组变量的相关性被提取完毕为止。被选出的线性组合配对称为典型变量,它们的相关系数称为典型相关系数。

一、算法原理

        设有两组随机变量X=(x1,x2,⋯,xp)′和Y=(y1,y2,⋯,yq)′,不妨设p≤q。设第一组变量均值为EX=μ1,方差为Var(X)=cov(X,X)=Σ11。第二组变量均值为EY=μ2,方差为Var(Y)=cov(Y,Y)=Σ22。第一组与第二组变量的协方差矩阵为cov(X,Y)=Σ12=Σ′21。 分别对两组变量做线性组合,得式(1)、(2),如下: 所以U,V的方差,协方差,相关系数为式(3)、(4)、(5)、(6),如下:: 其中U,V称为典型变量,它们之间的相关系数ρ称为典型相关系数。        CCA要解决的问题是,在所有线性组合U和V中选取典型相关系数最大的那对,即选取a(1),b(1)使U1=(a(1))′X与V1=(b(1))′Y之间的相关系数最大,这里(U1,V1)称为第一对典型相关变量;然后在选取a(2),b(2)使得U1=(a(2))′X,V2(b(2))′Y,在与U1,V1不相关的情况下,使得(U2,V2)的相关系数最大,称为第二对典型相关变量;如此继续下去,直到所有分别与(U1,V1),(U2,V2),⋯,(Up−1,Vp−1)都不相关的线性组合(Up,Vp)为止,此时p为X与Y之间的协方差矩阵的秩。 由上面的分析可得模型,式(7): 由于收缩U和V的值并不会影响ρ,故我们可引入限制条件a′Σ11a=1,b′Σ22b=1将模型转化为式(8): 引入Lagrange乘子,得式(9): 对Lagrange函数求导得式(10)、(11): 将上两式分别左乘a′,左乘b′得: 又因为(a′Σ12b)′=b′Σ21a⟹λa′Σ11a=νb′Σ22b。由限制条件知:λ=ν=ρ=a′Σ12b,即λ的值就是线性组合U和V的相关系数。我们重新将上式写成式(12)、(13): 然后左乘Σ12Σ−122得式(14): 结合式(12)得式(15): 同理,将式子(12)左乘Σ21Σ−111,并将式子(13)代入式子(12)得式(16): 将Σ−111左乘式子(15),Σ−122左乘式子(16)得式(17): 于是,λ2既是矩阵A也是矩阵B的特征值,a与b分别是对应的特征向量。所以我们的问题转化成求矩阵A,B的最大特征值对应的特征向量,而特征值的平方根√λ为相关系数,从而求出第一对典型相关变量。 此时,我们可以得到如下的猜想:矩阵A,B的所有非零特征值的平方跟都会是其对应的典型相关系数。 见证明

二、举个例子

        典型相关性分析是用来探索两个多变量(向量)之间之间的关联关系的,这两个多变量来自于一个相同的个体。

        一般有两个典型的目的:

Data Reduction:用少量的线性组合来解释两组变量之间的相关作用。Data Interpretation:寻找特征值,这些特征值对于解释两个变量集合之间的相互作用十分关键。

        举例来说,我们判定一个人解题能力X与他/她的阅读能力Y之间的关系。一方面,我们使用观察一个人的解题速度x1,解题正确率x2作为解题能力的指标;另一方面,我们观察一个人的阅读速度y1,理解程度y2作为阅读能力的指标。我们可以观察二者之间的关联关系。

        假设两组随机变量X=(x1,x2)′和Y=(y1,y2)′。设第一组变量均值为EX=μ1,方差为Var(X)=cov(X,X)=Σ11。第二组变量均值为EY=μ2,方差为Var(Y)=cov(Y,Y)=Σ22。第一组与第二组变量的协方差矩阵为cov(X,Y)=Σ12=Σ′21,而我们通过对样本计算协方差矩阵得到如下结果:

三、CCA算法计算步骤

由上述原理说明及实例展示,我们可以归纳得出CCA算法计算基本步骤如下:

计算X的方差Var(X)=cov(X,X)=Σ11, Y的方差Var(Y)=cov(Y,Y)=Σ22,X和Y的协方差cov(X,Y)=Σ12=Σ′21;

计算矩阵A:、B;

求A、B的特征值和特征向量a,b,并对A、B进行相应的向量化操作,求得满足a,b约束条件下的A’、B’;

根据上述步骤结果,求相关系数,并对此进行分析

总结

CCA(canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理是:为了从总体上把握两组指标之间的相关关系,分别在两组变量中提取有代表性的两个综合变量U1和V1(分别为两个变量组中各变量的线性组合),利用这两个综合变量之间的相关关系来反映两组指标之间的整体相关性。典型相关分析的实质就是在两组随机变量中选取若干个有代表性的综合指标(变量的线性组合), 用这些指标的相关关系来表示原来的两组变量的相关关系。这在两组变量的相关性分析中, 可以起到合理的简化变量的作用; 当典型相关系数足够大时, 可以像回归分析那样, 由- 组变量的数值预测另一组变量的线性组合的数值。典型关联分析(Canonical Correlation Analysis,简称CCA)是最常用的挖掘数据关联关系的算法之一。CCA算法广泛的应用于数据相关度的分析,同时还是偏最小二乘法的基础。但是由于它依赖于数据的线性表示,当我们的数据无法线性表示时,CCA就无法使用,此时我们可以利用核函数的思想,将数据映射到高维后,再利用CCA的思想降维到1维,求对应的相关系数和线性关系,这个算法一般称为KCCA。此外,在算法里只找了相关度最大的奇异值或者特征值,作为数据的相关系数,实际上我们也可以像PCA一样找出第二大奇异值,第三大奇异值,。。。得到第二相关系数和第三相关系数。然后对数据做进一步的相关性分析。但是一般的应用来说,找出第一相关系数就可以了。

本文参考来源: https://zhuanlan.zhihu.com/p/52110862      典型相关分析 (Canonical Correlation Analysis ,CCA) https://www.cnblogs.com/jerrylead/archive/2011/06/20/2085491.html      典型关联分析(Canonical Correlation Analysis) https://www.cnblogs.com/boostable/p/lec_canonical_correlation_analysis.html      典型相关分析 https://blog.csdn.net/zyb228/article/details/107096880      CCA典型关联分析原理与Python案例 https://blog.csdn.net/weixin_38208741/article/details/84271297      机器学习(32)之典型相关性分析(CCA)详解 http://www.docin.com/p-619663847.html      CCA算法数学推导

最新回复(0)