精华内容
下载资源
问答
  • 典型相关分析及R应用

    万次阅读 2018-11-04 23:35:49
    什么是典型相关分析 典型相关分析基本架构 简单相关分析 多变量相关分析 典型相关分析 典型相关分析的基本原理 R实现 20名中年人的生理指标和训练指标 广州省能源消费量与经济增长之间的典型相关分析 什么...

    目录

    什么是典型相关分析

    典型相关分析基本架构

    简单相关分析

    多变量相关分析

    典型相关分析

    典型相关分析的基本原理

    R实现

    20名中年人的生理指标和训练指标

    广州省能源消费量与经济增长之间的典型相关分析


    什么是典型相关分析

    用于探讨一组解释变量-亦即预测变量与一组反应变量间的关系即是典型相关分析-canonical correlation analysis,比如在体育训练中,考察运动员身体的各项指标与训练成绩之间的关系,典型相关分析可以说是复相关分析的延伸。

    典型相关分析基本架构

    简单相关分析

    多变量相关分析

    典型相关分析

    典型相关分析的基本原理

    假设有两组变量,采用类似主成分分析的做法,在每一组变量中选择若干个有代表性的综合指标-变量的线性组合,通过研究两组的综合指标之间的关系来反映两组变量之间的相关关系,基本原理如下:首先在魅族变量中找出变量的线性组合,使其具有最大相关性,然后再每组变量中找出第二对线性组合,使其分别与第一对线性组合不相关,而第二对线性组合本身具有最大的相关性,如此继续下去,直到两组变量之间的相关性被提取完毕。

    R实现

    20名中年人的生理指标和训练指标

    x1	x2	x3	y1	y2	y3
    191	36	50	5	162	60
    189	37	52	2	110	60
    193	38	58	12	101	101
    162	35	62	12	105	37
    189	35	46	13	155	58
    182	36	56	4	101	42
    211	38	56	8	101	38
    167	34	60	6	125	40
    176	31	74	15	200	40
    154	33	56	17	251	250
    169	34	50	17	120	38
    166	33	52	13	210	115
    154	34	64	14	215	105
    247	46	50	1	50	50
    193	36	46	6	70	31
    202	37	62	12	210	120
    176	37	54	4	60	25
    157	32	52	11	230	80
    156	33	54	15	225	73
    138	33	68	2	110	43
    

    计算相关系数矩阵

    > X=read.table("clipboard",header=T)#读取例11.1数据
    > (R=cor(X))
               x1         x2          x3         y1         y2          y3
    x1  1.0000000  0.8702435 -0.36576203 -0.3896937 -0.4930836 -0.22629556
    x2  0.8702435  1.0000000 -0.35289213 -0.5522321 -0.6455980 -0.19149937
    x3 -0.3657620 -0.3528921  1.00000000  0.1506480  0.2250381  0.03493306
    y1 -0.3896937 -0.5522321  0.15064802  1.0000000  0.6957274  0.49576018
    y2 -0.4930836 -0.6455980  0.22503808  0.6957274  1.0000000  0.66920608
    y3 -0.2262956 -0.1914994  0.03493306  0.4957602  0.6692061  1.00000000
    > 

    求特征值和典型相关系数

    > R11=R[1:3,1:3]
    > R12=R[1:3,4:6]
    > R21=R[4:6,1:3]
    > R22=R[4:6,4:6]
    > A=solve(R11)%*%R12%*%solve(R22)%*%R21
    > ev=eigen(A)$values# 特征值
    > ev   
    [1] 0.632992335 0.040222726 0.005266446
    > sqrt(ev)#典型相关系数
    [1] 0.79560815 0.20055604 0.07257029
    > 

    典型相关系数检验,确定典型变量

    > xy=scale(X)#数据标准化 
    > ca=cancor(xy[,1:3],xy[,4:6])#典型相关分析 
    > ca$cor#典型相关系数 
    [1] 0.79560815 0.20055604 0.07257029
    > ca$xcoef#第一组变量的典型载荷
              [,1]        [,2]        [,3]
    x1 -0.17788841 -0.43230348  0.04381432
    x2  0.36232695  0.27085764 -0.11608883
    x3 -0.01356309 -0.05301954 -0.24106633
    > ca$ycoef#第二组变量的典型载荷
              [,1]        [,2]        [,3]
    y1 -0.08018009 -0.08615561  0.29745900
    y2 -0.24180670  0.02833066 -0.28373986
    y3  0.16435956  0.24367781  0.09608099
    > 

    检验

    > library(mvstats)   
    > cancor.test(xy[,1:3],xy[,4:6],plot=T)#典型相关分析及检验作图
    
    $`cor`
    [1] 0.79560815 0.20055604 0.07257029
    
    $xcoef
              [,1]        [,2]        [,3]
    x1 -0.17788841 -0.43230348  0.04381432
    x2  0.36232695  0.27085764 -0.11608883
    x3 -0.01356309 -0.05301954 -0.24106633
    
    $ycoef
              [,1]        [,2]        [,3]
    y1 -0.08018009 -0.08615561  0.29745900
    y2 -0.24180670  0.02833066 -0.28373986
    y3  0.16435956  0.24367781  0.09608099
    
    $xcenter
               x1            x2            x3 
    -5.551115e-18 -1.942890e-17  1.821460e-17 
    
    $ycenter
               y1            y2            y3 
    -2.775558e-17  3.330669e-17  3.365364e-17 
    
    cancor test: 
                  r          Q          P
    [1,] 0.79560815 16.2549575 0.06174456
    [2,] 0.20055604  0.6718487 0.95475464
    [3,] 0.07257029  0.0712849 0.78947507
    > 

    广州省能源消费量与经济增长之间的典型相关分析

    年份	x1	x2	x3	x4	y1	y2	y3	y4	y5	y6
    1984	867.7	483.52	662.35	30	145.25	154.33	33.22	125.93	5576.6	818.37
    1985	955.2	531.74	700.16	30.03	171.87	185.81	44.01	175.69	5656.6	954.12
    1986	1019.3	624.53	797.59	231.83	188.37	208.46	47.42	223.28	5740.7	1102.1
    1987	1144.4	678.17	944.6	175.46	232.14	273.77	56.58	284.2	5832.1	1320.9
    1988	1451.1	756.01	1017.6	165.54	306.5	386.35	73.82	388.7	5928.3	1583.1
    1989	1575.2	893.28	1112.6	375.61	351.73	464.06	90.07	475.53	6025	2086.2
    1990	1326	919.61	1313.7	474.8	384.59	523.42	92.45	558.58	6246.3	2303.2
    1991	1459.2	1055.7	1515.5	517.89	416	675.55	107.12	694.63	6348.9	2752.2
    1992	1535.9	1149.4	1817	1046.3	465.83	899.28	201.04	881.39	6463.2	3476.7
    1993	1693.8	1173.9	2174.5	1779.9	559.67	1380.2	320.73	1171.3	6581.6	4632.4
    1994	1749.5	1328.3	2630.8	1605.2	694.65	1847.6	394.37	1580	6692	6367.1
    1995	1906.8	1476	2803.7	1575.5	868.99	2413.8	462.91	1988.2	6788.7	7438.7
    1996	1804.4	1506.2	3072	2354.6	941.73	2788.8	480.53	2308.1	6896.8	8157.8
    1997	1756.3	1472.6	3090.8	3064.6	986.82	3158.7	489.08	2680.9	7013.7	8561.7
    1998	1681.3	1737.9	3273.8	2954.2	1004.9	3463.1	528.85	2922.2	7115.6	8839.7
    1999	1541.8	1912.5	3454.3	2668.3	1021.3	3705.9	558.44	3178.7	7298.9	9125.9
    2000	1552.7	2052.1	4122.4	2757.4	1000.1	4295	573.72	3793.4	7498.5	9761.6
    2001	1554.3	2209.2	4506.3	3662.6	1004.4	4732.4	609.2	4301.8	7565.3	10415
    2002	1574.9	2346.1	5343.9	4211.2	1032.8	5288.5	647.1	4801.3	7649.3	11137
    
    > d.2=read.table("clipboard",header=T)#选取例11.2数据
    > cancor.test(d.2[,1:4],d.2[5:10],plot=T)
    
    $`cor`
    [1] 0.9990222 0.9549215 0.7372625 0.4267113
    
    $xcoef
              [,1]       [,2]       [,3]        [,4]
    x1 -0.01398338  0.2627242 -0.1633945 -0.05500050
    x2  0.11886915  0.4359084  1.5136720 -0.02025096
    x3  0.09035694 -0.7627282 -1.6045267 -0.96535666
    x4  0.03687362  0.1724089  0.1985098  1.04168316
    
    $ycoef
              [,1]       [,2]        [,3]       [,4]       [,5]       [,6]
    y1 -0.05900682  1.7711541  1.05700423  1.5686538  -2.689797 -1.4397779
    y2 -0.22982193 -5.0796599  3.72100577  1.5689112  12.636121  6.4680292
    y3  0.05815256  1.2193116  0.09171477  0.9209067  -1.508867 -3.9679901
    y4  0.32722774  4.4699954 -2.21299707 -0.2103381 -12.579865 -6.8854323
    y5  0.08585993 -0.3786835  0.95433947 -0.8581875   2.151352  0.7645358
    y6  0.05439361 -1.9202108 -3.59564677 -2.9345146   1.884370  4.9775014
    
    $xcenter
               x1            x2            x3            x4 
     3.418318e-16 -4.382459e-17 -8.034509e-17 -9.641410e-17 
    
    $ycenter
               y1            y2            y3            y4            y5 
    -5.551115e-17  3.871172e-17 -9.641410e-17  7.888427e-17  3.494098e-16 
               y6 
     8.326673e-17 
    
    cancor test: 
                 r          Q            P
    [1,] 0.9990222 120.647898 7.438494e-15
    [2,] 0.9549215  39.264245 5.850938e-04
    [3,] 0.7372625  10.345472 2.416105e-01
    [4,] 0.4267113   1.909441 5.914135e-01
    > 

     经检验在0.05水平上,有两个典型相关是显著的。于是可得前两对典型变量的线性组合:

     -0.01398338x1 + 0.11886915x2 +  0.09035694x3 + 0.03687362x4 = V1

     -0.05900682y1 +  -0.22982193y2 +  0.05815256y3 +  0.32722774y4 +  0.08585993y5 +   0.05439361y6 = U1

    …………

    解释如下:

    r1 =  0.9990222,说明u1与v1之间具有高度的相关关系,尤其是拥有绝对值较大的权系数,而各自的线性组合中变量大多为正数,说明能源消耗越高,经济增长越快。油品,电力,进口能源拥有较大载荷,说明油品,电力是能源消费量的重要指标,在能源消费中占主导地位,x4较x1较大,说明随着经济的发展,本地能源不足以满足经济发展需求,进口能源逐渐凸显其重要性。

    展开全文
  • 典型相关分析研究与应用,李雪,林和平,经典典型相关分析方法在解决时间序列问题时存在不足:不能及时、准确地反映样本数据的时间特征及变化趋势。针对上述问题,本文基
  • 典型相关分析

    千次阅读 2018-07-08 21:51:27
    转载地址:https://blog.csdn.net/mbx8x9u/article/details/78824216前言典型关联分析(Canonical Correlation Analysis,简称CCA)是最常用的挖掘数据关联关系的算法之一。比如我们拿到两组数据,第一组是人身高和...

    转载地址:https://blog.csdn.net/mbx8x9u/article/details/78824216

    前言

    典型关联分析(Canonical Correlation Analysis,简称CCA)是最常用的挖掘数据关联关系的算法之一。比如我们拿到两组数据,第一组是人身高和体重的数据,第二组是对应的跑步能力和跳远能力的数据。那么我们能不能说这两组数据是相关的呢?CCA可以帮助我们分析这个问题。

    CCA概述

    在数理统计里面,都知道相关系数这个概念。假设有两组一维的数据集X和Y,则相关系数ρ的定义为:

    640?wx_fmt=png&wxfrom=5&wx_lazy=1

    其中cov(X,Y)是X和Y的协方差,而D(X),D(Y)分别是X和Y的方差。相关系数ρ的取值为[-1,1], ρ的绝对值越接近于1,则X和Y的线性相关性越高。越接近于0,则X和Y的线性相关性越低。


    虽然相关系数可以很好的帮我们分析一维数据的相关性,但是对于高维数据就不能直接使用了。如上所述,如果X是包括人身高和体重两个维度的数据,而Y是包括跑步能力和跳远能力两个维度的数据,就不能直接使用相关系数的方法。那我们能不能变通一下呢?CCA给了我们变通的方法。


    CCA使用的方法是将多维的X和Y都用线性变换为1维的X'和Y',然后再使用相关系数来看X'和Y'的相关性。将数据从多维变到1位,也可以理解为CCA是在进行降维,将高维数据降到1维,然后再用相关系数进行相关性的分析。


    CCA算法思想

    上面提到CCA是将高维的两组数据分别降维到1维,然后用相关系数分析相关性。但是有一个问题是,降维的标准是如何选择的呢?回想下主成分分析PCA,降维的原则是投影方差最大;再回想下线性判别分析LDA,降维的原则是同类的投影方差小,异类间的投影方差大。对于我们的CCA,它选择的投影标准是降维到1维后,两组数据的相关系数最大。


    假设数据集是X和Y,X为n1×m的样本矩阵,Y为n2×m的样本矩阵.其中m为样本个数,而n1,n2分别为X和Y的特征维度。对于X矩阵,将其投影到1维,对应的投影向量为a, 对于Y矩阵,将其投影到1维,对应的投影向量为b, 这样X ,Y投影后得到的一维向量分别为X',Y'。我们有

    0?wx_fmt=png

    CCA的优化目标是最大化ρ(X′,Y′),得到对应的投影向量a,b,即

    0?wx_fmt=png

    在投影前,一般会把原始数据进行标准化,得到均值为0而方差为1的数据X和Y。这样我们有:

    0?wx_fmt=png

    由于X,Y的均值均为0,则

    0?wx_fmt=png

    令SXY=cov(X,Y),则优化目标可以转化为:

    0?wx_fmt=png

    由于分子分母增大相同的倍数,优化目标结果不变,我们可以采用和SVM类似的优化方法,固定分母,优化分子,具体的转化为

    0?wx_fmt=png

    进而CCA算法的目标最终转化为一个凸优化过程,只要求出了这个优化目标的最大值,就是前面提到的多维X和Y的相关性度量,而对应的a,b则为降维时的投影向量。


    这个函数优化一般有两种方法,第一种是奇异值分解SVD,第二种是特征分解,两者得到的结果一样


    SVD求解CCA

    对于上面的优化目标,可以做一次矩阵标准化后在使用SVD来求解。


    首先令

    0?wx_fmt=png

    进而

    0?wx_fmt=png

    优化目标变成下式:

    0?wx_fmt=png


    0?wx_fmt=png

    可以看出,SVD的求解方式非常简洁方便。但如果不熟悉SVD的话,也可以用传统的拉格朗日函数加上特征分解来完成这个函数的优化。


    特征值分解求CCA

    特征分解方式比较传统,利用拉格朗日函数,优化目标转化为最大化下式:

    0?wx_fmt=png

    分别对a,b求导并令结果为0得:

    0?wx_fmt=png

    进而

    0?wx_fmt=png


    现在拉格朗日系数就是我们要优化的目标。继续将上面的两个式子做整理得:

    0?wx_fmt=png

    将上面第二个式子带入第一个式子得到

    0?wx_fmt=png

    要求最大的相关系数λ,只需要对上面的矩阵做特征分解,找出最大的特征值取平方根即可,此时最大特征值对应的特征向量即为X的线性系数a。同样的办法,可以找到最大特征值对应的特征向量即为Y的线性系数b。


    可以看出特征分解的方法要比SVD复杂,但是两者求得的结果其实是等价的,只要利用SVD和特征分解之间的关系就很容易发现两者最后的结果相同。


    CCA算法流程

    对CCA算法流程做一个归纳,以SVD方法为例:


    输入:各为m个的样本X和Y,X和Y的维度都大于1

    输出X,Y的相关系数ρ,X和Y的线性系数向量a和b


    流程

    1)计算X的方差SXX, Y的方差SYY,X和Y的协方差SXY

    2)  计算矩阵

    0?wx_fmt=png

    3)对矩阵M进行奇异值分解,得到最大的奇异值ρ,和最大奇异值对应的左右奇异向量

    4)  计算X和Y的线性系数向量a和b,

    0?wx_fmt=png


    总结

    CCA算法广泛的应用于数据相关度的分析,同时还是偏最小二乘法的基础。但是由于它依赖于数据的线性表示,当我们的数据无法线性表示时,CCA就无法使用,此时我们可以利用核函数的思想,将数据映射到高维后,再利用CCA的思想降维到1维,求对应的相关系数和线性关系,这个算法一般称为KCCA。此外,在算法里只找了相关度最大的奇异值或者特征值,作为数据的相关系数,实际上我们也可以像PCA一样找出第二大奇异值,第三大奇异值,。。。得到第二相关系数和第三相关系数。然后对数据做进一步的相关性分析。但是一般的应用来说,找出第一相关系数就可以了。


    欢迎分享给他人让更多的人受益

    0?wx_fmt=png

    参考:

    1. 周志华《机器学习》

    2. Neural Networks and Deep Learning by By Michael Nielsen

    3. 博客园

      http://www.cnblogs.com/pinard/p/6288716.html

    4. 李航《统计学习方法》

    5. Deep Learning, book by Ian Goodfellow, Yoshua Bengio, and Aaron Courville

    展开全文
  • R语言典型相关分析

    千次阅读 2017-07-11 14:36:00
    参考资料《统计建模与R软件》典型相关的数学模型设 X=(X1,X2,…,Xp)T,Y=(Y1,Y2,…,Yq)TX=(X_1,X_2,\dots ,X_p)^T , Y=(Y_1,Y_2,\dots , Y_q)^T 为两条随机向量, 我们希望找到向量 a,ba,b 使得 U=aTX,V=aTY,ρ(U,V)...

    参考资料《统计建模与R软件》

    典型相关的数学模型

    X=(X1,X2,,Xp)T,Y=(Y1,Y2,,Yq)T 为两条随机向量, 我们希望找到向量 a,b 使得 U=aTX,V=aTY,ρ(U,V) ,由于这样的向量有多组,我们加一个约束
    Var(U)=Var(V)=1 这就变成了一个规划问题,我们可以求解(证明方法见参考资料P546)
    类似的对于 ak,bk,Uk=aTkX,Vk=bkY 使得 maxρ(Uk,Vk),Var(Uk)=Var(VK)=1 成为第 k 个典型相关系数.

    计算


    M1=Σ111Σ12Σ122Σ21M2=Σ122Σ21Σ111Σ12

    相关系数分别为
    ρ21ρ22,ρ2min(p,q) 分别为第 k 个相关系数,他们是 M1,M2 的特征值, ak,bk 为相应的特征向量.

    估计

    对于样本的相关阵往往不好知道确切值,我们可以计算 Σ 的最大似然估计去计算 M

    R语言实现

    > test<-data.frame(
    +     X1=c(191, 193, 189, 211, 176, 169, 154, 193, 176, 156,
    +          189, 162, 182, 167, 154, 166, 247, 202, 157, 138),
    +     X2=c(36, 38, 35, 38, 31, 34, 34, 36, 37, 33,
    +          37, 35, 36, 34, 33, 33, 46, 37, 32, 33),
    +     X3=c(50, 58, 46, 56, 74, 50, 64, 46, 54, 54,
    +          52, 62, 56, 60, 56, 52, 50, 62, 52, 68),
    +     Y1=c( 5, 12, 13,  8, 15, 17, 14,  6,  4, 15,
    +           2, 12,  4,  6, 17, 13,  1, 12, 11,  2),
    +     Y2=c(162, 101, 155, 101, 200, 120, 215,  70,  60, 225,
    +          110, 105, 101, 125, 251, 210,  50, 210, 230, 110),
    +     Y3=c(60, 101, 58, 38, 40, 38, 105, 31, 25, 73,
    +          60, 37, 42, 40, 250, 115, 50, 120, 80, 43)
    + )
    
    # 相关分析
    > ca <- cancor(scale(test)[,1:3],scale(test)[,4:6])
    > ca
    $cor #相关系数
    [1] 0.79560815 0.20055604 0.07257029
    #x的系数
    $xcoef
              [,1]        [,2]        [,3]
    X1 -0.17788841 -0.43230348 -0.04381432
    X2  0.36232695  0.27085764  0.11608883
    X3 -0.01356309 -0.05301954  0.24106633
    #y的系数
    $ycoef
              [,1]        [,2]        [,3]
    Y1 -0.08018009 -0.08615561 -0.29745900
    Y2 -0.24180670  0.02833066  0.28373986
    Y3  0.16435956  0.24367781 -0.09608099
    
    $xcenter
               X1            X2            X3
     2.289835e-16  4.315992e-16 -1.778959e-16
    
    $ycenter
               Y1            Y2            Y3
     1.471046e-16 -1.776357e-16  4.996004e-17

    相关分析变量及系数

    > U <- as.matrix(scal_test)[,1:3] %*% ca$xcoef
    > V <- as.matrix(scal_test)[,4:6] %*% ca$ycoef
    > U
                  [,1]         [,2]        [,3]
     [1,] -0.009969788 -0.121501078 -0.20419401
     [2,]  0.186887139 -0.046163013  0.13223387
     [3,] -0.101193522 -0.141661215 -0.37063341
     [4,]  0.060964112 -0.346616669  0.03342558
     [5,] -0.512831098 -0.458299483  0.44354554
     [6,] -0.077780541  0.094512914 -0.23766491
     [7,]  0.003955674  0.254201102  0.25701898
     [8,] -0.016855040 -0.127105942 -0.34147617
     [9,]  0.203734347  0.196310283 -0.00758741
    [10,] -0.104800666  0.208124774 -0.11711820
    [11,]  0.113834968 -0.016598895 -0.09752299
    [12,]  0.063237343  0.213427257  0.21221151
    [13,]  0.043586465 -0.008040409  0.01237648
    [14,] -0.082181602  0.055998387  0.10021686
    [15,] -0.094153311  0.228436101 -0.04670258
    [16,] -0.173085857  0.047742282 -0.20173015
    [17,]  0.718139369 -0.256090676  0.05898572
    [18,]  0.001362964 -0.317746855  0.21374067
    [19,] -0.221400693  0.120731486 -0.22201469
    [20,] -0.001450263  0.420339649  0.38288931
    > V
                 [,1]         [,2]         [,3]
     [1,] -0.02909460  0.031027608  0.344302062
     [2,]  0.23190170  0.084158321 -0.403047146
     [3,] -0.12979237 -0.112030106 -0.133855684
     [4,]  0.09063830 -0.150034732 -0.059921010
     [5,] -0.39173848 -0.209788233 -0.008592976
     [6,] -0.11930102 -0.288113119 -0.480186091
     [7,] -0.22619839  0.122191086 -0.006091381
     [8,]  0.21834490 -0.164740837 -0.074849953
     [9,]  0.26809619 -0.165185828  0.003582504
    [10,] -0.38258341 -0.041647344  0.042948559
    [11,]  0.21737727  0.056375494  0.277291769
    [12,]  0.01130349 -0.218167527 -0.264987331
    [13,]  0.16412985 -0.065834278  0.157664098
    [14,]  0.03462910 -0.097067107  0.157711712
    [15,]  0.05393456  0.778658842 -0.283334468
    [16,] -0.15965387  0.183746435  0.008766141
    [17,]  0.43237930 -0.002016448  0.080198839
    [18,] -0.12845980  0.223805116  0.055667431
    [19,] -0.31879992  0.059073577  0.277587462
    [20,]  0.16288721 -0.024410919  0.309145462

    画图

    这里写图片描述

    可以看出 U[,1]V[,1] 几乎成线性

    展开全文
  • 典型相关分析相关资料

    万次阅读 多人点赞 2012-05-20 17:29:14
    典型相关分析的基本思想 Canonical Correlation Analysis   CCA典型相关分析 (canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理...

    典型相关分析的基本思想 Canonical Correlation Analysis

     

    CCA典型相关分析
    (canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理是:为了从总体上把握两组指标之间的相关关系,分别在两组变量中提取有代表性的两个综合变量U1和V1(分别为两个变量组中各变量的线性组合),利用这两个综合变量之间的相关关系来反映两组指标之间的整体相关性。

     

    Canonical Correlation Analysis典范相关分析/Canonical Correspondence Analysis典范对应分析

     

    简单相关系数描述两组变量的相关关系的缺点:只是孤立考虑单个X与单个Y间的相关,没有考虑X、Y变量组内部各变量间的相关。两组间有许多简单相关系数,使问题显得复杂,难以从整体描述。典型相关是简单相关、多重相关的推广。典型相关是研究两组变量之间相关性的一种统计分析方法。也是一种降维技术。
    1936年,Hotelling提出典型相关分析。考虑两组变量的线性组合, 并研究它们之间的相关系数p(u,v).在所有的线性组合中, 找一对相关系数最大的线性组合, 用这个组合的单相关系数来表示两组变量的相关性, 叫做两组变量的典型相关系数, 而这两个线性组合叫做一对典型变量。在两组多变量的情形下, 需要用若干对典型变量才能完全反映出它们之间的相关性。下一步, 再在两组变量的与u1,v1不相关的线性组合中, 找一对相关系数最大的线性组合, 它就是第二对典型变量, 而且p(u2,v2)就是第二个典型相关系数。这样下去, 可以得到若干对典型变量, 从而提取出两组变量间的全部信息。
    典型相关分析的实质就是在两组随机变量中选取若干个有代表性的综合指标(变量的线性组合), 用这些指标的相关关系来表示原来的两组变量的相关关系。这在两组变量的相关性分析中, 可以起到合理的简化变量的作用; 当典型相关系数足够大时, 可以像回归分析那样, 由- 组变量的数值预测另一组变量的线性组合的数值。

     

     

    典型关联分析(Canonical Correlation Analysis)

    [pdf版本] 典型相关分析.pdf

    1. 问题

    在线性回归中,我们使用直线来拟合样本点,寻找n维特征向量X和输出结果(或者叫做label)Y之间的线性关系。其中clip_image002clip_image004。然而当Y也是多维时,或者说Y也有多个特征时,我们希望分析出X和Y的关系。

    当然我们仍然可以使用回归的方法来分析,做法如下:

    假设clip_image002[1]clip_image006,那么可以建立等式Y=AX如下

    clip_image008

    其中clip_image010,形式和线性回归一样,需要训练m次得到m个clip_image012

    这样做的一个缺点是,Y中的每个特征都与X的所有特征关联,Y中的特征之间没有什么联系。

    我们想换一种思路来看这个问题,如果将X和Y都看成整体,考察这两个整体之间的关系。我们将整体表示成X和Y各自特征间的线性组合,也就是考察clip_image014clip_image016之间的关系。

    这样的应用其实很多,举个简单的例子。我们想考察一个人解题能力X(解题速度clip_image018,解题正确率clip_image020)与他/她的阅读能力Y(阅读速度clip_image022,理解程度clip_image024)之间的关系,那么形式化为:

    clip_image026 clip_image028

    然后使用Pearson相关系数

    clip_image030

    来度量u和v的关系,我们期望寻求一组最优的解a和b,使得Corr(u, v)最大,这样得到的a和b就是使得u和v就有最大关联的权重。

    到这里,基本上介绍了典型相关分析的目的。

    2. CCA表示与求解

    给定两组向量clip_image032clip_image034(替换之前的x为clip_image032[1],y为clip_image034[1]),clip_image032[2]维度为clip_image036clip_image034[2]维度为clip_image038,默认clip_image040。形式化表示如下:

    clip_image042

    clip_image044是x的协方差矩阵;左上角是clip_image032[3]自己的协方差矩阵;右上角是clip_image046;左下角是clip_image048,也是clip_image050的转置;右下角是clip_image034[3]的协方差矩阵。

    与之前一样,我们从clip_image032[4]clip_image034[4]的整体入手,定义

    clip_image052 clip_image054

    我们可以算出u和v的方差和协方差:

    clip_image056 clip_image058 clip_image060

    上面的结果其实很好算,推导一下第一个吧:

    clip_image062

    最后,我们需要算Corr(u,v)了

    clip_image064

    我们期望Corr(u,v)越大越好,关于Pearson相关系数,《数据挖掘导论》给出了一个很好的图来说明:

    clip_image066

    横轴是u,纵轴是v,这里我们期望通过调整a和b使得u和v的关系越像最后一个图越好。其实第一个图和最后一个图有联系的,我们可以调整a和b的符号,使得从第一个图变为最后一个。

    接下来我们求解a和b。

    回想在LDA中,也得到了类似Corr(u,v)的公式,我们在求解时固定了分母,来求分子(避免a和b同时扩大n倍仍然符号解条件的情况出现)。这里我们同样这么做。

    这个优化问题的条件是:

    Maximize clip_image068

    Subject to: clip_image070

    求解方法是构造Lagrangian等式,这里我简单推导如下:

    clip_image072

    求导,得

    clip_image074

    clip_image076

    令导数为0后,得到方程组:

    clip_image078

    clip_image080

    第一个等式左乘clip_image082,第二个左乘clip_image084,再根据clip_image086,得到

    clip_image088

    也就是说求出的clip_image090即是Corr(u,v),只需找最大clip_image090[1]即可。

    让我们把上面的方程组进一步简化,并写成矩阵形式,得到

    clip_image092

    clip_image094

    写成矩阵形式

    clip_image096

    clip_image098

    那么上式可以写作:

    clip_image100

    显然,又回到了求特征值的老路上了,只要求得clip_image102的最大特征值clip_image104,那么Corr(u,v)和a和b都可以求出。

    在上面的推导过程中,我们假设了clip_image106clip_image108均可逆。一般情况下都是可逆的,只有存在特征间线性相关时会出现不可逆的情况,在本文最后会提到不可逆的处理办法。

    再次审视一下,如果直接去计算clip_image102[1]的特征值,复杂度有点高。我们将第二个式子代入第一个,得

    clip_image110

    这样先对clip_image112求特征值clip_image114和特征向量clip_image116,然后根据第二个式子求得b。

    待会举个例子说明求解过程。

    假设按照上述过程,得到了clip_image090[2]最大时的clip_image118clip_image120。那么clip_image118[1]clip_image120[1]称为典型变量(canonical variates),clip_image090[3]即是u和v的相关系数。

    最后,我们得到u和v的等式为:

    clip_image122 clip_image124

    我们也可以接着去寻找第二组典型变量对,其最优化条件是

    Maximize clip_image126

    Subject to: clip_image128

    clip_image130

    其实第二组约束条件就是clip_image132

    计算步骤同第一组计算方法,只不过是clip_image090[4]clip_image112[1]的第二大特征值。

    得到的clip_image134clip_image136其实也满足

    clip_image138 clip_image140

    总结一下,i和j分别表示clip_image142clip_image144得到结果

    clip_image146

    clip_image148

    3. CCA计算例子

    我们回到之前的评价一个人解题和其阅读能力的关系的例子。假设我们通过对样本计算协方差矩阵得到如下结果:

    clip_image150

    clip_image152

    然后求clip_image112[2],得

    clip_image154

    这里的A和前面的clip_image156中的A不是一回事(这里符号有点乱,不好意思)。

    然后对A求特征值和特征向量,得到

    clip_image158

    然后求b,之前我们说的方法是根据clip_image160求b,这里,我们也可以采用类似求a的方法来求b。

    回想之前的等式

    clip_image092[1]

    clip_image094[1]

    我们将上面的式子代入下面的,得

    clip_image162

    然后直接对clip_image164求特征向量即可,注意clip_image164[1]clip_image112[3]的特征值相同,这个可以自己证明下。

    不管使用哪种方法,

    clip_image166

    clip_image168

    这里我们得到a和b的两组向量,到这还没完,我们需要让它们满足之前的约束条件

    clip_image170

    这里的clip_image172应该是我们之前得到的VecA中的列向量的m倍,我们只需要求得m,然后将VecA中的列向量乘以m即可。

    clip_image174

    这里的clip_image176是VecA的列向量。

    clip_image178

    因此最后的a和b为:

    clip_image180

    第一组典型变量为

    clip_image182

    相关系数

    clip_image184

    第二组典型变量为

    clip_image186

    相关系数

    clip_image188

    这里的clip_image190(解题速度),clip_image192(解题正确率),clip_image194(阅读速度),clip_image196(阅读理解程度)。他们前面的系数意思不是特征对单个u或v的贡献比重,而是从u和v整体关系看,当两者关系最密切时,特征计算时的权重。

    4. Kernel Canonical Correlation Analysis(KCCA)

    通常当我们发现特征的线性组合效果不够好或者两组集合关系是非线性的时候,我们会尝试核函数方法,这里我们继续介绍Kernel CCA。

    在《支持向量机-核函数》那一篇中,大致介绍了一下核函数,这里再简单提一下:

    当我们对两个向量作内积的时候

    clip_image198

    我们可以使用clip_image200clip_image202来替代clip_image204clip_image206,比如原来的clip_image204[1]特征向量为clip_image208,那么

    我们可以定义

    clip_image210

    如果clip_image202[1]clip_image200[1]的构造一样,那么

    clip_image212

    clip_image214

    这样,仅通过计算x和y的内积的平方就可以达到在高维空间(这里为clip_image216)中计算clip_image218clip_image220内积的效果。

    由核函数,我们可以得到核矩阵K,其中

    clip_image222

    即第clip_image224行第clip_image226列的元素是第clip_image224[1]个和第clip_image226[1]个样例在核函数下的内积。

    一个很好的核函数定义:

    clip_image228

    其中样例x有n个特征,经过clip_image218[1]变换后,从n维特征上升到了N维特征,其中每一个特征是clip_image230

    回到CCA,我们在使用核函数之前

    clip_image232 clip_image234

    这里假设x和y都是n维的,引入核函数后,clip_image236clip_image238变为了N维。

    使用核函数后,u和v的公式为:

    clip_image240

    clip_image242

    这里的c和d都是N维向量。

    现在我们有样本clip_image244,这里的clip_image246表示样本x的第i个样例,是n维向量。

    根据前面说过的相关系数,构造拉格朗日公式如下:

    clip_image248

    其中

    clip_image250

    clip_image252

    然后让L对a求导,令导数等于0,得到(这一步我没有验证,待会从宏观上解释一下)

    clip_image254

    同样对b求导,令导数等于0,得到

    clip_image256

    求出c和d干嘛呢?c和d只是clip_image258的系数而已,按照原始的CCA做法去做就行了呗,为了再引入clip_image260clip_image262

    回答这个问题要从核函数的意义上来说明。核函数初衷是希望在式子中有clip_image264,然后用K替换之,根本没有打算去计算出实际的clip_image258[1]。因此即是按照原始CCA的方式计算出了c和d,也是没用的,因为根本有没有实际的clip_image258[2]让我们去做clip_image266。另一个原因是核函数比如高斯径向基核函数可以上升到无限维,N是无穷的,因此c和d也是无穷维的,根本没办法直接计算出来。我们的思路是在原始的空间中构造出权重clip_image260[1]clip_image262[1],然后利用clip_image258[3]clip_image260[2]clip_image262[2]上升到高维,他们在高维对应的权重就是c和d。

    虽然clip_image260[3]clip_image262[3]是在原始空间中(维度为样例个数M),但其作用点不是在原始特征上,而是原始样例上。看上面得出的c和d的公式就知道。clip_image260[4]通过控制每个高维样例的权重,来控制c。

    好了,接下来我们看看使用clip_image260[5]clip_image262[4]后,u和v的变化

    clip_image268

    clip_image270

    clip_image272表示可以将第i个样例上升到的N维向量,clip_image274意义可以类比原始CCA的x。

    鉴于这样表示接下来会越来越复杂,改用矩阵形式表示。

    clip_image276

    简写为

    clip_image278

    其中X(M×N)为

    clip_image280

    我们发现

    clip_image282

    我们可以算出u和v的方差和协方差(这里实际上事先对样本clip_image204[2]clip_image284做了均值归0处理):

    clip_image286

    clip_image288

    clip_image290

    这里clip_image274[1]clip_image292维度可以不一样。

    最后,我们得到Corr(u,v)

    clip_image294

    可以看到,在将clip_image018[1]clip_image020[1]处理成clip_image296clip_image298后,得到的结果和之前形式基本一样,只是将clip_image044[1]替换成了两个K乘积。

    因此,得到的结果也是一样的,之前是

    clip_image100[1]

    其中

    clip_image098[1]

    引入核函数后,得到

    clip_image100[2]

    其中

    clip_image300

    注意这里的两个w有点区别,前面的clip_image116[1]维度和x的特征数相同,clip_image302维度和y的特征数相同。后面的clip_image304维度和x的样例数相同,clip_image306维度和y的样例数相同,严格来说“clip_image304[1]维度=clip_image306[1]维度”。

    5. 其他话题

    1、当协方差矩阵不可逆时,怎么办?

    要进行regularization。

    一种方法是将前面的KCCA中的拉格朗日等式加上二次正则化项,即:

    clip_image308

    这样求导后得到的等式中,等式右边的矩阵一定是正定矩阵。

    第二种方法是在Pearson系数的分母上加入正则化项,同样结果也一定可逆。

    clip_image310

    2、求Kernel矩阵效率不高怎么办?

    使用Cholesky decomposition压缩法或者部分Gram-Schmidt正交化法,。

    3、怎么使用CCA用来做预测?

      

    4、如果有多个集合怎么办?X、Y、Z…?怎么衡量多个样本集的关系?

    这个称为Generalization of the Canonical Correlation。方法是使得两两集合的距离差之和最小。可以参考文献2。

    6. 参考文献

    1、 http://www.stat.tamu.edu/~rrhocking/stat636/LEC-9.636.pdf

    2、 Canonical correlation analysis: An overview with application to learning methods. David R. Hardoon , Sandor Szedmak and John Shawe-Taylor

    3、 A kernel method for canonical correlation analysis. Shotaro Akaho

    4、 Canonical Correlation a Tutorial. Magnus Borga

    5、 Kernel Canonical Correlation Analysis. Max Welling

    http://www.cnblogs.com/jerrylead/archive/2011/06/20/2085491.html Canonical correlation
    From Wikipedia, the free encyclopedia
    Jump to: navigation , search

    In statistics, canonical correlation analysis, introduced by Harold Hotelling, is a way of making sense of cross-covariance matrices. If we have two sets of variables,  x_1, \dots, x_n and  y_1, \dots, y_m , and there are correlations among the variables, then canonical correlation analysis will enable us to find linear combinations of the  x \ 's and the  y \ 's which have maximum correlation with each other.

    Contents

    [hide]

    [edit] Definition

    Given two column vectors X = (x_1, \dots, x_n)' and Y = (y_1, \dots, y_m)' of random variables with finite second moments, one may define the cross-covariance \Sigma _{XY} = \operatorname{cov}(X, Y) to be the  n \times m matrix whose (i, j) entry is the covariance \operatorname{cov}(x_i, y_j) . In practice, we would estimate the covariance matrix based on sampled data from X and Y (i.e. from a pair of data matrices).

    Canonical correlation analysis seeks vectors a and b such that the random variables a' X and b' Y maximize the correlation \rho = \operatorname{cor}(a' X, b' Y) . The random variables U = a' X and V = b' Y are the first pair of canonical variables. Then one seeks vectors maximizing the same correlation subject to the constraint that they are to be uncorrelated with the first pair of canonical variables; this gives the second pair of canonical variables. This procedure may be continued up to \min\{m,n\} times.

    [edit] Computation

    [edit] Proof

    Let \Sigma _{XX} = \operatorname{cov}(X, X) and \Sigma _{YY} = \operatorname{cov}(Y, Y) . The parameter to maximize is

    
\rho = \frac{a' \Sigma _{XY} b}{\sqrt{a' \Sigma _{XX} a} \sqrt{b' \Sigma _{YY} b}}.

    The first step is to define a change of basis and define

    
c = \Sigma _{XX} ^{1/2} a,
    
d = \Sigma _{YY} ^{1/2} b.

    And thus we have

    
\rho = \frac{c' \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1/2} d}{\sqrt{c' c} \sqrt{d' d}}.

    By the Cauchy-Schwarz inequality, we have

    
c' \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1/2} d \leq \left(c' \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' d \right)^{1/2},
    
\rho \leq \frac{\left(c' \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1} \Sigma _{YX} \Sigma _{XX} ^{-1/2} c \right)^{1/2}}{\left(c' c \right)^{1/2}}.

    There is equality if the vectors d and \Sigma _{YY} ^{-1/2} \Sigma _{YX} \Sigma _{XX} ^{-1/2} c are collinear. In addition, the maximum of correlation is attained if c is the eigenvector with the maximum eigenvalue for the matrix \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1} \Sigma _{YX} \Sigma _{XX} ^{-1/2} (see Rayleigh quotient). The subsequent pairs are found by using eigenvalues of decreasing magnitudes. Orthogonality is guaranteed by the symmetry of the correlation matrices.

    [edit] Solution

    The solution is therefore:

    • c is an eigenvector of \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1} \Sigma _{YX} \Sigma _{XX} ^{-1/2}
    • d is proportional to \Sigma _{YY} ^{-1/2} \Sigma _{YX} \Sigma _{XX} ^{-1/2} c

    Reciprocally, there is also:

    • d is an eigenvector of \Sigma _{YY} ^{-1/2} \Sigma _{YX} \Sigma _{XX} ^{-1} \Sigma _{XY} \Sigma _{YY} ^{-1/2}
    • c is proportional to \Sigma _{XX} ^{-1/2} \Sigma _{XY} \Sigma _{YY} ^{-1/2} d

    Reversing the change of coordinates, we have that

    • a is an eigenvector of \Sigma _{XX} ^{-1} \Sigma _{XY} \Sigma _{YY} ^{-1/2} \Sigma _{YX}
    • b is an eigenvector of \Sigma _{YY} ^{-1} \Sigma _{YX} \Sigma _{XX} ^{-1} \Sigma _{XY}
    • a is proportional to \Sigma _{XX} ^{-1} \Sigma _{XY} b
    • b is proportional to \Sigma _{YY} ^{-1/2} \Sigma _{YX} a

    The canonical variables are defined by:

    U = c' \Sigma _{XX} ^{-1/2} X = a' X
    V = d' \Sigma _{YY} ^{-1/2} Y = b' Y

    [edit] Hypothesis testing

    Each row can be tested for significance with the following method. Since the correlations are sorted, saying that row i is zero implies all further correlations are also zero. If we have p independent observations in a sample and \widehat{\rho}_i is the estimated correlation for i = 1,\dots, \min\{m,n\} . For the i th row, the test statistic is:

    \chi ^2 = - \left( p - 1 - \frac{1}{2}(m + n + 1)\right) \ln \prod _ {j = i} ^p (1 - \widehat{\rho}_j^2),

    which is asymptotically distributed as a chi-squared with (m - i + 1)(n - i + 1) degrees of freedom for large p .[1] Since all the correlations from  \min\{m,n\} to p are logically zero (and estimated that way also) the product for the terms after this point is irrelevant.

    [edit] Practical uses

    A typical use for canonical correlation in the experimental context is to take two sets of variables and see what is common amongst the two sets. For example in psychological testing, you could take two well established multidimensional personality tests such as the Minnesota Multiphasic Personality Inventory (MMPI) and the NEO. By seeing how the MMPI factors relate to the NEO factors, you could gain insight into what dimensions were common between the tests and how much variance was shared. For example you might find that an extraversion or neuroticism dimension accounted for a substantial amount of shared variance between the two tests.

    One can also use canonical correlation analysis to produce a model equation which relates two sets of variables, for example a set of performance measures and a set of explanatory variables, or a set of outputs and set of inputs. Constraint restrictions can be imposed on such a model to ensure it reflects theoretical requirements or intuitively obvious conditions. This type of model is known as a maximum correlation model.[2]

    Visualization of the results of canonical correlation is usually through bar plots of the coefficients of the two sets of variables for the pairs of canonical variates showing significant correlation. Some authors suggest that they are best visualized by plotting them as heliographs, a circular format with ray like bars, with each half representing the two sets of variables.[3]

    [edit] Connection to principal angles

    Assuming that X = (x_1, \dots, x_n)' and Y = (y_1, \dots, y_m)' have zero expected values, i.e., \operatorname{E}(X)=\operatorname{E}(Y)=0 , their covariance matrices \Sigma _{XX} =\operatorname{Cov}(X,X) = \operatorname{E}[X X'] and \Sigma _{YY} =\operatorname{Cov}(Y,Y) = \operatorname{E}[Y Y'] can be viewed as Gram matrices in an inner product, see Covariance#Relationship_to_inner_products, for the columns of X and Y , correspondingly. The definition of the canonical variables U and V is equivalent to the definition of principal vectors for the pair of subspaces spanned by the columns of X and Y with respect to this inner product. The canonical correlations \operatorname{cor}(U,V) is equal to the cosine of principal angles.

    [edit] See also

     

    Canonical Correlation Analysis


    Canonical correlation analysis (CCA) is a way of measuring the linear relationship between two multidimensional variables. It finds two bases, one for each variable, that are optimal with respect to correlations and, at the same time, it finds the corresponding correlations. In other words, it finds the two bases in which the correlation matrix between the variables is diagonal and the correlations on the diagonal are maximized. The dimensionality of these new bases is equal to or less than the smallest dimensionality of the two variables.

    For more information on CCA, please read my on-line tutorial (or the PDF version).

    Matlab functions

    Please email your comments to me.

     

     

     

    Canonical Correspondence Analysis

    Description

    Performs a Canonical Correspondence Analysis.

    Usage

    cca(sitspe, sitenv, scannf = TRUE, nf = 2)  

    Arguments

    sitspea data frame for correspondence analysis, typically a sites x species table
    sitenva data frame containing variables, typically a sites x environmental variables table
    scannfa logical value indicating whether the eigenvalues bar plot should be displayed
    nfif scannf FALSE, an integer indicating the number of kept axes

    Value

    returns an object of class pcaiv. See pcaiv

    Author(s)

    Daniel Chessel
    Anne B Dufour
    dufour@biomserv.univ-lyon1.fr

    References

    Ter Braak, C. J. F. (1986) Canonical correspondence analysis : a new eigenvector technique for multivariate direct gradient analysis. Ecology, 67, 1167–1179.

    Ter Braak, C. J. F. (1987) The analysis of vegetation-environment relationships by canonical correspondence analysis. Vegetatio, 69, 69–77.

    Chessel, D., Lebreton J. D. and Yoccoz N. (1987) Propriétés de l'analyse canonique des correspondances. Une utilisation en hydrobiologie. Revue de Statistique Appliquée, 35, 55–72.

    See Also

    cca in the package vegan

    Examples

    data(rpjdl) millog <- log(rpjdl$mil + 1) iv1 <- cca(rpjdl$fau, millog, scan = FALSE) plot(iv1) # analysis with c1 - as - li -ls # projections of inertia axes on PCAIV axes s.corcircle(iv1$as) # Species positions s.label(iv1$c1, 2, 1, clab = 0.5, xlim = c(-4,4)) # Sites positions at the weighted mean of present species s.label(iv1$ls, 2, 1, clab = 0, cpoi = 1, add.p = TRUE) # Prediction of the positions by regression on environmental variables s.match(iv1$ls, iv1$li, 2, 1, clab = 0.5) # analysis with fa - l1 - co -cor # canonical weights giving unit variance combinations s.arrow(iv1$fa) # sites position by environmental variables combinations # position of species by averaging s.label(iv1$l1, 2, 1, clab = 0, cpoi = 1.5) s.label(iv1$co, 2, 1, add.plot = TRUE) s.distri(iv1$l1, rpjdl$fau, 2, 1, cell = 0, csta = 0.33) s.label(iv1$co, 2, 1, clab = 0.75, add.plot = TRUE) # coherence between weights and correlations par(mfrow = c(1,2)) s.corcircle(iv1$cor, 2, 1) s.arrow(iv1$fa, 2, 1) par(mfrow = c(1,1))  

    Worked out examples

    > library(ade4) > ### Name: cca > ### Title: Canonical Correspondence Analysis > ### Aliases: cca > ### Keywords: multivariate > > ### ** Examples > > data(rpjdl) > millog <- log(rpjdl$mil + 1) > iv1 <- cca(rpjdl$fau, millog, scan = FALSE) > plot(iv1)  
    典型相关分析CCA
    > > # analysis with c1 - as - li -ls > # projections of inertia axes on PCAIV axes > s.corcircle(iv1$as)  
    典型相关分析CCA
    > > # Species positions > s.label(iv1$c1, 2, 1, clab = 0.5, xlim = c(-4,4)) > # Sites positions at the weighted mean of present species > s.label(iv1$ls, 2, 1, clab = 0, cpoi = 1, add.p = TRUE)  
    典型相关分析CCA
    > > # Prediction of the positions by regression on environmental variables > s.match(iv1$ls, iv1$li, 2, 1, clab = 0.5)  
    典型相关分析CCA
    > > # analysis with fa - l1 - co -cor > # canonical weights giving unit variance combinations > s.arrow(iv1$fa)  
    典型相关分析CCA
    > > # sites position by environmental variables combinations > # position of species by averaging > s.label(iv1$l1, 2, 1, clab = 0, cpoi = 1.5)  
    典型相关分析CCA
    > s.label(iv1$co, 2, 1, add.plot = TRUE)  
    典型相关分析CCA
    > > s.distri(iv1$l1, rpjdl$fau, 2, 1, cell = 0, csta = 0.33)  
    典型相关分析CCA
    > s.label(iv1$co, 2, 1, clab = 0.75, add.plot = TRUE)  
    典型相关分析CCA
    > > # coherence between weights and correlations > par(mfrow = c(1,2)) > s.corcircle(iv1$cor, 2, 1)  
    典型相关分析CCA
    > s.arrow(iv1$fa, 2, 1)  
    典型相关分析CCA
    > par(mfrow = c(1,1)) 
      
      
    (一)CCA方法简介:
     典范对应分析(canonical correspondence analusis, CCA),是基于对应分析发展而来的一种排序方法,将对应分析与多元回归分析相结合,每一步计算均与环境因子进行回归,又称多元直接梯度分析。其基本思路是在对应分析的迭代过程中,每次得到的样方排序坐标值均与环境因子进行多元线性回归。CCA要求两个数据矩阵,一个是植被数据矩阵,一个是环境数据矩阵。首先计算出一组样方排序值和种类排序值(同对应分析),然后将样方排序值与环境因子用回归分析方法结合起来,这样得到的样方排序值即反映了样方种类组成及生态重要值对群落的作用,同时也反映了环境因子的影响,再用样方排序值加权平均求种类排序值,使种类排序坐标值值也简介地与环境因子相联系。其算法可由Canoco软件快速实现。
     最大优点:CCA是一种基于单峰模型的排序方法,样方排序与对象排序对应分析,而且在排序过程中结合多个环境因子,因此可以把样方、对象与环境因子的排序结果表示在同一排序图上。
     缺点:存在“弓形效应”。克服弓形效应可以采用除趋势典范对应分析(detrended canonical correspondence, DCCA).
     结果可信性:查看累计贡献率及环境与研究对象前两个排序轴之间的相关性。
    (二)CCA排序图解释:箭头表示环境因子,箭头所处的象限表示环境因子与排序轴之间的正负相关性,箭头连线的长度代表着某个环境因子与研究对象分布相关程度的大小,连线越长,代表这个环境因子对研究对象的分布影响越大。箭头连线与排序轴的家教代表这某个环境因子与排序轴的相关性大小,夹角越小,相关性越高。
    (三)关键问题:
     (1)RDA或CCA的选择问题:RDA是基于线性模型,CCA是基于单峰模型。一般我们会选择CCA来做直接梯度分析。但是如果CCA排序的效果不太好,就可以考虑是不是用RDA分析。RDA或CCA选择原则:先用species-sample资料做DCA分析,看分析结果中Lengths of gradient 的第一轴的大小,如果大于4.0,就应该选CCA,如果3.0-4.0之间,选RDA和CCA均可,如果小于3.0, RDA的结果要好于CCA。
     (2)计算单个环境因子的贡献率:CCA分析里面所得到的累计贡献率是所有环境因子的贡献率,怎么得到每个环境因子的贡献率:生成三个矩阵,第一个是物种样方矩阵,第二个是目标环境因子矩阵,第三个是剔除目标环境因子矩阵后的环境因子矩阵。分别输入Canoco软件中,这样CCA分析得到的特征根贡献率即是单个目标环境因子的贡献率。
    参考书目:
    张金屯 数量生态学 科学出版社 2004
    Jan Leps & Peter Smilauer. Multivariate analysis of ecological data using CANOCO. Cambridge University Press. 2003
     
     
     
    本文引用地址:http://www.sciencenet.cn/blog/user_content.aspx?id=27852
     
     典范对应分析(CCA
     (一)CCA方法简介:
     典范对应分析(canonical correspondence analusis, CCA),是基于对应分析发展而来的一种排序方法,将对应分析与多元回归分析相结合,每一步计算均与环境因子进行回归,又称多元直接梯度分析。其基本思路是在对应分析的迭代过程中,每次得到的样方排序坐标值均与环境因子进行多元线性回归。CCA要求两个数据矩阵,一个是植被数据矩阵,一个是环境数据矩阵。 首先计算出一组样方排序值和种类排序值(同对应分析),然后将样方排序值与环境因子用回归分析方法结合起来,这样得到的样方排序值即反映了样方种类组成及生态重要值对群落的作用,同时也反映了环境因子的影响,再用样方排序值加权平均求种类排序值,使种类排序坐标值值也简介地与环境因子相联系。其算法可由Canoco软件快速实现。
     最大优点:CCA是一种基于单峰模型的排序方法,样方排序与对象排序对应分析,而且在排序过程中结合多个环境因子,因此可以把样方、对象与环境因子的排序结果表示在同一排序图上。
     缺点:存在“弓形效应”。克服弓形效应可以采用除趋势典范对应分析(detrended canonical correspondence, DCCA.
     结果可信性:查看累计贡献率及环境与研究对象前两个排序轴之间的相关性。
     (二)CCA排序图解释
     箭头表示环境因子,箭头所处的象限表示环境因子与排序轴之间的正负相关性,箭头连线的长度代表着某个环境因子与研究对象分布相关程度的大小,连线越长,代表这个环境因子对研究对象的分布影响越大。箭头连线与排序轴的家教代表这某个环境因子与排序轴的相关性大小,夹角越小,相关性越高。
     (三)关键问题:
     1RDACCA的选择问题:RDA是基于线性模型,CCA是基于单峰模型。一般我们会选择CCA来做直接梯度分析。但是如果CCA排序的效果不太好,就可以考虑是不是用RDA分析。RDACCA选择原则:先用species-sample资料做DCA分析,看分析结果中Lengths of gradient 的第一轴的大小,如果大于4.0,就应该选CCA,如果3.0-4.0之间,选RDACCA均可,如果小于3.0, RDA的结果要好于CCA
     2)计算单个环境因子的贡献率:CCA分析里面所得到的累计贡献率是所有环境因子的贡献率,怎么得到每个环境因子的贡献率:生成三个矩阵,第一个是物种样方矩阵,第二个是目标环境因子矩阵,第三个是剔除目标环境因子矩阵后的环境因子矩阵。分别输入Canoco软件中,这样CCA分析得到的特征根贡献率即是单个目标环境因子的贡献率。
     
        

    典型相关分析 Canonical Correlation Analysis(CCA)

    • 两个随机变量Y与X 简单相关系数
    • 一个随机变量Y与一组随机变量X1,X2……,Xp 多重相关(复相关系数)
    • 一组随机变量Y1,Y2,……,Yq与另一组随机变量X1,X2,……,Xp 典型相关系数
    典型相关是研究两组变量之间相关性的一种统计分析方法。也是一种降维技术。
    http://s16.sinaimg.cn/orignal/4fb7d89243ef2841a279f
     http://s5.sinaimg.cn/orignal/4fb7d89243ef2842f6124
     http://s3.sinaimg.cn/orignal/4fb7d89243ef2f0399d22
     

    简单相关系数描述两组变量的相关关系的缺点:
    • 只是孤立考虑单个X与单个Y间的相关,没有考虑X,Y变量组内部各变量间的相关。
    • 两组间有许多简单相关系数(实例为30个),使问题显得复杂,难以从整体描述。(复相关系数也如此
    http://s6.sinaimg.cn/orignal/4fb7d89243ef2f848c225

    展开全文
  • R语言 典型相关分析

    千次阅读 2016-05-05 14:50:25
    1 关键点:#典型相关分析# #典型相关分析是用于分析两组随机变量之间的相关程度的一种统计方法,它能够有效地揭示两组随机变量之间的相互(线性依赖)关系 #例如 研究生入学考试成绩与本科阶段一些主要课程成绩的...
  • 典型相关分析原理(CCA)

    万次阅读 多人点赞 2020-01-21 12:29:17
    CCA典型相关分析 (canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理是:为了从总体上把握两组指标之间的相关关系,分别在两组变量中...
  • 典型相关分析(CCA)

    万次阅读 多人点赞 2014-09-14 22:12:17
    典型相关分析的基本思想 Canonical Correlation Analysis CCA典型相关分析 (canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理...
  • 典型相关分析系列博文: 典型相关分析(Canonical correlation analysis)(一):基本思想 、复相关系数、偏相关系数 典型相关分析(Canonical correlation analysis)(二):原始变量与典型变量之间的相关性 、...
  • 典型相关分析系列博文: 典型相关分析(Canonical correlation analysis)(一):基本思想 、复相关系数、偏相关系数 典型相关分析(Canonical correlation analysis)(二):原始变量与典型变量之间的相关性 ...
  • 典型相关分析的基本思想 Canonical Correlation Analysis   CCA典型相关分析 (canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理...
  • 典型相关分析(CCA)相关资料

    千次阅读 2012-11-05 09:34:29
    典型相关分析的基本思想 Canonical Correlation Analysis CCA典型相关分析 (canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理是...
  • 典型相关分析(CCA)简述

    千次阅读 2020-10-24 09:44:18
    典型相关分析(Canonical Correlation Analysis)是研究两组变量之间相关关系的一种多元统计方法,它能够揭示出两组变量之间的内在联系。         在一元统计分析中,用相关系数来...
  • 算法篇----典型相关分析(CCA)理论

    万次阅读 2015-01-28 17:22:14
     实际问题中,常常需要研究多个变量之间的相关关系,这个时候,可以试下典型相关分析(Canonical Correlation Analysis)。这种算法由H·Hotelling于1936 年提出,在19世纪 70 年代臻于成熟。早期因为需要大量的...
  • 看文章《科学学研究》2010年8月一片文章时,看到典型相关分析的研究,顿时傻了,过去没学过啊。看别人还是用spss做的统计分析就更傻了,好像没哪个老师讲过这个分析。有点云里雾里。还是赶紧学习一下吧。最后那个sas...
  • 网络角度分析应用的卡顿等问题;需要确认应用使用的是http或者其他应用层协议、并对应到传输层的TCP或UDP协议。 一般确认链接的方法有: 1.通过系统的log 06-29 13:51:45.681 6756 6831 D Linux : [Posix_connect...
  • 一、PCA主成分分析: 1.我们希望对数据进行有损压缩,即将属于R^n的x投影为属于R^l的c,有编码函数f(x)=c,使得损失的信息尽量少。同时有对应的解码函数g(c)约等于x。 2.PCA由我们确定的解码函数而定,为了简化...
  • 稳态视觉诱发电位(SSVEP)丨典型相关分析(CCA)

    千次阅读 热门讨论 2018-10-17 10:55:24
    稳态视觉诱发电位(SSVEP)丨典型相关分析(CCA) 文章目录稳态视觉诱发电位(SSVEP)丨典型相关分析(CCA)1. 准备工具:2. 实验数据3. 安装和运行4. 结论 前言:采集一组脑电数据,准备使用bci_toolbox进行分析时,...
  • 聚类分析典型应用和技术

    万次阅读 2017-08-31 19:19:46
    “抽样”对于数据分析和挖掘来说是一种常见的前期数据处理技术和手段,主要原因是如果数据全集的规模太大,针对数据全集进行分析计算不但会消耗更多的运算资源,还会显著增加运算分析的时间,甚至太大的数据量在数据...
  • 主流典型各类应用服务器硬件配置分析 为了更好的理解服务器应用,我们从应用角度,结合服务器技术规格要求不同,可大致分三类:    快速处理型是指对服务器的性能要求较高,反应速度要求快,如门户型网站...
  • 领域驱动实践总结三:具体应用设计分析 领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性...
  • 最全的运放典型应用电路及分析

    千次阅读 2015-11-12 17:01:38
    由运放构成的各种典型应用电路总结: 引用链接: ...
  • SWAT模型在水文水资源、面源污染模拟中的实践技术应用典型案例分析 一、主办单位: 北京中科资环信息技术研究院 二、2019年4月18日-4月22日 北京 三、课程目标:(全程案例实操) 1.了解GIS相关知识及面源污染模型...
  • 三种无线话筒典型应用电路图分析

    千次阅读 2015-02-03 14:26:00
    介绍颇有代表性的几款业余情况下容易制作成功的88~108MHz调频广播范围内的小功率发射典型应用电路图,其中有简易的单管发射电路,也有采用集成电路的立体声发射电路。主要用于调频无线耳机、电话无线录音转发、遥控...
  • 课程主题:Android应用开发典型案例分析—主流mp3播放器   详情课程大纲如下:    1 Android Project架构和eclipse开发环境搭建  1.1 Android应用开发环境搭建  1.2 Android Project架构   1.3 ...
  • CCA典型关联分析原理与Python案例

    千次阅读 2020-07-02 09:03:08
    点击上面"脑机接口社区"关注我们更多技术干货第一时间送达Hello,大家好!Rose今天分享一下CCA的相关原理以及Python应用,CCA在EEG等脑电数据的特征提取中...
  • 设计模式 | 组合模式及典型应用

    千次阅读 多人点赞 2018-10-05 17:36:55
    源码分析组合模式的典型应用 java.awt中的组合模式 Java集合中的组合模式 Mybatis SqlNode中的组合模式 更多内容可访问我的个人博客:http://laijianfeng.org 推荐阅读 设计模式 | 简单工厂模式及典型应用 设计...
  • 设计模式 | 适配器模式及典型应用

    万次阅读 多人点赞 2018-09-20 01:37:29
    缺省适配器模式是适配器模式的一种变体,其应用也较为广泛。在JDK类库的事件处理包java.awt.event中广泛使用了缺省适配器模式,如WindowAdapter、KeyAdapter、MouseAdapter等。 示例 类适配器 首先有一个已...
  • 大数据典型应用场景

    万次阅读 2019-07-31 19:02:43
    今天我们通过一些大数据典型应用场景分析,一起来看看大数据到底能做些什么,我们学大数据究竟有什么用。医疗健康。比如,我们可以结合机器学习做到医学影像智能识别。图像识别是机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 338,470
精华内容 135,388
关键字:

典型相关分析应用