第三十七课 典型相关分析
典型相关分析(Canonical Correlation Analysis)是研究两组变量间相关关系的一种多元统计分析方法。它能够揭示两组变量之间的内在联系,真正反映两组变量间的线性相关情况。
典型相关分析
我们研究过两个随机变量间的相关,它们可以用相关系数表示。然而,在实际问题中常常会遇到要研究两组随机变量间和的相关关系。和可能是完全不同的,但是它们的线性函数可能存在密切的关系,这种密切的关系能反映和之间的相关关系。因此就要找出的一个线性组合及的一个线性组合,希望找到的和之间有最大可能的相关系数,以充分反映两组变量间的关系。这样就把研究两组随机变量间相关关系的问题转化为研究两个随机变量间的相关关系。如果一对变量(,)还不能完全刻划两组变量间的相关关系时,可以继续找第二对变量,希望这对变量在与第一对变量(,)不相关的情况下也具有尽可能大的相关系数。直到进行到找不到相关变量对时为止。这便引导出典型相关变量的概念。
典型相关系数与典型相关变量
设有两组随机变量和,假定它们都已经标准化了,即,,若记
此时它们的协方差矩阵(也是相关系数矩阵)为,
其中
实际上,我们要找
使和的相关系数达到最大。由于对任意常数,,,,有 (其中,),因而不妨假定
此时。在与条件下,使达到最大的与分别与和组成的新变量
称为第一对典型变量,其相关系数称为第一典型相关系数。若用一对变量还不足以完全反映两组变量的相关时,可以定义第二对典型变量,这时除要求,外,还要求,,和,在这些条件下使达到最大。一般地,第对典型变量定义如下:
称为第对典型变量,其系数向量与使达到最大,并且满足如下条件:
,此时称为第对典型相关系数。
求法
我们采用Lagrage乘子法,从开始逐一求、。下面仅以、的求法作一简述,以下假定是正定矩阵。记
其中、为Lagrage乘子,用、表示仅仅为了下面计算式的简单而已。将对、分别求偏导,并令其为0,再与约束条件联立,则、应满足以下方程组:
在式(6.3.6)的前二式两边左乘和,并利用式(37.6)的后二式有
由于,故有。再由(37.6)及的非奇异性知
将其代入(37.6),则
再由的非奇异性知
记,(6.3.10)表明是的特征根,是其对应的特征向量。又由式(37.7)知是与 的相关系数,要求其达到最大, 一定是的最大特征根,是最大特征根对应的特征向量;进而可由(37.8)求出。第一典型相关系数是的最大特征根的算术根。
其实也可证明是的最大特征根对应的特征向量。由于M1 与M2 有相同的非零特征根,因此此时求出的和直接从(37.8)求出的是一致的。
用同样方法可知是M小孩子的发型1的第二大的特征根对应的特征向量,可通过下式求出:
一般讲可求出M1 的个非零特征根,M1对应于这些特征根的特征向量分别记为、、…、,进而
j = 1,2, …,r,以、为系数可组成第对典型变量,。第对典型变量对应的相关系数是的算术根,这便是第个典型相关系数,j = 1,2, …,r,这里r ≤min(p ,q模糊的读音) 。
实际应用中,通常是未知的,已知的只是的个样品:
,,…,。
我们只能从样本去其估计、和。然后用相应的估计量代替中相应的未知参数矩阵,因此要考虑矩阵的非零特征根及相应的特征向量,有关的计算可按以前讨论的进行。
应注意的几个问题
典型相关是研究两组变量之间相关性的一种统计分析方法。与主成分分析一样,它也是一种降维技术。多重相关是典型相关的一个特例,简单相关是多重相关的一个特例。
第一对典型相关包含有最多的有关两组变量间相关的信息,第二对其次,其他对依次递减,各对典型相关所含的信息互不重复。
经标准化的两组变量间的典型相关系数与原始的两组变量间的相应典型相关系数是相同的。
典型变量的最大对数等于两组变量中较少一组的变量个数。
每个典型变量除在另一组里与其配对的那个典型变量外,它同所有其他典型变量变量均不相关。
第一对典型相关的大小至少同任一变量与对应的那组变量间的多重相关一样大。
至于选取多少对典型相关可通过检验来确定。
Cancorr典型相关分析过程
冈比亚鼠描述两组变量之间的相关性,可用典型相关过程cancorr完成。简单相关和多重相关都是典型相关的特殊情况,此时两组变量中有一组或两组只含一个变量。对于两组变量,如果一组变量用x表示,另一组变量用y表示,那么典型相关分析就是找出(>l)个变量的线性组合值与(>l)个变量的线性组合值,使两者之间的相关达到最大。
cancorr过程一般由下列语句控制:
proc cancorr data=数据集 <选项列表> ; |
var 变量列表 ; |
with 变量 ; |
partial 变量列表 ; |
freq 变量 ; |
weight 变量 ; |
by 变量列表; |
run ; |
|
通常只有var与with语句经常同proc cancorr语句一起使用。且with语句是必须的。其余语句是可选择的语句。
proc cancorr语句的<选项列表>。可以分成以下几类:
有关输出数据集选项.。
● out心博=输出数据集——存储所有的原始数据和典型相关变量得分。
● outstat=输出数据集——存储典型相关系数等统计数。
有关结果输出选项。
● all——所有输出项。
● noprint——不输出分析结果。
● short——只输出典型相关系数和多元分析统计数。
● simple——简单统计数。
● corr——相关系数。
● vname=变量名——为var语句的变量定义名称。
● vprefix=前缀名——为var语句的典型变量定义前缀。
● wname=变量名——为with语句的变量定义名称。
● wprefix=前缀名——为with语句的典型变量定义前缀。
有关多元回归选项。
● noint——模型中不包含回归截距。
● b——输出由回归分析得到的原始偏回归系数。
● stb——输出由回归分析得到的标准偏回归系数。
● smc——输出多重相关系数平方。
● t——对回归系数进行t检验。
其他语句类似corr过程。
实例分析
例37.1 某康复俱乐部对20名中年人测量了三项生理指标:体重(weight )、腰围(waist )、脉搏(pul )和三项训练指标:引体向上(chins )、起坐次数(situps )、跳跃次数(jumps )。其数据列于表37.1。试分析这两组变量间的相关性。
表37.1 某康复俱乐部测量的生理指标和训练指标
Obs | weight | waist | pul | chins | situps | jumps |
1 | 191 | 36 | 50 | 5 | 162 | 60 |
2 | 189 | 37 | 52 | 2 | 110 | 60 |
3 | 193 | 38 | 58 | 12 | 101 | 101 |
4 | 162 | 35 | 62 | 12 | 105 | 37 |
5 | 189 | 35 | 46 | 13 | 155 | 58 |
6 | 182 | 36 | 56 | 4 | 101 | 42 |
7 | 211 | 38 | 56 | 8 | 101 | 38 |
8 | 167 | 34 | 60 | 6 | 125 | 40 |
9 | 176 | 31 | 74 | 15 | 200 | 房屋结构设计40 |
10 | 154 | 33 | 56 | 17 | 251 | 250 |
11 | 169 | 34 | 50 | 17 | 120 | 38 |
12 | 166 | 33 | 52 | 13 | 210 | 115 |
13 | 154 | 34 | 64 | 14 | 215 | 105 |
14 | 247 | 46 | 50 | 1 | 50 | 50 |
15 | 193 | 36 | 46 | 6 | 70 | 31 |
16 | 202 | 37 | 62 | 12 | 210 | 120 |
17 | 176 | 37 | 54 | 4 | 60 | 25 |
18 | 157 | 32 | 52 | 11 | 230 | 80 |
永春佛手茶>评价党员19 | 156 | 33 | 54 | 15 | 225 | 73 |
20 | 138 | 33 | 68 | 2 | 110 | 43 |
| | | | | | |
建立输入数据集,程序如下:
data fit ; |
input weight waist pul chins situps jumps; |
cards; |
191 36 50 5 162 60 |
189 37 52 2 110 60 |
… … … … … … |
138 33 68 2 110 43 |
; |
run; |
|
数据步创建了康复俱乐部测试数据的SAS数据集,名为fit,它有20个观察,6个变量。
调用典型相关分析cancorr过程。
菜单操作方法为,选择Globals/SAS/Assist/Data analysis/multivariate/canonical correlatio
n analysis(典型相关分析)菜单命令。编程方法如下:
proc cancorr data=fit all vprefix=PHYS vname='PhysiologicalMeasurements' wprefix=EXER wname='Exercis'; |
var weight waist pul; |
with chins situps jumps; |
run; |
|
程序说明:cancorr过程用于对输入数据集fit做典型相关分析。选项all要求输出所有选择的计算结果。vprefix=定义了来自var语句的变量名的前缀为PHYS,即第一组变量的统一前缀名称为PHYS。vname=定义了来自var语句中第一组变量的标签名为PhysiologicalMeasurements。wprefix=和wname=对with语句中第二组变量名规定前缀为EXER和标签为Exercis。var语句列出了第一组变量的名称,with语句列出了第二组变量的名称。
程序运行后,主要的结果见表37.2、37.3、37.4和37.5所示。
表37.2 均值、标准差和相关系数
Means and Standard Deviations
3 Physiological Measurements
3 Exercis
20 Obrvations
Variable Mean Std Dev
WEIGHT 178.600000 24.690505
WAIST 35.400000 3.201973
PULSE 56.100000 7.210373