• PCA方法


    主成分分析 ( Principal Component Analysis , PCA ) 是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。计算主成分的目的是将高维数据投影到较 低维空间。给定 n 个变量的 m 个观察值,形成一个 n ′ m 的数据矩阵, n 通常比较大。对于一个由多个变量描述的复杂事物,人们难以认识,那么是否可以抓住事物主要方面进行重点分析呢?如果事物的主要方面刚好体现在几个主要变量 上,我们只需要将这几个变量分离出来,进行详细分析。但是,在一般情况下,并不能直接找出这样的关键变量。这时我们可以用原有变量的线性组合来表示事物的 主要方面, PCA 就是这样一种分析方法。

        PCA 的目标是寻找 r ( r<n )个新变量,使它们反映事物的主要特征,压缩原有数据矩阵的规模。每个新变量是原有变量的线性组合,体现原有变量的综合效果,具有一定的实际含义。这 r 个新变量称为“主成分”,它们可以在很大程度上反映原来 n 个变量的影响,并且这些新变量是互不相关的,也是正交的。通过主成分分析,压缩数据空间,将多元数据的特征在低维空间里直观地表示出来。例如,将多个时间点、多个实验条件下的基因表达谱数据( N 维)表示为 3 维空间中的一个点,即将数据的维数从 RN 降到 R3 。

        在 进行基因表达数据分析时,一个重要问题是确定每个实验数据是否是独立的,如果每次实验数据之间不是独立的,则会影响基因表达数据分析结果的准确性。对于利 用基因芯片所检测到的基因表达数据,如果用 PCA 方法进行分析,可以将各个基因作为变量,也可以将实验条件作为变量。当将基因作为变量时,通过分析确定一组“主要基因元素”,它们能够很好地说明基因的特 征,解释实验现象;当将实验条件作为变量时,通过分析确定一组“主要实验因素”,它们能够很好地刻画实验条件的特征,解释基因的行为。下面着重考虑以实验 条件作为变量的 PCA 分析方法。假设将数据的维数从 R N 降到 R 3 ,具体的 PCA 分析步骤如下:

    (1) 第一步计算矩阵 X 的样本的协方差矩阵 S :

    (2) 第二步计算协方差矩阵S的本征向量 e1,e2,…,eN的本征值, i = 1,2,…,N 。本征值按大到小排序:

    (3)第三步投影数据到本征矢张成的空间之中,这些本征矢相应的本征值为。现在数据可以在三维空间中展示为云状的点集。

        对于 PCA ,确定新变量的个数 r 是一个两难的问题。我们的目标是减小 r ,如果 r 小,则数据的维数低,便于分析,同时也降低了噪声,但可能丢失一些有用的信息。究竟如何确定 r 呢?这需要进一步分析每个主元素对信息的贡献。

         代表第 i 个特征值,定义第 i 个主元素的贡献率为:

                                         (8-45)

    前 r 个主成分的累计贡献率为:

                                    (8-46)

    贡献率表示所定义的主成分在整个数据分析中承担的主要意义占多大的比重,当取前 r 个主成分来代替原来全部变量时,累计贡献率的大小反应了这种取代的可靠性,累计贡献率越大,可靠性越大;反之,则可靠性越小。一般要求累计贡献率达到 70% 以上。

        经过 PCA 分析,一个多变量的复杂问题被简化为低维空间的简单问题。可以利用这种简化方法进行作图,形象地表示和分析复杂问题。在分析基因表达数据时,可以针对基因作图,也可以针对实验条件作图。前者称为 Q 分析,后者称为 R 分析。

        表 8.1 是对酵母 6000 多个基因在 7 个时间点表达数据的 PCA 分析结果,每列数据代表主元素的系数。从表中可以看出,前两个主元素反应了 90% 以上( 76.9%+13.5% )的变化,而前三个主元素反应了 95% 以上的变化,因此取前两个主元素即可。 图 8.6 是对 7 个特征值的图示。


        图 8.7 是前三个主元素系数变化图。第 1 个主元素代表各个基因表达加权平均,除第 1 个时间点外,其它所有系数都为正值( 见图 8.7(a) )。如果某个基因对应此主元素的值为较大的正数,则基因表达上调,如果此主元素的值为较大的负数,则基因表达下调。第 2 个主元素表示在时间序贯中基因表达的变化,除第 1 个时间点外,其它系数逐个增大( 见图 8.7(b) )。如果某个基因的表达量随时间不断增加,则此主元素的值为正;如果表达量随时间不断减小,则此主元素的值为负。第 3 个主元素系数变化曲线为抛物线形( 见图 8.7(c) )。


  • 相关阅读:
    看完这篇文章,对采用.Net做网站的信心大增
    sqlserver 使用游标存储过程分页
    ViewState慎用
    [zz] C++智能指针循环引用解决
    cello 有关trigger
    cello 把事件全部统一起来,Event,StateEvent,ActionEvent
    libvirt 错误FAQ
    cello collector中为什么要设置frame_work_in_machine
    比较好的一些句型
    一些疑问
  • 原文地址:https://www.cnblogs.com/feisky/p/1586531.html
Copyright © 2020-2023  润新知