典型相关分析
(一)引入
典型相关分析(Canonical Correlation Analysis)是研究两组变量之间相关关系的一种多元统计方法。他能够揭示出两组变量之间的内在联系。
我们知道,在一元统计分析中,用相关系数来衡量两个随机变量的线性相关关系,用复相关系数研究一个随机变量与多个随机变量的线性相关关系。然而,这些方法均无法用于研究两组变量之间的相关关系,于是提出了CCA。其基本思想和主成分分析非常相似。首先,在每组变量中寻找出变量的线性组合,使得两组的线性组合之间具有最大的相关系数;然后选取和已经挑选出的这对线性组合不相关的另一对线性组合,并使其相关系数最大,如此下去,直到两组变量的相关性被提取完毕为止。被选出的线性组合配对称为典型变量,它们的相关系数称为典型相关系数。
(二)分析
设有两组随机变量$\mathbf{X}=(x_1,x_2,\cdots,x_p)^\prime$和$\mathbf{Y}=(y_1,y_2,\cdots,y_q)^\prime$,不妨设$p\leq q$。设第一组变量均值为$\mathbb{E}\mathbf{X}=\mu_1$,方差为$\mathop{Var}(\mathbf{X})=\mathop{cov}(\mathbf{X},\mathbf{X})=\Sigma_{11}$。第二组变量均值为$\mathbb{E}\mathbf{Y}=\mu_2$,方差为$\mathop{Var}(\mathbf{Y})=\mathop{cov}(\mathbf{Y},\mathbf{Y})=\Sigma_{22}$。第一组与第二组变量的协方差矩阵为$\mathop{cov}(\mathbf{X},\mathbf{Y})=\Sigma_{12}=\Sigma_{21}^\prime$。
分别对两组变量做线性组合:
\begin{align}U &= a_1x_1+a_2x_2+\cdots+a_px_p=a^\prime\mathbf{X}\label{equ:U}\\ V &= b_1x_1+b_2x_2+\cdots+b_qy_q=b^\prime\mathbf{Y}\label{equ:V}\end{align}
所以$U,V$的方差,协方差,相关系数为:
\begin{align}&\mathop{Var}(U)=a^\prime\mathop{cov}(\mathbf{X},\mathbf{X})a=a^\prime\Sigma_{11}a\label{equ:UVar}\\&\mathop{Var}(V)=b^\prime\mathop{cov}(\mathbf{Y},\mathbf{Y})b=b^\prime\Sigma_{22}b\label{VVar}\\&\mathop{cov}(U,V)=a^\prime\mathop{cov}(\mathbf{X},\mathbf{Y})b=a^\prime\Sigma_{12}b\label{equ:UVcov}\\&\rho=\mathop{corr}(U,V)=\frac{a^\prime\Sigma_{12}b}{\sqrt{a^\prime\Sigma_{11}a}\sqrt{b^\prime\Sigma_{12}b}}\label{equ:rho}\end{align}
其中$U,V$称为典型变量,它们之间的相关系数$\rho$称为典型相关系数。
CCA要解决的问题是,在所有线性组合$U$和$V$中选取典型相关系数最大的那对,即选取$a^{(1)},b^{(1)}$使$U_1=(a^{(1)})^\prime\mathbf{X}$与$V_1=(b^{(1)})^\prime\mathbf{Y}$之间的相关系数最大,这里$(U_1,V_1)$称为第一对典型相关变量;然后在选取$a^{(2)},b^{(2)}$使得$U_1=(a^{(2)})^\prime\mathbf{X},V_2(b^{(2)})^\prime\mathbf{Y}$,在与$U_1,V_1$不相关的情况下,使得$(U_2,V_2)$的相关系数最大,称为第二对典型相关变量;如此继续下去,直到所有分别与$(U_1,V_1),(U_2,V_2),\cdots,(U_{p-1},V_{p-1})$都不相关的线性组合$(U_p,V_p)$为止,此时$p$为$\mathbf{X}$与$\mathbf{Y}$之间的协方差矩阵的秩。由上面的分析可得模型:
\begin{equation}\mathop{\max}\quad\rho=\frac{a^\prime\Sigma_{12}b}{\sqrt{a^\prime\Sigma_{11}a}\sqrt{b^\prime\Sigma_{22}b}}\label{model:original}\end{equation}
由于收缩$U$和$V$的值并不会影响$\rho$,故我们可引入限制条件$a^\prime\Sigma_{11}a=1,b^\prime\Sigma_{22}b=1$将模型转化为:
\begin{align}\mathop{\max}\quad&a^\prime\Sigma_{12}b\nonumber\\\mathop{s.t.}\quad&a^\prime\Sigma_{11}a=1\nonumber\\\quad& b^\prime\Sigma_{22}b=1\label{model:constraint}\end{align}
引入Lagrange乘子:
\begin{equation}L(a,b,\lambda,\nu)=a^\prime\Sigma_{12}b-\frac{\lambda}{2}(a^\prime\Sigma_{11}a-1)-\frac{\nu}{2}(b^\prime\Sigma_{22}b-1)\label{equ:lagrange}\end{equation}
对Lagrange函数\ref{equ:lagrange}求导得:
\begin{equation}\frac{\partial L}{\partial a}=\Sigma_{12}b-\lambda\Sigma_{11}a=0\label{equ:partiala}\end{equation}
\begin{equation}\frac{\partial L}{\partial b}=\Sigma_{21}a-\nu\Sigma_{22}b=0\label{equ:partialb}\end{equation}
将式子\ref{equ:partiala}左乘$a^\prime$,式子\ref{equ:partialb}左乘$b^\prime$得:
\begin{align*}a^\prime\Sigma_{12}b-\lambda a^\prime\Sigma_{11}a &=0\\b^\prime\Sigma_{21}a-\nu b^\prime\Sigma_{22}b &=0\end{align*}
又因为$(a^\prime\Sigma_{12}b)^\prime=b^\prime\Sigma_{21}a\Longrightarrow \lambda a^\prime\Sigma_{11}a=\nu b^\prime\Sigma_{22}b$。由限制条件知:$\lambda=\nu=\rho=a^\prime\Sigma_{12}b$,即$\lambda$的值就是线性组合$U$和$V$的相关系数。我们重新将式子\ref{equ:partiala}和式子\ref{equ:partialb}写成:
\begin{align}-\lambda\Sigma_{11}a+\Sigma_{12}b&=0\label{equ:partialaNew}\\\Sigma_{21}a-\lambda\Sigma_{22}b&=0\label{equ:partialbNew}\end{align}
然后将式子\ref{equ:partialbNew}左乘$\Sigma_{12}\Sigma_{22}^{-1}$得:
\begin{equation}\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}a=\lambda\Sigma_{12}b\label{equ:partialbLeft}\end{equation}
结合式子\ref{equ:partialaNew}得:
\begin{equation}\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}a=\lambda^2\Sigma_{11}a\Longrightarrow (\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}-\lambda^2\Sigma_{11})a=0\label{equ:3to4}\end{equation}
同理,将式子\ref{equ:partialaNew}左乘$\Sigma_{21}\Sigma_{11}^{-1}$,并将式子\ref{equ:partialbNew}代入式子\ref{equ:partialaNew}得:
\begin{equation}(\Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}-\lambda^2\Sigma_{22})b=0\label{equ:4to3}\end{equation}
将$\Sigma_{11}^{-1}$左乘式子\ref{equ:3to4},$\Sigma_{22}^{-1}$左乘式子\ref{equ:4to3}得:
\begin{equation}\left\{\begin{array}&(\Sigma_{11}^{-1}\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}-\lambda^2)a=0\\(\Sigma_{22}^{-1}\Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}-\lambda^2)b=0\end{array}\right.\triangleq\left\{\begin{array}&\mathbf{A}a=\lambda^2a\\\mathbf{B}b=\lambda^2b\end{array}\right.\end{equation}
说明:$\lambda^2$既是矩阵$\mathbf{A}$也是矩阵$\mathbf{B}$的特征值,$a$与$b$分别是对应的特征向量。所以我们的问题转化成求矩阵$\mathbf{A},\mathbf{B}$的最大特征值对应的特征向量,而特征值的平方根$\sqrt{\lambda}$为相关系数,从而求出第一对典型相关变量。
此时,我们可以得到如下的猜想:是否矩阵$\mathbf{A},\mathbf{B}$的所有非零特征值的平方跟都会是其对应的典型相关系数?接下去,我们来证明如下猜想:
设$\lambda^2_1\geq\lambda_2^2\geq\cdots\geq\lambda_p^2>0$为$\mathbf{A},\mathbf{B}$的特征值($p$为矩阵$\Sigma_{12}$的秩),其对应的特征向量为$a^{(1)},a^{(2)},\cdots,a^{(p)}$和$b^{(1)},b^{(2)},\cdots,b^{(p)}$,于是得到$p$对线性组合:
\begin{equation}\begin{array}&U_1=(a^{(1)})^\prime\mathbf{X}&U_2=(a^{(2)})^\prime\mathbf{X}&\cdots&U_p=(a^{(p)})^\prime\mathbf{X}\\V_1=(b^{(1)})^\prime\mathbf{Y}&V_2=(b^{(2)})^\prime\mathbf{Y}&\cdots&V_p=(b^{(p)})^\prime\mathbf{Y}\end{array}\end{equation}
可以证明$(U_1,V_1),(U_2,V_2),\cdots,(U_p,V_p)$就是其前$p$对典型变量,$\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p$为其典型相关系数。
首先,在求出第一对典型变量的基础上求第二对典型变量。由上述分析我们可以知道该模型为:
\begin{align}\mathop{\max}&\quad (a^{(2)})^\prime\Sigma_{12}b^{(2)}\nonumber\\\mathop{s.t.}&\quad (a^{(2)})^\prime\Sigma_{11} a^{(2)}=1\nonumber\\&\quad(b^{(2)})^\prime\Sigma_{22}b^{(2)}=1\nonumber\\&\quad(a^{(1)})^\prime\Sigma_{11}a^{(2)}=0\label{con:1}\\&\quad(b^{(1)})^\prime\Sigma_{22}b^{(2)}=0\label{con:2}\end{align}
其中限制\ref{con:1}和\ref{con:2}是由于第二对典型变量必须与第一对典型变量无关。其Lagrange方程以及相应的偏导为:
\begin{align*}L(a^{(1)},b^{(1)},a^{(2)},b^{(2)}) &=(a^{(2)})^\prime\Sigma_{12}b^{(2)}-\frac{\lambda}{2}((a^{(2)})^\prime\Sigma_{11}a^{(2)}-1)-\frac{\nu}{2}((b^{(2)})^\prime\Sigma_{22}b^{(2)}-1)\\&\quad + \gamma (a^{(1)})^\prime\Sigma_{11}a^{(2)}+\beta(b^{(1)})^\prime\Sigma_{22}b^{(2)}\end{align*}
\begin{align}\frac{\partial L}{\partial a^{(2)}} &=\Sigma_{12}b^{(2)}-\lambda\Sigma_{11}a^{(2)}+\gamma\Sigma_{11}a^{(1)}=0\label{partial:a2}\\\frac{\partial L}{\partial b^{(2)}}&=\Sigma_{21}a^{(2)}-\nu\Sigma_{22}b^{(2)}+\beta\Sigma_{22}b^{(1)}=0\label{partial:b2}\\\frac{\partial L}{\partial a1}&=\gamma\Sigma_{11}a^{(2)}=0\label{partial:a1}\\\frac{\partial L}{\partial b^{(1)}}&=\beta\Sigma_{22}b^{(2)}=0\label{partial:b1}\end{align}
将$(a^{(2)})^\prime$左乘式子\ref{partial:a2},$(b^{(2)})^\prime$左乘式子\ref{partial:b2}得:
\begin{align}&(a^{(2)})^\prime\Sigma_{12}b^{(2)}-\lambda(a^{(2)})^\prime\Sigma_{11}a^{(2)}+\gamma (a^{(2)})^\prime\Sigma_{11}a^{(1)}=0\label{partial:a2new}\\&(b^{(2)})^\prime\Sigma_{21}a^{(2)}-\nu(b^{(2)})^\prime\Sigma_{22}b^{(2)}+\beta (b^{(2)})^\prime\Sigma_{22}b^{(1)}=0\label{partial:b2new}\end{align}
将$(a^{(1)})^\prime$左乘式子\ref{partial:a1},$(b^{(2)})^\prime$左乘式子\ref{partial:b1}得:
\begin{align}&(a^{(2)})^\prime\Sigma_{11}a^{(1)}=0\label{partial:a1new}\\&(b^{(2)})^\prime\Sigma_{22}b^{(2)}=0\label{partial:b1new}\end{align}
将式子\ref{partial:a1new}和式子\ref{partial:b1new}代入式子\ref{partial:a2new}和\ref{partial:b2new}得:
\begin{align}&(a^{(2)})^\prime\Sigma_{12}b^{(2)}-\lambda(a^{(2)})^\prime\Sigma_{11}a^{(2)}=0\label{partial:a1a2}\\&(b^{(2)})^\prime\Sigma_{21}a^{(2)}-\nu(b^{(2)})^\prime\Sigma_{22}b^{(2)}=0\label{partial:b1b2}\end{align}
其中式子\ref{partial:a1a2}和式子\ref{partial:b1b2}与式子\ref{equ:partiala}和式子\ref{equ:partialb}有相同的形式,只是$a,b$换成$a^{(2)},b^{(2)}$,故同样可以得到:
\begin{equation}\left\{\begin{array}&\mathbf{A}a^{(2)}=\lambda^2a^{(2)}\\\mathbf{B}b^{(2)}=\lambda^2b^{(2)}\end{array}\right.\end{equation}
此时$a^{(2)}\neq a,b^{(2)}\neq b$,否则不满足限制\ref{con:1}和\ref{con:2},所以最大值为第二大特征值。以此类推,我们即可证明上述猜想。
注意:我们在求解上述普通特征值方程$\mathbf{A}a=\lambda^2a$时,由于$\mathbf{A}=\Sigma_{11}^{-1}\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}$而求逆过程的计算量大,精度低,故我们可以将其中的对称矩阵$\Sigma_{11}$进行Cholesky分解,即$\Sigma_{11}=\mathbf{R_1}\mathbf{R_1}^\prime$,其中$\mathbf{R_1}$为下三角矩阵。于是方程可化为对称矩阵的求特征值问题:$\mathbf{R_1}^{-1}\Sigma_{12}\Sigma_{22}^{-1}\Sigma_{21}(\mathbf{R_1}^{-1})^\prime u_x=\lambda^2 u_x$,其中$u_x=\mathbf{R_1}^\prime a$。
Jordan Lecture Note-11: 典型相关分析(Canonical Correlation Analysis, CCA).的更多相关文章
-
Jordan Lecture Note-12: Kernel典型相关分析(Kernel Canonical Correlation Analysis, KCCA).
Kernel典型相关分析 (一)KCCA 同样,我们可以引入Kernel函数,通过非线性的坐标变换达到之前CCA所寻求的目标.首先,假设映射$\Phi_X: x\rightarrow \Phi_X(x ...
-
机器学习: Canonical Correlation Analysis 典型相关分析
Canonical Correlation Analysis(CCA)典型相关分析也是一种常用的降维算法.我们知道,PCA(Principal Component Analysis) 主分量分析将数据 ...
-
经典相关分析,典型关分析, CCA,Canonical Correlation Analysis,多元变量分析,线性组合,相关系数最大化
1.从概率论中相关系数推广而来 在概率论中,研究两个变量之间的线性相关情况时,提出了 相关系数 这个概念.做一下推广,如果研究一个变量和多个随机变量之间的线性相关关系时,提出了 全相关系数(或者复相关 ...
-
多视图学习利器----CCA(典型相关分析)及MATLAB实现
Hello,我是你们人见人爱花见花开的小花.又和大家见面了,今天我们来聊一聊多视图学习利器------CCA. 一 典型相关分析的基本思想 当我们研究两个变量x和y之间的相关关系的时候,相关系数(相关 ...
-
SPSS数据分析—典型相关分析
我们已经知道,两个随机变量间的相关关系可以用简单相关系数表示,一个随机变量和多个随机变量的相关关系可以用复相关系数表示,而如果需要研究多个随机变量和多个随机变量间的相关关系,则需要使用典型相关分析. ...
-
Jordan Lecture Note-3: 梯度投影法
Jordan Lecture Note-3:梯度投影法 在这一节,我们介绍如何用梯度投影法来解如下的优化问题: \begin{align} \mathop{\min}&\quad f(x)\n ...
-
SPSS数据分析—基于最优尺度变换的典型相关分析
传统的典型相关分析只能考虑变量之间的线性相关情况,且必须为连续变量,而我们依然可以使用最优尺度变换来拓展其应用范围,使其可以分析非线性相关.数据为分类数据等情况,并且不再仅限于两个变量间的分析, 虽然 ...
-
Jordan Lecture Note-1: Introduction
Jordan Lecture Note-1: Introduction 第一部分要整理的是Jordan的讲义,这份讲义是我刚进实验室时我们老师给我的第一个任务,要求我把讲义上的知识扩充出去,然后每周都 ...
-
R语言 典型相关分析
1.关键点 #典型相关分析##典型相关分析是用于分析两组随机变量之间的相关程度的一种统计方法,它能够有效地揭示两组随机变量之间的相互(线性依赖)关系#例如 研究生入学考试成绩与本科阶段一些主要课程成绩 ...
随机推荐
-
LUA 模块化编程例子
LUA module lua语言中module接口用于定义一个模块, 将模块的实现封装到一个文件中, 开放的 函数 和 数据, 不以local标识,然后在其他文件中, 引用此模块, 使用模块名(一个命 ...
-
BZOJ3928 [Cerc2014] Outer space invaders
第一眼,我勒个去...然后看到n ≤ 300的时候就2333了 首先把时间离散化,则对于一个时间的区间,可以知道中间最大的那个一定要被选出来,然后把区间分成左右两份 于是区间DP就好了,注意用左开右开 ...
-
解决Ubuntu系统的每次开机重启后,resolv.conf清空的问题
问题情况描述如下: 普及知识: /etc/resolv.conf ,其实是一个Link .它其实指向的是 /run/resolvconf/resolv.conf. Ubuntu 有一个 reso ...
-
(剑指Offer)面试题33:把数组排成最小的数
题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路: 1.全 ...
-
jquery serialize的使用
serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. <!DOCTYPE html> <html lang="en"> <he ...
-
接着上一个版本在上一个分离access-token和ticket的版本
上代码: 本次修改将获取token和ticket分离出来,分别封装在函数中: 每个函数最后一个参数是一个回调参数: 回调函数的参数,是这一步中需要处理的结果; 结果怎么处理,根据传递进去的函数: va ...
-
关于WEB三层架构的思考
1.MVC设计思想 MVC程序设计思想是眼下比較流行的WEB开发的模式,当中,M(model)是模型.即JavaBean,用来封装和保存数据:V(view)是视图,即JSP.用来显示内容:C(cont ...
-
Imagine Cup 微软“创新杯”全球学生科技大赛
一. 介绍 微软创新杯微博:http://blog.sina.com.cn/u/1733906825 官方站点:https://www.microsoft.com/china/msdn/student ...
-
(入门篇 NettyNIO开发指南)第三章-Netty入门应用
作为Netty的第一个应用程序,我们依然以第2章的时间服务器为例进行开发,通过Netty版本的时间服务报的开发,让初学者尽快学到如何搭建Netty开发环境和!运行Netty应用程序. 如果你已经熟悉N ...
-
window.onload与$(document).ready()
window.onload是原生JS事件,$(document).ready()是Jquery实现的与其作用类似的事件. 二者区别如下: 1.执行时间不同 $(document).ready()是DO ...