
5.5 数据降维
5.5.1 主成分分析(PCA)的基本原理
在数据挖掘中,分析人员经常会遇到多个变量的问题,而且在多数情况下,多个变量之间常常存在一定的相关性。当变量个数较多且变量之间存在复杂关系时,会显著增加分析问题的复杂性。如果有一种方法可以将多个变量综合为少数几个代表性变量,使这些变量既能够代表原始变量的绝大多数信息又互不相关,那么这样的方法无疑有助于对问题的分析和建模。这时,就可以考虑用主成分分析(PCA)法。
1. PCA的基本思想
PCA采取一种数学降维的方法,其所要做的就是,设法将原来众多具有一定相关性的变量重新组合为一组新的相互无关的综合变量来代替原来的变量。通常,数学上的处理方法就是将原来的变量进行线性组合,得到新的综合变量,但是这种组合如果不加以限制,则可以有很多,应该如何选择呢?如果将选取的第一个线性组合即第一个综合变量记为F1,自然希望它尽可能多地反映原来变量的信息。这里“信息”用方差来度量,即希望Var(F1)越大,表示F1包含的信息越多。因此,在所有的线性组合中所选取的F1应该是方差最大的,故称F1为第2个主成分。如果第1个主成分不足以代表原来p个变量的信息,再考虑选取F2,即第2个线性组合,为了有效地反映原来的信息,F1已有的信息就不需要再出现在F2中,用数学语言表达就是要求Cov(F1,F2)=0,称F2为第2个主成分,依此类推可以构造出第3、第4……第p个主成分。注:Cov表示统计学中的协方差。
2. PCA的步骤
这里关于PCA方法的理论推导不再赘述,将重点放在如何应用PCA解决实际问题上。下面先简单介绍PCA的典型步骤。
(1)对原始数据进行标准化处理。
假设样本观测数据矩阵为:

那么,可以按照如下方法对原始数据进行标准化处理:

其中,
(2)计算样本相关系数矩阵。
为了方便,假定原始数据标准化后仍用X表示,则经标准化处理后的数据的相关系数为:


(3)计算相关系数矩阵R的特征值(λ1,λ2,…,λp)和相应的特征向量。
ai=(ai1,ai2,…,aip),i=1,2,…,p
(4)选择重要的主成分,并写出主成分表达式。
主成分分析可以得到p个主成分,但是,由于各个主成分的方差是递减的,包含的信息量也是递减的。所以实际分析时,一般不是选取p个主成分,而是根据各个主成分累计贡献率的大小选取前k个主成分。这里的贡献率就是指某个主成分的方差占全部方差的比例,也就是某个特征值占全部特征值合计的比例,即

贡献率越大,说明该主成分所包含的原始变量的信息越多。主成分个数k的选取,主要根据主成分的累计贡献率来决定,即一般要求累计贡献率达到85%以上,这样才能保证综合变量包含原始变量的绝大多数信息。
另外,在实际应用中,选择了重要的主成分后,还要注意主成分的实际含义。主成分分析中一个很关键的问题是如何给主成分赋予新的意义,给出合理的解释。一般而言,这个解释是根据主成分表达式的系数结合定性分析来进行的。主成分是原来变量的线性组合,在这个线性组合中各变量的系数有大有小,有正有负,有的大小相当,因而不能简单地认为这个主成分是某个原变量的属性。该主成分主要综合了线性组合中系数的绝对值大的变量。有几个变量系数大小相当时,应认为这一主成分是这几个变量的总和。这几个变量综合在一起应赋予怎样的实际意义,要结合具体实际问题和专业,给出恰当的解释,进而才能达到深刻分析的目的。
(5)计算主成分得分。
根据标准化的原始数据,将各个样本的数据分别代入主成分表达式,就可以得到各主成分下的各个样本的新数据,即主成分得分。具体形式如下:

其中,Fij=aj1xi1+aj2xi2+…+ajpxip,i=1,2,…,n;j=1,2,…,k。
(6)依据主成分得分的数据,进一步对问题进行后续的分析和建模。
后续的分析和建模常见的形式有主成分回归、变量子集合的选择、综合评价等。下面将以实例的形式介绍如何用MATLAB来实现PCA过程。
5.5.2 PCA应用实例:企业综合实力排序
为了系统地分析某IT类企业的经济效益,选择了8个不同的利润指标,对15家企业进行了调研,并得到如表5-1所示的数据。请根据这些数据对这15家企业进行综合实力排序。
表5-1 企业综合实力评价表

由于本问题涉及8个指标,这些指标间的关联关系并不明确,且各指标的数量级也有差异,因此这里首先借助PCA方法对指标体系进行降维处理,然后根据PCA打分结果实现对企业的综合实力排序。
根据上述PCA步骤,编写了MATLAB程序,如P5-3所示。


运行程序,显示如下结果报告。

从该报告可知,第9家企业的综合实力最强,第12家企业的综合实力最弱。报告还给出了各主成分的权重信息(贡献率)及与原始变量的关联关系(特征向量),这样就可以对实际问题做进一步的分析。
上述应用实例只是比较简单的应用实例,还要根据实际问题灵活使用PCA方法。
5.5.3 相关系数降维
定义:设两个现象有如下两组观测值。
X: x1,x2,…,xn
Y: y1,y2,…,yn
则称为“X与Y的相关系数”。
相关系数用r表示,r在-1和+1之间取值。相关系数r的绝对值(|r|),表示两个变量之间的直线性相关程度;相关系数r的正负号,表示相关的方向,分别是正相关和负相关;若相关系数r=0,则称零线性相关,简称零相关;若相关系数|r|=1,则表示两个变量完全相关,这时,两个变量之间的关系成为确定性的函数关系,这种情况在行为科学与社会科学中是极少存在的。
一般说来,若观测数据的个数足够多,计算出来的相关系数r就会较真实地反映客观事物之间的本来面目。
当0.7<|r|<1时,称为高度相关;当0.4≤|r|<0.7时,称为中等相关;当0.2≤|r|<0.4时,称为低度相关;当|r|<0.2时,称为极低相关或接近零相关。
由于事物之间联系的复杂性,在实际研究中,通过统计方法确定出来的相关系数r即使大于0.7(高度相关),在解释相关系数的时候,还要结合具体变量的性质特点和有关专业知识来进行。两个高度相关的变量,它们之间可能具有明显的因果关系;也可能只具有部分因果关系;还可能没有直接的因果关系,其数量上的相互关联,只是它们共同受到第三个变量支配的结果。除此之外,相关系数r接近零,只是表示这两个变量不存在明显的直线性相关,但不能肯定地说这两个变量之间就没有规律性的联系。分析人员有时会发现,根据散点图,两个变量之间存在明显的某种曲线性相关,但计算直线性相关系数时,其r往往接近零。对于这一点,读者应该有所认识。