Zeroclanzhang(讨论 | 贡献) 无编辑摘要 |
无编辑摘要 |
||
第28行: | 第28行: | ||
}} | }} | ||
在[[statistics|统计学]]中,'''典型相关分析'''('''CCA'''),也称为'''典型变量分析''',是一种从[[cross-covariance matrix|交叉协方差矩阵]]推断信息的方法。如果我们有两个向量''X'' = (''X''<sub>1</sub>, ..., ''X''<sub>''n''</sub>)和''Y'' = (''Y''<sub>1</sub>, ..., ''Y''<sub>''m''</sub>)的[[random variable|随机变量]],并且变量之间存在[[correlation|相关性]],那么典型相关分析将找到''X''和''Y''的线性组合,这些线性组合彼此之间具有最大的相关性。<ref>{{Cite book | doi = 10.1007/978-3-540-72244-1_14 | chapter = 典型相关分析 | title = 应用多变量统计分析 | pages = 321–330 | year = 2007 | isbn = 978-3-540-72243-4 | first1 = Wolfgang | last1 = Härdle| first2 = Léopold | last2 = Simar| citeseerx = 10.1.1.324.403 }}</ref> T. R. Knapp指出,“几乎所有常见的[[parametric statistics|参数检验]]的显著性都可以视为典型相关分析的特例,这是研究两组变量之间关系的通用程序。”<ref>{{Cite journal | last1 = Knapp | first1 = T. R. | title = 典型相关分析:一个通用的参数显著性检验系统 | doi = 10.1037/0033-2909.85.2.410 | journal = 心理学公报 | volume = 85 | issue = 2 | pages = 410–416 | year = 1978 }}</ref> 该方法最初由[[Harold Hotelling|哈罗德·霍特林]]在1936年引入,<ref>{{Cite journal | last1 = Hotelling | first1 = H. | author-link1 = Harold Hotelling| title = 两组变量之间的关系 | doi = 10.1093/biomet/28.3-4.321 | journal = 生物统计学 | volume = 28 | issue = 3–4 | pages = 321–377 | year = 1936 | jstor = 2333955}}</ref> 尽管在[[angles between flats|平面间角度]]的数学概念上,乔丹在1875年已经发表了相关论文。<ref name="jordan">{{cite journal | |||
|last=Jordan | |||
|first=C. | |||
|author-link=Camille Jordan | |||
|date=1875 | |||
|title=关于n维几何的试验 | |||
|journal=法国数学会公报 | |||
|volume=3 | |||
|pages=103 | |||
|url=http://www.numdam.org/item?id=BSMF_1875__3__103_2 | |||
}}</ref> | |||
如今,CCA已成为多变量统计和多视图学习的基石,提出了大量的解释和扩展,如概率CCA、稀疏CCA、多视图CCA和深度CCA。不幸的是,也许因为其受欢迎的程度,文献中的符号可能不一致,我们试图在本文中突出这种不一致性,以帮助读者最好地利用现有的文献和可用技术。 | |||
像其姐妹方法[[Principal component analysis|主成分分析(PCA)]]一样,CCA可以以''群体''形式(对应于随机向量及其协方差矩阵)或''样本''形式(对应于数据集及其样本协方差矩阵)来查看。这两种形式几乎是彼此的精确类似物,这就是为什么它们的区别常常被忽视,但在高维设置中它们的表现可能大不相同。<ref>{{Cite web |title=稀疏统计学习:套索和泛化 |url=https://hastie.su.domains/StatLearnSparsity/ |access-date=2023-09-12 |website=hastie.su.domains}}</ref> 接下来我们将为群体问题给出明确的数学定义,并突出所谓的''典型分解''中的不同对象 - 理解这些对象之间的差异对于技术的解释至关重要。 | |||
=='''通过相关性定义群体CCA'''== | |||
给定两个[[column vectors|列向量]] [math]X = (x_1, \dots, x_n)^T[/math] 和 [math]Y = (y_1, \dots, y_m)^T[/math] 的[[random variable|随机变量]],它们具有[[Wikt:finite|有限的]] [[second moments|二阶矩]],人们可以定义[[cross-covariance|交叉协方差]] [math]\Sigma _{XY} = \operatorname{cov}(X, Y) [/math] 为 [math] n \times m[/math] [[matrix (mathematics)|矩阵]],其 [math](i, j)[/math] 项是[[covariance|协方差]] [math]\operatorname{cov}(x_i, y_j)[/math]。在实践中,我们会基于来自 [math]X[/math] 和 [math]Y[/math] 的样本数据(即一对数据矩阵)来估计协方差矩阵。 | |||
典型相关分析寻求一系列向量 [math]a_k[/math]([math]a_k \in\mathbb R^n[/math])和 [math]b_k[/math]([math]b_k \in\mathbb R^m[/math]),使得随机变量 [math]a_k^T X[/math] 和 [math]b_k^T Y[/math] 最大化[[correlation|相关性]] [math]\rho = \operatorname{corr}(a_k^T X, b_k^T Y)[/math]。标量随机变量 [math]U = a_k^T X[/math] 和 [math]V = b_k^T Y[/math] 是'''''第一对典型变量'''''。然后寻找最大化相同相关性的向量,受到它们必须与第一对典型变量不相关的约束;这就得到了'''''第二对典型变量'''''。这个程序可以继续进行直到 [math]\min\{m,n\}[/math] 次。 | |||
: [math display="block"](a_k,b_k) = \underset{a,b}\operatorname{argmax} \operatorname{corr}(a^T X, b^T Y) \quad\text{ subject to } \operatorname{cov}(a^T X, a_j^T X) = \operatorname{cov}(b^T Y, b_j^T Y) = 0 \text{ for } j=1, \dots, k-1[/math] | |||
向量集 [math]a_k, b_k[/math] 被称为'''''典型方向'''''或'''''权重向量'''''或简单地称为'''''权重'''''。'对偶'向量集 [math]\Sigma_{XX}a_k, \Sigma_{YY} b_k[/math] 被称为'''''典型载荷向量'''''或简单地称为'''''载荷''''';这些通常比权重更容易解释。<ref>{{Cite journal |last1=Gu |first1=Fei |last2=Wu |first2=Hao |date=2018-04-01 |title=具有不变典型载荷的同时典型相关分析 |url=https://doi.org/10.1007/s41237-017-0042-8 |journal=行为计量学 |language=en |volume=45 |issue=1 |pages=111–132 |doi=10.1007/s41237-017-0042-8 |issn=1349-6964}}</ref> | |||
=='''计算'''== | |||
===推导=== | |||
设[math]\Sigma _{XY}[/math]为任意一对(向量形状的)随机变量[math]X[/math]和[math]Y[/math]的[[交协方差矩阵]]。要最大化的目标函数是 | |||
:[math] | |||
\rho = \frac{a^T \Sigma _{XY} b}{\sqrt{a^T \Sigma _{XX} a} \sqrt{b^T \Sigma _{YY} b}}。 | |||
[/math] | |||
第一步是定义一个[[基变换]]并定义 | |||
:[math] | |||
c = \Sigma _{XX} ^{1/2} a, | |||
[/math] | |||
:[math] | |||
d = \Sigma _{YY} ^{1/2} b, | |||
[/math] | |||
其中[math]\Sigma_{XX}^{1/2}[/math]和[math]\Sigma_{YY}^{1/2}[/math]可以通过特征分解(或通过[[矩阵的平方根#通过对角化|对角化]])获得: | |||
:[math] | |||
\Sigma _{XX} ^{1/2} = V_X D_X^{1/2} V_X^\top,\qquad V_X D_X V_X^\top = \Sigma_{XX}, | |||
[/math] | |||
和 | |||
:[math] | |||
\Sigma _{YY} ^{1/2} = V_Y D_Y^{1/2} V_Y^\top,\qquad V_Y D_Y V_Y^\top = \Sigma_{YY}。 | |||
[/math] | |||
因此 | |||
:[math] | |||
\rho = \frac{c^T \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1/2} d}{\sqrt{c^Tc} \sqrt{d^Td}}。 | |||
[/math] | |||
根据[[柯西-施瓦茨不等式]], | |||
:[math] | |||
\left(c^T \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1/2} \right) (d) \leq \left(c^T \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^T d \right)^{1/2}, | |||
[/math] | |||
:[math] | |||
\rho \leq \frac{\left(c^T \Sigma _{XX}^{-1/2} \Sigma _{XY} \Sigma _{YY}^{-1} \Sigma _{YX} \Sigma_{XX}^{-1/2} c \right)^{1/2}}{\left(c^T c \right)^{1/2}}。 | |||
[/math] | |||
如果向量[math]d[/math]和[math]\Sigma_{YY}^{-1/2} \Sigma_{YX} \Sigma_{XX}^{-1/2} c[/math]共线,则等式成立。此外,如果[math]c[/math]是矩阵[math]\Sigma_{XX}^{-1/2} \Sigma_{XY} \Sigma_{YY}^{-1} \Sigma_{YX} \Sigma_{XX}^{-1/2}[/math]的最大特征值对应的[[特征向量]](见[[瑞利商]]),则可以达到相关性的最大值。通过使用逐渐减小的[[特征值]]找到后续对。相关矩阵的对称性保证了正交性。 | |||
另一种看待这个计算的方式是,[math]c[/math]和[math]d[/math]是X和Y的相关矩阵对应于最高奇异值的左右[[奇异值分解|奇异向量]]。 | |||
===解=== | |||
因此,解为: | |||
* [math]c[/math]是[math]\Sigma_{XX}^{-1/2} \Sigma_{XY} \Sigma_{YY}^{-1} \Sigma_{YX} \Sigma_{XX}^{-1/2}[/math]的一个特征向量 | |||
* [math]d[/math]与[math]\Sigma _{YY}^{-1/2} \Sigma_{YX} \Sigma_{XX}^{-1/2} c[/math]成比例 | |||
反之亦然: | |||
* [math]d[/math]是[math]\Sigma_{YY}^{-1/2} \Sigma_{YX} \Sigma_{XX}^{-1} \Sigma_{XY} \Sigma_{YY}^{-1/2}[/math]的一个特征向量 | |||
* [math]c[/math]与[math]\Sigma_{XX}^{-1/2} \Sigma_{XY} \Sigma_{YY}^{-1/2} d[/math]成比例 | |||
逆转坐标变换,我们有: | |||
* [math]a[/math]是[math]\Sigma_{XX}^{-1} \Sigma_{XY} \Sigma_{YY}^{-1} \Sigma_{YX}[/math]的一个特征向量, | |||
* [math]b[/math]与[math]\Sigma_{YY}^{-1} \Sigma_{YX} a;[/math]成比例 | |||
* [math]b[/math]是[math]\Sigma _{YY}^{-1} \Sigma_{YX} \Sigma_{XX}^{-1} \Sigma_{XY},[/math]的一个特征向量, | |||
* [math]a[/math]与[math]\Sigma_{XX}^{-1} \Sigma_{XY} b[/math]成比例。 | |||
典型变量由以下定义: | |||
:[math]U = c^T \Sigma_{XX}^{-1/2} X = a^T X[/math] | |||
:[math]V = d^T \Sigma_{YY}^{-1/2} Y = b^T Y[/math] | |||
===实现=== | |||
可以使用[[奇异值分解]]在相关矩阵上计算CCA。<ref>{{Cite journal | last1 = Hsu | first1 = D. | last2 = Kakade | first2 = S. M. | last3 = Zhang | first3 = T. | doi = 10.1016/j.jcss.2011.12.025 | title = 学习隐马尔可夫模型的光谱算法 | journal = 计算机与系统科学杂志 | volume = 78 | issue = 5 | pages = 1460 | year = 2012 | url = http://www.cs.mcgill.ca/~colt2009/papers/011.pdf| arxiv = 0811.4413| s2cid = 220740158 }}</ref> 它作为一个函数在<ref>{{Cite journal | last1 = Huang | first1 = S. Y. | last2 = Lee | first2 = M. H. | last3 = Hsiao | first3 = C. K. | doi = 10.1016/j.jspi.2008.10.011 | title = 使用核典型相关分析和应用的非线性关联度量 | journal = 统计规划与推断杂志 | volume = 139 | issue = 7 | pages = 2162 | year = 2009 | url = http://www.stat.sinica.edu.tw/syhuang/papersdownload/KCCA-080906.pdf | access-date = 2015-09-04 | archive-date = 2017-03-13 | archive-url = | url-status = dead }}</ref> | |||
* [[MATLAB]]作为[canoncorr](也在[[GNU Octave|Octave]]中[https://sourceforge.net/p/octave/statistics/ci/default/tree/inst/canoncorr.m]) | |||
* [[R (编程语言)|R]]作为标准函数[cancor]以及其他几个包,包括[CCA]和[vegan]。[CCP]用于典型相关分析中的统计假设检验。 | |||
* [[SAS语言|SAS]]作为[proc cancorr] | |||
* [[Python (编程语言)|Python]]在[[scikit-learn]]库中,作为[Cross decomposition],在[[statsmodels]]中,作为[https://devdocs.io/statsmodels/generated/statsmodels.multivariate.cancorr.cancorr CanCorr]。CCA-Zoo库<ref>{{Cite journal |last1=Chapman |first1=James |last2=Wang |first2=Hao-Ting |date=2021-12-18 |title=CCA-Zoo: 一系列在scikit-learn风格框架中的正则化、基于深度学习的、核心、和概率CCA方法的集合 |journal=开源软件杂志 |language=en |volume=6 |issue=68 |pages=3823 |doi=10.21105/joss.03823 |issn=2475-9066|doi-access=free }}</ref>实现了CCA的扩展,如概率CCA、稀疏CCA、多视图CCA和深度CCA。 | |||
* [[SPSS]]作为随主软件提供的宏CanCorr | |||
*[[Julia (编程语言)]]在[https://github.com/JuliaStats/MultivariateStats.jl MultivariateStats.jl]包中。 | |||
使用[[奇异值分解]]在相关矩阵上的CCA计算与[[扁平间的角度]]的[[余弦]]函数相关。对于小角度,[[余弦]]函数是[[条件不良]]的,导致在有限[[精度(计算机科学)|精度]][[计算机算术]]中高度相关的主向量的计算非常不准确。为了[[扁平间角度的计算|解决这个问题]],有其他算法<ref name="KA02">{{Citation | |||
| last1 = Knyazev | |||
| first1 = A.V. | |||
| last2 = Argentati | |||
| first2 = M.E. | |||
| title = 在基于A的标量积中子空间之间的主要角度:算法和扰动估计 | |||
| journal = SIAM科学计算杂志 | |||
| volume = 23 | |||
| issue = 6 | |||
| pages = 2009–2041 | |||
| year = 2002 | |||
| doi = 10.1137/S1064827500377332 | |||
| bibcode = 2002SJSC...23.2008K | |||
| citeseerx = 10.1.1.73.2914 | |||
}}</ref>可用于 | |||
* [[SciPy]] 作为 [线性代数函数子空间角度] | |||
* [[MATLAB]] 作为 [https://www.mathworks.com/matlabcentral/fileexchange/55-subspacea-m FileExchange函数subspacea] | |||
=='''假设检验'''== | |||
每一行都可以用以下方法检验其显著性。由于相关性是排序的,因此说第[math]i[/math]行为零意味着所有后续的相关性也为零。如果我们在样本中有[math]p[/math]个独立观察值,且[math]\widehat{\rho}_i[/math]是对[math]i = 1,\dots, \min\{m,n\}[/math]的估计相关性。对于第[math]i[/math]行,检验统计量为: | |||
:[math]\chi^2 = - \left( p - 1 - \frac{1}{2}(m + n + 1)\right) \ln \prod_{j = i}^{\min\{m,n\}} (1 - \widehat{\rho}_j^2),[/math] | |||
该统计量在[math]p[/math]较大时,渐近地服从自由度为[math](m - i + 1)(n - i + 1)[/math]的[[chi-squared distribution|卡方分布]]。<ref>{{Cite book | |||
| author = [[Kanti V. Mardia]], J. T. Kent 和 J. M. Bibby | |||
| title = Multivariate Analysis | |||
| year = 1979 | |||
| publisher = [[Academic Press]] | |||
}}</ref> 由于从[math] \min\{m,n\}[/math]到[math]p[/math]的所有相关性在逻辑上都是零(也以这种方式估计),因此这一点之后的项的乘积是无关紧要的。 | |||
注意,在样本量较小的限制下,如果[math]p < n + m[/math],则我们可以保证前[math]m + n - p[/math]个相关性恒定为1,因此这种检验是无意义的。<ref>Yang Song, Peter J. Schreier, David Ramírez, 和 Tanuj Hasija ''Canonical correlation analysis of high-dimensional data with very small sample support'' {{ArXiv|1604.02047}}</ref> | |||
=='''实际应用'''== | |||
典型的典型相关性在实验环境中的应用是取两组变量,看看这两组之间有什么共同点。<ref>{{cite book|last= Sieranoja|first=S.|author2=Sahidullah, Md| author3=Kinnunen, T.| author4= Komulainen, J.| author5= Hadid, A.|title=2018 IEEE第三届国际信号与图像处理会议(ICSIP) |chapter=使用优化音频特征的音视频同步检测 |date=2018年7月|pages=377–381 |doi=10.1109/SIPROCESS.2018.8600424 |isbn=978-1-5386-6396-7 |s2cid=51682024 |url=http://urn.fi/urn:nbn:fi-fe2020041415345 |chapter-url=http://cs.joensuu.fi/pages/tkinnu/webpage/pdf/audiovisual_synchrony_2018.pdf}}</ref> 例如,在心理测试中,可以采取两个成熟的多维[[personality tests|人格测试]],如[[Minnesota Multiphasic Personality Inventory|明尼苏达多项人格测试]](MMPI-2)和[[Neuroticism Extraversion Openness Personality Inventory|NEO]]。通过观察MMPI-2因素与NEO因素之间的关系,可以洞察测试之间共有的维度以及共享的变异量有多少。例如,可能会发现[[Extraversion and introversion|外向性]]或[[neuroticism|神经质]]维度在两次测试之间共享了大量的变异量。 | |||
也可以使用典型相关分析来生成一个模型方程,该方程关联两组变量,例如一组性能度量和一组解释变量,或一组输出和一组输入。可以对这样的模型施加约束限制,以确保它反映理论要求或直观明显的条件。这种类型的模型被称为最大相关模型。<ref>{{Cite journal | last1 = Tofallis | first1 = C. | title = Model Building with Multiple Dependent Variables and Constraints | doi = 10.1111/1467-9884.00195 | journal = Journal of the Royal Statistical Society, Series D | volume = 48 | issue = 3 | pages = 371–378 | year = 1999 | arxiv = 1109.0725| s2cid = 8942357 }}</ref> | |||
通常通过两组变量的系数的条形图来可视化典型相关的结果,显示出显著相关的典型变量对。一些作者建议,将它们作为圆盘图绘制出来可能是最佳的可视化方式,这是一种圆形格式,带有类似射线的条形,每一半代表两组变量。<ref>{{Cite book | last1 = Degani | first1 = A. | last2 = Shafto | first2 = M. | last3 = Olson | first3 = L. | doi = 10.1007/11783183_11 | chapter = Canonical Correlation Analysis: Use of Composite Heliographs for Representing Multiple Patterns | title = Diagrammatic Representation and Inference | series = Lecture Notes in Computer Science | volume = 4045 | pages = 93 | year = 2006 | isbn = 978-3-540-35623-3 | chapter-url = http://ti.arc.nasa.gov/m/profile/adegani/Composite_Heliographs.pdf| citeseerx = 10.1.1.538.5217 }}</ref> | |||
=='''例子'''== | |||
设[math]X = x_1[/math],其[[expected value|期望值]]为零,即[math]\operatorname{E}(X)=0[/math]。 | |||
1. 如果[math]Y = X[/math],即[math]X[/math]和[math]Y[/math]完全相关,那么,例如,[math]a=1[/math]和[math]b=1[/math],使得第一对(也是本例中唯一的一对)典型变量为[math]U = X[/math]和[math]V = Y =X[/math]。 | |||
2. 如果[math]Y = -X[/math],即[math]X[/math]和[math]Y[/math]完全反相关,那么,例如,[math]a=1[/math]和[math]b=-1[/math],使得第一对(也是本例中唯一的一对)典型变量为[math]U = X[/math]和[math]V = -Y =X[/math]。 | |||
我们注意到,在这两种情况下[math]U =V[/math],这说明典型相关分析对于相关变量和反相关变量的处理是相似的。 | |||
=='''与主角之间的联系'''== | |||
假设 [math]X = (x_1, \dots, x_n)^T[/math] 和 [math]Y = (y_1, \dots, y_m)^T[/math] 的 [[expected value|期望值]] 为零,即 [math]\operatorname{E}(X)=\operatorname{E}(Y)=0[/math],他们的 [[covariance|协方差]] 矩阵 [math]\Sigma _{XX} =\operatorname{Cov}(X,X) = \operatorname{E}[X X^T][/math] 和 [math]\Sigma _{YY} =\operatorname{Cov}(Y,Y) = \operatorname{E}[Y Y^T][/math] 可以视为对应于 [math]X[/math] 和 [math]Y[/math] 的条目的 [[Gram matrix|格拉姆矩阵]] 在 [[inner product|内积]] 中。在这种解释中,随机变量,[math]X[/math] 的条目 [math]x_i[/math] 和 [math]Y[/math] 的条目 [math]y_j[/math] 被视为向量空间中的元素,该向量空间的内积由 [[covariance|协方差]] [math]\operatorname{cov}(x_i, y_j)[/math] 给出;参见 [[Covariance#Relationship to inner products|协方差与内积的关系]]。 | |||
然后,规范变量 [math]U[/math] 和 [math]V[/math] 的定义等同于对于由 [math]X[/math] 和 [math]Y[/math] 的条目张成的一对子空间关于此 [[inner product|内积]] 的 [[principal angles|主向量]] 的定义。规范相关性 [math]\operatorname{corr}(U,V)[/math] 等于 [[principal angles|主角]] 的 [[cosine|余弦]]。 | |||
=='''白化和概率规范相关分析'''== | |||
CCA 也可以视为一种特殊的 [[whitening transformation|白化转换]],其中随机向量 [math]X[/math] 和 [math]Y[/math] 被同时转换,以使得白化向量 [math]X^{CCA}[/math] 和 [math]Y^{CCA}[/math] 之间的交叉相关性是对角线的。<ref>{{cite journal | last1 = Jendoubi | first1 = T. | last2 = Strimmer | first2 = K. | title = A whitening approach to probabilistic canonical correlation analysis for omics data integration | journal = BMC Bioinformatics | volume = 20 | issue = 1 | pages = 15 | year = 2018 | arxiv = 1802.03490 | doi = 10.1186/s12859-018-2572-9 | pmid = 30626338 | pmc = 6327589 | doi-access = free }}</ref> 然后,规范相关性被解释为连接 [math]X^{CCA}[/math] 和 [math]Y^{CCA}[/math] 的回归系数,也可能是负数。CCA 的回归视角还提供了一种构建 CCA 的潜在变量概率生成模型的方法,其中不相关的隐藏变量代表共享和非共享的变异性。 | |||
== '''节点使用的R语言示例代码''' == | |||
=== 典型相关分析 === | |||
<syntaxhighlight lang="R"> | |||
cancor(x, y, xcenter = TRUE, ycenter = TRUE) | |||
</syntaxhighlight> | |||
== '''节点使用指南''' == | |||
* 典型相关分析旨在探索和量化两组变量集(称为变量集X和变量集Y)之间的线性关系 | |||
* 与简单的相关分析不同,CCA可以同时考虑多个变量,分析两组变量之间的整体相关性 | |||
=== 方法选择 === | |||
* 无方法选择 | |||
=== 参数配置 === | |||
* 因变量:选择多个连续型数值变量 | |||
* 自变量:选择多个连续型数值变量 | |||
* 因变量和自变量要规避复用 | |||
* 此算法兼容空值 | |||
=== 注意事项 === | |||
* 当涉及到多对典型变量时,可能会出现多重性问题,这可能会导致统计显著性的问题 | |||
* 典型相关分析对样本大小有较高的要求,特别是当涉及到大量变量时 | |||
* 在小样本情况下,典型相关分析可能会产生过度拟合,即模型对于训练数据的拟合很好,但泛化到新数据的能力差 | |||
== '''引用''' == | |||
{{Reflist}} | |||
{{Navplate AlgorithmNodeList}} | {{Navplate AlgorithmNodeList}} | ||
[[Category:相关分析]] | [[Category:相关分析]] |
2024年2月25日 (日) 10:37的版本
节点状态 | / Win10及以上可用
在V1.0部署
|
---|---|
典型相关分析 | |
节点开发者 | 决策链算法研发部 (Dev.Team-DPS) |
节点英文名 | Canonical Correlation Analysis |
功能主类别 | 数据分析 |
英文缩写 | CCA |
功能亚类别 | 相关分析 |
节点类型 | 数据挖掘 |
开发语言 | R |
节点简介 | |
典型相关分析是利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。假设有两组变量,采用类似主成分分析的做法,在每一组变量中选择若干个有代表性的综合指标-变量的线性组合,通过研究两组的综合指标之间的关系来反映两组变量之间的相关关系。原理是首先在变量中找出变量的线性组合,使其具有最大相关性,然后再每组变量中找出第二对线性组合,使其分别与第一对线性组合不相关,而第二对线性组合本身具有最大的相关性,如此继续下去,直到两组变量之间的相关性被提取完毕。 用途:研究两组变量之间的关系, 典型相关分析可以一次性分析多个变量的关系,也可以帮助研究者了解哪些变量在两组数据中有最强的关系。 参数:可以输入多个数值因变量和多个数值自变量。 | |
端口数量与逻辑控制(PC) | |
Input-入口 | 4个 |
Output-出口 | 2个 |
Loop-支持循环 | 是 |
If/Switch-支持逻辑判断 | 否 |
输入输出 | |
相关节点 | |
上一节点 | 一般线性相关分析 |
下一节点 | 组内相关系数_随机效应 |
在统计学中,典型相关分析(CCA),也称为典型变量分析,是一种从交叉协方差矩阵推断信息的方法。如果我们有两个向量X = (X1, ..., Xn)和Y = (Y1, ..., Ym)的随机变量,并且变量之间存在相关性,那么典型相关分析将找到X和Y的线性组合,这些线性组合彼此之间具有最大的相关性。[1] T. R. Knapp指出,“几乎所有常见的参数检验的显著性都可以视为典型相关分析的特例,这是研究两组变量之间关系的通用程序。”[2] 该方法最初由哈罗德·霍特林在1936年引入,[3] 尽管在平面间角度的数学概念上,乔丹在1875年已经发表了相关论文。[4]
如今,CCA已成为多变量统计和多视图学习的基石,提出了大量的解释和扩展,如概率CCA、稀疏CCA、多视图CCA和深度CCA。不幸的是,也许因为其受欢迎的程度,文献中的符号可能不一致,我们试图在本文中突出这种不一致性,以帮助读者最好地利用现有的文献和可用技术。
像其姐妹方法主成分分析(PCA)一样,CCA可以以群体形式(对应于随机向量及其协方差矩阵)或样本形式(对应于数据集及其样本协方差矩阵)来查看。这两种形式几乎是彼此的精确类似物,这就是为什么它们的区别常常被忽视,但在高维设置中它们的表现可能大不相同。[5] 接下来我们将为群体问题给出明确的数学定义,并突出所谓的典型分解中的不同对象 - 理解这些对象之间的差异对于技术的解释至关重要。
通过相关性定义群体CCA
给定两个列向量 [math]X = (x_1, \dots, x_n)^T[/math] 和 [math]Y = (y_1, \dots, y_m)^T[/math] 的随机变量,它们具有有限的 二阶矩,人们可以定义交叉协方差 [math]\Sigma _{XY} = \operatorname{cov}(X, Y) [/math] 为 [math] n \times m[/math] 矩阵,其 [math](i, j)[/math] 项是协方差 [math]\operatorname{cov}(x_i, y_j)[/math]。在实践中,我们会基于来自 [math]X[/math] 和 [math]Y[/math] 的样本数据(即一对数据矩阵)来估计协方差矩阵。
典型相关分析寻求一系列向量 [math]a_k[/math]([math]a_k \in\mathbb R^n[/math])和 [math]b_k[/math]([math]b_k \in\mathbb R^m[/math]),使得随机变量 [math]a_k^T X[/math] 和 [math]b_k^T Y[/math] 最大化相关性 [math]\rho = \operatorname{corr}(a_k^T X, b_k^T Y)[/math]。标量随机变量 [math]U = a_k^T X[/math] 和 [math]V = b_k^T Y[/math] 是第一对典型变量。然后寻找最大化相同相关性的向量,受到它们必须与第一对典型变量不相关的约束;这就得到了第二对典型变量。这个程序可以继续进行直到 [math]\min\{m,n\}[/math] 次。
- [math display="block"](a_k,b_k) = \underset{a,b}\operatorname{argmax} \operatorname{corr}(a^T X, b^T Y) \quad\text{ subject to } \operatorname{cov}(a^T X, a_j^T X) = \operatorname{cov}(b^T Y, b_j^T Y) = 0 \text{ for } j=1, \dots, k-1[/math]
向量集 [math]a_k, b_k[/math] 被称为典型方向或权重向量或简单地称为权重。'对偶'向量集 [math]\Sigma_{XX}a_k, \Sigma_{YY} b_k[/math] 被称为典型载荷向量或简单地称为载荷;这些通常比权重更容易解释。[6]
计算
推导
设[math]\Sigma _{XY}[/math]为任意一对(向量形状的)随机变量[math]X[/math]和[math]Y[/math]的交协方差矩阵。要最大化的目标函数是
- [math]
\rho = \frac{a^T \Sigma _{XY} b}{\sqrt{a^T \Sigma _{XX} a} \sqrt{b^T \Sigma _{YY} b}}。 [/math]
第一步是定义一个基变换并定义
- [math]
c = \Sigma _{XX} ^{1/2} a, [/math]
- [math]
d = \Sigma _{YY} ^{1/2} b, [/math] 其中[math]\Sigma_{XX}^{1/2}[/math]和[math]\Sigma_{YY}^{1/2}[/math]可以通过特征分解(或通过对角化)获得:
- [math]
\Sigma _{XX} ^{1/2} = V_X D_X^{1/2} V_X^\top,\qquad V_X D_X V_X^\top = \Sigma_{XX}, [/math] 和
- [math]
\Sigma _{YY} ^{1/2} = V_Y D_Y^{1/2} V_Y^\top,\qquad V_Y D_Y V_Y^\top = \Sigma_{YY}。 [/math]
因此
- [math]
\rho = \frac{c^T \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1/2} d}{\sqrt{c^Tc} \sqrt{d^Td}}。 [/math]
根据柯西-施瓦茨不等式,
- [math]
\left(c^T \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1/2} \right) (d) \leq \left(c^T \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^T d \right)^{1/2}, [/math]
- [math]
\rho \leq \frac{\left(c^T \Sigma _{XX}^{-1/2} \Sigma _{XY} \Sigma _{YY}^{-1} \Sigma _{YX} \Sigma_{XX}^{-1/2} c \right)^{1/2}}{\left(c^T c \right)^{1/2}}。 [/math]
如果向量[math]d[/math]和[math]\Sigma_{YY}^{-1/2} \Sigma_{YX} \Sigma_{XX}^{-1/2} c[/math]共线,则等式成立。此外,如果[math]c[/math]是矩阵[math]\Sigma_{XX}^{-1/2} \Sigma_{XY} \Sigma_{YY}^{-1} \Sigma_{YX} \Sigma_{XX}^{-1/2}[/math]的最大特征值对应的特征向量(见瑞利商),则可以达到相关性的最大值。通过使用逐渐减小的特征值找到后续对。相关矩阵的对称性保证了正交性。
另一种看待这个计算的方式是,[math]c[/math]和[math]d[/math]是X和Y的相关矩阵对应于最高奇异值的左右奇异向量。
解
因此,解为:
- [math]c[/math]是[math]\Sigma_{XX}^{-1/2} \Sigma_{XY} \Sigma_{YY}^{-1} \Sigma_{YX} \Sigma_{XX}^{-1/2}[/math]的一个特征向量
- [math]d[/math]与[math]\Sigma _{YY}^{-1/2} \Sigma_{YX} \Sigma_{XX}^{-1/2} c[/math]成比例
反之亦然:
- [math]d[/math]是[math]\Sigma_{YY}^{-1/2} \Sigma_{YX} \Sigma_{XX}^{-1} \Sigma_{XY} \Sigma_{YY}^{-1/2}[/math]的一个特征向量
- [math]c[/math]与[math]\Sigma_{XX}^{-1/2} \Sigma_{XY} \Sigma_{YY}^{-1/2} d[/math]成比例
逆转坐标变换,我们有:
- [math]a[/math]是[math]\Sigma_{XX}^{-1} \Sigma_{XY} \Sigma_{YY}^{-1} \Sigma_{YX}[/math]的一个特征向量,
- [math]b[/math]与[math]\Sigma_{YY}^{-1} \Sigma_{YX} a;[/math]成比例
- [math]b[/math]是[math]\Sigma _{YY}^{-1} \Sigma_{YX} \Sigma_{XX}^{-1} \Sigma_{XY},[/math]的一个特征向量,
- [math]a[/math]与[math]\Sigma_{XX}^{-1} \Sigma_{XY} b[/math]成比例。
典型变量由以下定义:
- [math]U = c^T \Sigma_{XX}^{-1/2} X = a^T X[/math]
- [math]V = d^T \Sigma_{YY}^{-1/2} Y = b^T Y[/math]
实现
可以使用奇异值分解在相关矩阵上计算CCA。[7] 它作为一个函数在[8]
- MATLAB作为[canoncorr](也在Octave中[1])
- R作为标准函数[cancor]以及其他几个包,包括[CCA]和[vegan]。[CCP]用于典型相关分析中的统计假设检验。
- SAS作为[proc cancorr]
- Python在scikit-learn库中,作为[Cross decomposition],在statsmodels中,作为CanCorr。CCA-Zoo库[9]实现了CCA的扩展,如概率CCA、稀疏CCA、多视图CCA和深度CCA。
- SPSS作为随主软件提供的宏CanCorr
- Julia (编程语言)在MultivariateStats.jl包中。
使用奇异值分解在相关矩阵上的CCA计算与扁平间的角度的余弦函数相关。对于小角度,余弦函数是条件不良的,导致在有限精度计算机算术中高度相关的主向量的计算非常不准确。为了解决这个问题,有其他算法[10]可用于
- SciPy 作为 [线性代数函数子空间角度]
- MATLAB 作为 FileExchange函数subspacea
假设检验
每一行都可以用以下方法检验其显著性。由于相关性是排序的,因此说第[math]i[/math]行为零意味着所有后续的相关性也为零。如果我们在样本中有[math]p[/math]个独立观察值,且[math]\widehat{\rho}_i[/math]是对[math]i = 1,\dots, \min\{m,n\}[/math]的估计相关性。对于第[math]i[/math]行,检验统计量为:
- [math]\chi^2 = - \left( p - 1 - \frac{1}{2}(m + n + 1)\right) \ln \prod_{j = i}^{\min\{m,n\}} (1 - \widehat{\rho}_j^2),[/math]
该统计量在[math]p[/math]较大时,渐近地服从自由度为[math](m - i + 1)(n - i + 1)[/math]的卡方分布。[11] 由于从[math] \min\{m,n\}[/math]到[math]p[/math]的所有相关性在逻辑上都是零(也以这种方式估计),因此这一点之后的项的乘积是无关紧要的。
注意,在样本量较小的限制下,如果[math]p < n + m[/math],则我们可以保证前[math]m + n - p[/math]个相关性恒定为1,因此这种检验是无意义的。[12]
实际应用
典型的典型相关性在实验环境中的应用是取两组变量,看看这两组之间有什么共同点。[13] 例如,在心理测试中,可以采取两个成熟的多维人格测试,如明尼苏达多项人格测试(MMPI-2)和NEO。通过观察MMPI-2因素与NEO因素之间的关系,可以洞察测试之间共有的维度以及共享的变异量有多少。例如,可能会发现外向性或神经质维度在两次测试之间共享了大量的变异量。
也可以使用典型相关分析来生成一个模型方程,该方程关联两组变量,例如一组性能度量和一组解释变量,或一组输出和一组输入。可以对这样的模型施加约束限制,以确保它反映理论要求或直观明显的条件。这种类型的模型被称为最大相关模型。[14]
通常通过两组变量的系数的条形图来可视化典型相关的结果,显示出显著相关的典型变量对。一些作者建议,将它们作为圆盘图绘制出来可能是最佳的可视化方式,这是一种圆形格式,带有类似射线的条形,每一半代表两组变量。[15]
例子
设[math]X = x_1[/math],其期望值为零,即[math]\operatorname{E}(X)=0[/math]。
1. 如果[math]Y = X[/math],即[math]X[/math]和[math]Y[/math]完全相关,那么,例如,[math]a=1[/math]和[math]b=1[/math],使得第一对(也是本例中唯一的一对)典型变量为[math]U = X[/math]和[math]V = Y =X[/math]。 2. 如果[math]Y = -X[/math],即[math]X[/math]和[math]Y[/math]完全反相关,那么,例如,[math]a=1[/math]和[math]b=-1[/math],使得第一对(也是本例中唯一的一对)典型变量为[math]U = X[/math]和[math]V = -Y =X[/math]。
我们注意到,在这两种情况下[math]U =V[/math],这说明典型相关分析对于相关变量和反相关变量的处理是相似的。
与主角之间的联系
假设 [math]X = (x_1, \dots, x_n)^T[/math] 和 [math]Y = (y_1, \dots, y_m)^T[/math] 的 期望值 为零,即 [math]\operatorname{E}(X)=\operatorname{E}(Y)=0[/math],他们的 协方差 矩阵 [math]\Sigma _{XX} =\operatorname{Cov}(X,X) = \operatorname{E}[X X^T][/math] 和 [math]\Sigma _{YY} =\operatorname{Cov}(Y,Y) = \operatorname{E}[Y Y^T][/math] 可以视为对应于 [math]X[/math] 和 [math]Y[/math] 的条目的 格拉姆矩阵 在 内积 中。在这种解释中,随机变量,[math]X[/math] 的条目 [math]x_i[/math] 和 [math]Y[/math] 的条目 [math]y_j[/math] 被视为向量空间中的元素,该向量空间的内积由 协方差 [math]\operatorname{cov}(x_i, y_j)[/math] 给出;参见 协方差与内积的关系。
然后,规范变量 [math]U[/math] 和 [math]V[/math] 的定义等同于对于由 [math]X[/math] 和 [math]Y[/math] 的条目张成的一对子空间关于此 内积 的 主向量 的定义。规范相关性 [math]\operatorname{corr}(U,V)[/math] 等于 主角 的 余弦。
白化和概率规范相关分析
CCA 也可以视为一种特殊的 白化转换,其中随机向量 [math]X[/math] 和 [math]Y[/math] 被同时转换,以使得白化向量 [math]X^{CCA}[/math] 和 [math]Y^{CCA}[/math] 之间的交叉相关性是对角线的。[16] 然后,规范相关性被解释为连接 [math]X^{CCA}[/math] 和 [math]Y^{CCA}[/math] 的回归系数,也可能是负数。CCA 的回归视角还提供了一种构建 CCA 的潜在变量概率生成模型的方法,其中不相关的隐藏变量代表共享和非共享的变异性。
节点使用的R语言示例代码
典型相关分析
cancor(x, y, xcenter = TRUE, ycenter = TRUE)
节点使用指南
- 典型相关分析旨在探索和量化两组变量集(称为变量集X和变量集Y)之间的线性关系
- 与简单的相关分析不同,CCA可以同时考虑多个变量,分析两组变量之间的整体相关性
方法选择
- 无方法选择
参数配置
- 因变量:选择多个连续型数值变量
- 自变量:选择多个连续型数值变量
- 因变量和自变量要规避复用
- 此算法兼容空值
注意事项
- 当涉及到多对典型变量时,可能会出现多重性问题,这可能会导致统计显著性的问题
- 典型相关分析对样本大小有较高的要求,特别是当涉及到大量变量时
- 在小样本情况下,典型相关分析可能会产生过度拟合,即模型对于训练数据的拟合很好,但泛化到新数据的能力差
引用
- ↑ Härdle, Wolfgang; Simar, Léopold (2007). "典型相关分析". 应用多变量统计分析. pp. 321–330. CiteSeerX 10.1.1.324.403. doi:10.1007/978-3-540-72244-1_14. ISBN 978-3-540-72243-4.
- ↑ Knapp, T. R. (1978). "典型相关分析:一个通用的参数显著性检验系统". 心理学公报. 85 (2): 410–416. doi:10.1037/0033-2909.85.2.410.
- ↑ Hotelling, H. (1936). "两组变量之间的关系". 生物统计学. 28 (3–4): 321–377. doi:10.1093/biomet/28.3-4.321. JSTOR 2333955.
- ↑ Jordan, C. (1875). "关于n维几何的试验". 法国数学会公报. 3: 103.
- ↑ "稀疏统计学习:套索和泛化". hastie.su.domains. Retrieved 2023-09-12.
- ↑ Gu, Fei; Wu, Hao (2018-04-01). "具有不变典型载荷的同时典型相关分析". 行为计量学 (in English). 45 (1): 111–132. doi:10.1007/s41237-017-0042-8. ISSN 1349-6964.
- ↑ Hsu, D.; Kakade, S. M.; Zhang, T. (2012). "学习隐马尔可夫模型的光谱算法" (PDF). 计算机与系统科学杂志. 78 (5): 1460. arXiv:0811.4413. doi:10.1016/j.jcss.2011.12.025. S2CID 220740158.
- ↑ Huang, S. Y.; Lee, M. H.; Hsiao, C. K. (2009). "使用核典型相关分析和应用的非线性关联度量" (PDF). 统计规划与推断杂志. 139 (7): 2162. doi:10.1016/j.jspi.2008.10.011. Retrieved 2015-09-04.
{{cite journal}}
:|archive-date=
requires|archive-url=
(help)CS1 maint: url-status (link) - ↑ Chapman, James; Wang, Hao-Ting (2021-12-18). "CCA-Zoo: 一系列在scikit-learn风格框架中的正则化、基于深度学习的、核心、和概率CCA方法的集合". 开源软件杂志 (in English). 6 (68): 3823. doi:10.21105/joss.03823. ISSN 2475-9066.
- ↑ Knyazev, A.V.; Argentati, M.E. (2002), "在基于A的标量积中子空间之间的主要角度:算法和扰动估计", SIAM科学计算杂志, 23 (6): 2009–2041, Bibcode:2002SJSC...23.2008K, CiteSeerX 10.1.1.73.2914, doi:10.1137/S1064827500377332
- ↑ Kanti V. Mardia, J. T. Kent 和 J. M. Bibby (1979). Multivariate Analysis. Academic Press.
- ↑ Yang Song, Peter J. Schreier, David Ramírez, 和 Tanuj Hasija Canonical correlation analysis of high-dimensional data with very small sample support 模板:ArXiv
- ↑ Sieranoja, S.; Sahidullah, Md; Kinnunen, T.; Komulainen, J.; Hadid, A. (2018年7月). "使用优化音频特征的音视频同步检测" (PDF). 2018 IEEE第三届国际信号与图像处理会议(ICSIP). pp. 377–381. doi:10.1109/SIPROCESS.2018.8600424. ISBN 978-1-5386-6396-7. S2CID 51682024.
{{cite book}}
: Check date values in:|date=
(help) - ↑ Tofallis, C. (1999). "Model Building with Multiple Dependent Variables and Constraints". Journal of the Royal Statistical Society, Series D. 48 (3): 371–378. arXiv:1109.0725. doi:10.1111/1467-9884.00195. S2CID 8942357.
- ↑ Degani, A.; Shafto, M.; Olson, L. (2006). "Canonical Correlation Analysis: Use of Composite Heliographs for Representing Multiple Patterns" (PDF). Diagrammatic Representation and Inference. Lecture Notes in Computer Science. Vol. 4045. p. 93. CiteSeerX 10.1.1.538.5217. doi:10.1007/11783183_11. ISBN 978-3-540-35623-3.
- ↑ Jendoubi, T.; Strimmer, K. (2018). "A whitening approach to probabilistic canonical correlation analysis for omics data integration". BMC Bioinformatics. 20 (1): 15. arXiv:1802.03490. doi:10.1186/s12859-018-2572-9. PMC 6327589. PMID 30626338.
查找其他类别的节点,请参考以下列表