最近需要用到CCA(CANONICAL CORRELATION ANALYSIS),典型相关分析, 所以查了一些资料,本文主要内容参考于UCLA的一个统计课:https://stats.oarc.ucla.edu/stata/dae/canonical-correlation-analysis/
典型相关分析 | 统计数据分析示例
典型相关分析用于识别和测量两组变量之间的关联。典型相关适用于多元回归的相同情况,但存在多个相互关联的结果变量。典型相关分析确定一组典型变量,即每组内变量的正交线性组合,可以最好地解释组内和组之间的可变性。
典型相关分析示例
示例 1. 一位研究人员收集了 600 名大学新生的三个心理变量、四个学术变量(标准化考试成绩)和性别的数据。她对一组心理变量如何与学术变量和性别相关感兴趣。特别是,研究人员对理解两组变量之间的关联需要多少维度(规范变量)感兴趣。
示例 2. 一位研究人员有兴趣探索来自两个多维人格测试(MMPI 和 NEO)的因素之间的关联。她对测试之间共有哪些维度以及它们之间共享多少差异感兴趣。她特别感兴趣的是寻找来自 NEO 的神经质维度是否可以解释两个测试之间的大量共享差异。
数据说明
对于我们的分析示例,我们将扩展示例 1,以调查心理测量与学业成就测量之间的关联。
我们有一个数据文件mmreg.dta,其中包含对八个变量的 600 个观察值。心理变量是控制点、自我概念和 动机。学术变量是阅读 ****(read)、写作(write)、 ****数学(math)和科学(science)的标准化测试。此外,变量female是一个零一指示变量,其中一个表示女学生。
summarize locus_of_control self_concept motivation
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
locus_of_c~l | 600 .0965333 .6702799 -2.23 1.36
self_concept | 600 .0049167 .7055125 -2.62 1.19
motivation | 600 .6608333 .3427294 0 1
summarize read write math science female
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
read | 600 51.90183 10.10298 28.3 76
write | 600 52.38483 9.726455 25.5 67.1
math | 600 51.849 9.414736 31.8 75.5
science | 600 51.76333 9.706179 26 74.2
female | 600 .545 .4983864 0 1
典型相关分析
下面我们使用canon命令进行典型相关分析。它需要用一对括号括起来的两组变量。我们将心理变量指定为第一组变量,将学术变量加上性别指定为第二组。为方便起见,第一组中的变量称为“u”变量,第二组中的变量称为“v”变量。
| 1 2 3
-------------+------------------------------
locus_of_c~l | 1.2538 -0.6215 -0.6617
self_concept | -0.3513 -1.1877 0.8267
motivation | 1.2624 2.0273 2.0002
--------------------------------------------
Raw coefficients for the second variable set
| 1 2 3
-------------+------------------------------
read | 0.0446 -0.0049 0.0214
write | 0.0359 0.0421 0.0913
math | 0.0234 0.0042 0.0094
science | 0.0050 -0.0852 -0.1098
female | 0.6321 1.0846 -1.7946
--------------------------------------------
----------------------------------------------------------------------------
Canonical correlations:
0.4641 0.1675 0.1040
好吧,其实忽略他的那些命令,如果要跑的话去上面我发的原文链接里面去安装。
其实这里主要是理解这个概念和例子就行了。下面给出正式的定义:
给定两个随机变量的集合
X
∈
R
n
×
d
X\in \mathbf{R}^{n\times d}
X∈Rn×d和
Y
∈
R
m
×
e
Y \in \mathbf{R}^{m \times e}
Y∈Rm×e, 和两个vector,
U
∈
R
d
,
V
∈
R
e
U\in \mathbf{R}^{d}, V \in \mathbf{R}^{e}
U∈Rd,V∈Re
arg max U , V c o r r ( X U , Y V ) \argmax_{U,V} corr(XU, YV) U,Vargmaxcorr(XU,YV)
也就是说,我们只要找到U,V,分别对X,Y的各个特征进行线性组合,使得变换后的两个向量的correlation最大,这里correlation比如采用Pearson correlation即可,那么求出来的corr值就是我们想要的值。
怎么解这个问题呢?
有一些技巧,下回再讲。