zoukankan      html  css  js  c++  java
  • 【数学建模】day11-典型相关分析

    这与主成分分析有点相似。

    0. 基本思想
    主成分分析(PCA)是把原始有相关性变量,线性组合出无关的变量(投影),以利用主成分变量进行更加有效的分析。
    而典型相关分析(CCA)的思想是:

    分析自变量组 X = [x1,x2,x3…xp],因变量组 Y = [y1,y2,y3…yq] 之间的相关性。(注意这里X的每一个自变量x1是个列向量,代表有多个观测值)。

    如果采用传统的相关分析,只要求X的每一个变量与Y的每一个变量的相关系数,从而组成相关系数矩阵 R = [rij]p*q ,rij表示第i个自变量xi与第j个因变量yj之间的相关系数。

    然而,这是有缺陷的:只粗暴的考虑了X与Y的关系,却忽略了X自变量之间也可能有相关关系,Y因变量之间亦如此。

    解决的方法类似于主成分分析,我们可以把X提取出主成分,Y也提取出主成分,从而X、Y内部线性不相关了,这样利用主成分研究X与Y之间相关性就解决了上述缺点。


    1. 典型相关分析

    典型相关分析:

    假设

    自变量组:X = [x1,x2,x3…xp]

    因变量组:Y = [y1,y2,y3…yq]

    注意,xi与yj都是相同维度的列向量。

    要求

    分析X与Y之间的相关性

    2 直观描述

    首先在X中找出线性组合u1, 在Y中找出线性组合v1,使得 r(u1,v1)达到最大。

    其次,在X中找第二个线性组合u2,Y中找第二个线性组合v2,要求使得u2与u1线性不相关,v2与v1线性不相关,并且: r(u2,v2)达到次大。

    继续。直到两组变量之间的相关性被提取完毕。

    3 数学描述

    数学描述:

    image

    image

    image

    image

    image

    线性组合得到的变量称作典型变量。


    4. 典型相关模型的分析

    需要分析原始变量与典型变量之间的相关性。

    原始变量xi与典型变量uj之间的相关性为:

    image

    式中,α是典型变量系数。

    同理可求得原始变量xi与典型变量vj、yi与vj、yi与uj之间的相关系数。

    建模时可以列出这四个相关系数表格。

    进而,我们要对典型变量对各组原始变量解释能力做分析,因为原始变量-->典型变量毕竟会有信息的损失。

    Def:

    image

    其中,ρ(ui,xk) 是指原始变量xk与电影变量ui之间的相关系数。

    注:

    1)这个解释能力是指,原始变量—>典型变量后,某个典型变量 ui 对原始变量<x1,x2,…xp>的解释能力。因为如果采用比较少的典型变量,就会有更多的信息损失,这与PCA分析中主成分贡献率类似。

    2) 计算方法是:某个典型变量ui与所有xk(k=1 to p)的相关系数的平方和,再除以变量个数。这是方差比例。

    我们还要进行典型相关系数的检验。

    这一步是建模必须的。

    计算典型相关系数用到的是,X与X之间的协方差矩阵、X与Y之间的协方差矩阵、Y与Y之间的协方差矩阵。而这些协方差矩阵其实是未知的,我们只是用一些样本对总体进行了近似。这个近似是有误差的,需要进行有关的假设检验。

    即:整体检验:检验X与Y之间的协方差矩阵是否为0。若是0,则显然X与Y不相关。否则X与Y具有相关性,即说明至少第一对典型变量之间的相关性显著。

    部分检验:检验部分典型相关系数为0的检验:也就是第k对典型相关变量之间相关关系不显著。

    下面进行检验:

    1)整体检验

    image

    image

    2)部分总体典型相关系数为零的检验

    image

    5 Summary:典型相关分析步骤

    步骤如下:

    设标准化后,X、Y增广阵为Z:

    image

    step1:计算原始变量X、Y增广阵的相关系数矩阵R,并且剖分为:image,其中,R11是X的协方差矩阵,R12是X与Y的协方差矩阵。

    step2:求典型相关系数以及典型变量。

        image

    step3:进行典型相关系数λi的显著性检验。有整体检验与部分检验,详情见上。

    step4:典型结构与典型冗余分析。

    这其实是计算:

    image

    典型结构分析:其实就是X组原始变量被ui解释分方差比例,Y组原始变量被vi解释的方差比例

    image

    典型冗余分析:其实就是X组原始变量被vi解释分方差比例,Y组原始变量被ui解释的方差比例

    image

    image

    6. MATLAB实现。

    MATLAB进行典型相关分析命令:

    先查看一下Matlab help命令解释:

    canoncorr Canonical correlation analysis.
        [A,B] = canoncorr(X,Y) computes the sample canonical coefficients for
        the N-by-P1 and N-by-P2 data matrices X and Y.  X and Y must have the
        same number of observations (rows) but can have different numbers of
        variables (cols).  A and B are P1-by-D and P2-by-D matrices, where D =
        min(rank(X),rank(Y)).  The jth columns of A and B contain the canonical
        coefficients, i.e. the linear combination of variables making up the
        jth canonical variable for X and Y, respectively.  Columns of A and B
        are scaled to make COV(U) and COV(V) (see below) the identity matrix.
        If X or Y are less than full rank, canoncorr gives a warning and
        returns zeros in the rows of A or B corresponding to dependent columns
        of X or Y.
    
       [A,B,R] = canoncorr(X,Y) returns the 1-by-D vector R containing the
        sample canonical correlations.  The jth element of R is the correlation
        between the jth columns of U and V (see below).
    
       [A,B,R,U,V] = canoncorr(X,Y) returns the canonical variables, also
        known as scores, in the N-by-D matrices U and V.  U and V are computed
        as
    
          U = (X - repmat(mean(X),N,1))*A and
           V = (Y - repmat(mean(Y),N,1))*B.
    
       [A,B,R,U,V,STATS] = canoncorr(X,Y) returns a structure containing
        information relating to the sequence of D null hypotheses H0_K, that
        the (K+1)st through Dth correlations are all zero, for K = 0:(D-1).
        STATS contains seven fields, each a 1-by-D vector with elements
        corresponding to values of K:
    
          Wilks:    Wilks' lambda (likelihood ratio) statistic
           chisq:    Bartlett's approximate chi-squared statistic for H0_K,
                     with Lawley's modification
           pChisq:   the right-tail significance level for CHISQ
           F:        Rao's approximate F statistic for H0_K
           pF:       the right-tail significance level for F
           df1:      the degrees of freedom for the chi-squared statistic,
                     also the numerator degrees of freedom for the F statistic
           df2:      the denominator degrees of freedom for the F statistic
    
       Example:
    
          load carbig;
           X = [Displacement Horsepower Weight Acceleration MPG];
           nans = sum(isnan(X),2) > 0;
           [A B r U V] = canoncorr(X(~nans,1:3), X(~nans,4:5));
    
          plot(U(:,1),V(:,1),'.');
           xlabel('0.0025*Disp + 0.020*HP - 0.000025*Wgt');
           ylabel('-0.17*Accel + -0.092*MPG')
    
       See also pca, manova1.


     

    典型相关分析函数:[a,b,r,u,v,stats] = cononcorr(x,y):

    param:

      x:原始变量x矩阵,每列一个自变量指标,第i列是 xi 的样本值

      y:原始变量y矩阵,每列一个因变量指标,第j列是 yj 的样本值

    return:

      a:自变量x的典型相关变量系数矩阵,每列是一组系数。

            列数为典型相关变量数

      b:因变量y的典型相关变量系数矩阵,每列是一个系数

      r: 典型相关系数。即第一对<u1,v1>之间的相关系数、第二对<u2,v2>之间的相关系数…

      u:对于X的典型相关变量的值

      v:对于Y的典型相关变量的值

      stats:假设检验的值<详细用一下就知道了>

    也可以使用MATLAB按照原理直接编写程序,一个实现的例子如下:

    image

    实现程序:

    image

    image

    image

    这个典型相关系数表中,第一列0.5537是第<u1,v1>的相关系数。

  • 相关阅读:
    性能优化
    几种跨域处理
    重温前端基础之-数组去重
    移动端常遇到的问题
    WPF 应用
    WPF 应用
    WPF 应用
    C# 应用
    WPF 应用
    C# 应用
  • 原文地址:https://www.cnblogs.com/duye/p/9384821.html
Copyright © 2011-2022 走看看