PCA主成分分析法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_39919527/article/details/82532817

主成分分析法(PCA)

在实际问题中,我们经常会遇到研究多个变量的问题,而且在多数情况下,多个变量之间常常存在一定的相关性。由于变量个数较多再加上变量之间的相关性,势必增加了分析问题的复杂性。如何从多个变量中综合为少数几个代表性变量,既能够代表原始变量的绝大多数信息,又互不相关,并且在新的综合变量基础上,可以进一步的统计分析,这时就需要进行主成分分析。

I. 主成分分析法(PCA)模型

(一)主成分分析的基本思想

主成分分析是采取一种数学降维的方法,找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,而且彼此之间互不相关。这种将把多个变量化为少数几个互相无关的综合变量的统计分析方法就叫做主成分分析或主分量分析。

主成分分析所要做的就是设法将原来众多具有一定相关性的变量,重新组合为一组新的相互无关的综合变量来代替原来变量。通常,数学上的处理方法就是将原来的变量做线性组合,作为新的综合变量,但是这种组合如果不加以限制,则可以有很多,应该如何选择呢?如果将选取的第一个线性组合即第一个综合变量记为,自然希望它尽可能多地反映原来变量的信息,这里“信息”用方差来测量,即希望越大,表示包含的信息越多。因此在所有的线性组合中所选取的应该是方差最大的,故称为第一主成分。如果第一主成分不足以代表原来个变量的信息,再考虑选取即第二个线性组合,为了有效地反映原来信息,已有的信息就不需要再出现在中,用数学语言表达就是要求,称为第二主成分,依此类推可以构造出第三、四……第个主成分。

(二)主成分分析的数学模型

对于一个样本资料,观测个变量,个样品的数据资料阵为:

其中:

主成分分析就是将个观测变量综合成为个新的变量(综合变量),即

简写为:

               

要求模型满足以下条件:

①互不相关(,)

②的方差大于的方差大于的方差,依次类推

③ 

于是,称为第一主成分,为第二主成分,依此类推,有第个主成分。主成分又叫主分量。这里我们称为主成分系数。

上述模型可用矩阵表示为:

,其中

           

称为主成分系数矩阵。

(三)主成分分析的几何解释

假设有个样品,每个样品有二个变量,即在二维空间中讨论主成分的几何意义。设个样品在二维空间中的分布大致为一个椭园,如下图所示:

图1  主成分几何解释图

将坐标系进行正交旋转一个角度,使其椭圆长轴方向取坐标,在椭圆短轴方向取坐标,旋转公式为

写成矩阵形式为:

其中为坐标旋转变换矩阵,它是正交矩阵,即有,即满足。

经过旋转变换后,得到下图的新坐标:

图2  主成分几何解释图

新坐标有如下性质:

(1)个点的坐标和的相关几乎为零。

(2)二维平面上的个点的方差大部分都归结为轴上,而轴上的方差较小。

和称为原始变量和的综合变量。由于个点在轴上的方差最大,因而将二维空间的点用在轴上的一维综合变量来代替,所损失的信息量最小,由此称轴为第一主成分,轴与轴正交,有较小的方差,称它为第二主成分。

 

II. 主成分分析法(PCA)推导

一、主成分的导出

根据主成分分析的数学模型的定义,要进行主成分分析,就需要根据原始数据,以及模型的三个条件的要求,如何求出主成分系数,以便得到主成分模型。这就是导出主成分所要解决的问题。

1、根据主成分数学模型的条件①要求主成分之间互不相关,为此主成分之间的协差阵应该是一个对角阵。即,对于主成分,

其协差阵应为,

=

2、设原始数据的协方差阵为,如果原始数据进行了标准化处理后则协方差阵等于相关矩阵,即有,

3、再由主成分数学模型条件③和正交矩阵的性质,若能够满足条件③最好要求为正交矩阵,即满足

于是,将原始数据的协方差代入主成分的协差阵公式得

展开上式得

展开等式两边,根据矩阵相等的性质,这里只根据第一列得出的方程为:

为了得到该齐次方程的解,要求其系数矩阵行列式为0,即

显然,是相关系数矩阵的特征值,是相应的特征向量。

根据第二列、第三列等可以得到类似的方程,于是是方程

的个根,为特征方程的特征根,是其特征向量的分量。

4、下面再证明主成分的方差是依次递减

设相关系数矩阵的个特征根为,相应的特征向量为

相对于的方差为

同样有:,即主成分的方差依次递减。并且协方差为:

综上所述,根据证明有,主成分分析中的主成分协方差应该是对角矩阵,其对角线上的元素恰好是原始数据相关矩阵的特征值,而主成分系数矩阵的元素则是原始数据相关矩阵特征值相应的特征向量。矩阵是一个正交矩阵。

于是,变量经过变换后得到新的综合变量

新的随机变量彼此不相关,且方差依次递减。

 

、主成分分析的计算步骤

假设样本观测数据矩阵为:

第一步:对原始数据进行标准化处理。

 

其中   

    

 

第二步:计算样本相关系数矩阵。

为方便,假定原始数据标准化后仍用表示,则经标准化处理后的数据的相关系数为:

第三步:用雅克比方法求相关系数矩阵的特征值()和相应的特征向量

第四步:选择重要的主成分,并写出主成分表达式。

主成分分析可以得到个主成分,但是,由于各个主成分的方差是递减的,包含的信息量也是递减的,所以实际分析时,一般不是选取个主成分,而是根据各个主成分累计贡献率的大小选取前个主成分,这里贡献率就是指某个主成分的方差占全部方差的比重,实际也就是某个特征值占全部特征值合计的比重。即

贡献率=

贡献率越大,说明该主成分所包含的原始变量的信息越强。主成分个数的选取,主要根据主成分的累积贡献率来决定,即一般要求累计贡献率达到85%以上,这样才能保证综合变量能包括原始变量的绝大多数信息。

另外,在实际应用中,选择了重要的主成分后,还要注意主成分实际含义解释。主成分分析中一个很关键的问题是如何给主成分赋予新的意义,给出合理的解释。一般而言,这个解释是根据主成分表达式的系数结合定性分析来进行的。主成分是原来变量的线性组合,在这个线性组合中个变量的系数有大有小,有正有负,有的大小相当,因而不能简单地认为这个主成分是某个原变量的属性的作用,线性组合中各变量系数的绝对值大者表明该主成分主要综合了绝对值大的变量,有几个变量系数大小相当时,应认为这一主成分是这几个变量的总和,这几个变量综合在一起应赋予怎样的实际意义,这要结合具体实际问题和专业,给出恰当的解释,进而才能达到深刻分析的目的。

第五步:计算主成分得分。(综合评价指标)

根据标准化的原始数据,按照各个样品,分别代入主成分表达式,就可以得到各主成分下的各个样品的新数据,即为主成分得分。具体形式可如下。

第六步:依据主成分得分的数据,则可以进行进一步的统计分析。其中,常见的应用有主成份回归,变量子集合的选择,综合评价等。

 

III. 主成分分析法(PCA)案例

为了系统的分析某IT类企业的经济效益,选择统计了8个不同的利润指标,15家企业关于这8个指标的统计数据如下所示,试对此进行主成分分析,并进行相关评价。

  15家企业的利润指标的统计数据

变量

企业序号

净产值利润率(%)

固定资产利润率(%)

 

总产值利润率(%)

销售收入利润率(%)

产品成本利润率(%)

物耗利润率(%)

人均利润率

 (千元/人)

 

流动资金利润率(%)

1

40.4

24.7

7.2

6.1

8.3

8.7

2.442

20.0

2

25.0

12.7

11.2

11.0

12.9

20.2

3.542

9.1

3

13.2

3.3

3.9

4.3

4.4

5.5

0.578

3.6

4

22.3

6.7

5.6

3.7

6.0

7.4

0.176

7.3

5

34.3

11.8

7.1

7.1

8.0

8.9

1.726

27.5

6

35.6

12.5

16.4

16.7

22.8

29.3

3.017

26.6

7

22.0

7.8

9.9

10.2

12.6

17.6

0.847

10.6

8

48.4

13.4

10.9

9.9

10.9

13.9

1.772

17.8

9

40.6

19.1

19.8

19.0

29.7

39.6

2.449

35.8

10

24.8

8.0

9.8

8.9

11.9

16.2

0.789

13.7

11

12.5

9.7

4.2

4.2

4.6

6.5

0.874

3.9

12

1.8

0.6

0.7

0.7

0.8

1.1

0.056

1.0

13

32.3

13.9

9.4

8.3

9.8

13.3

2.126

17.1

14

38.5

9.1

11.3

9.5

12.2

16.4

1.327

11.6

15

26.2

10.1

5.6

15.6

7.7

30.1

0.126

25.9

 

解:根据题目中的数据,利用matlab软件编程求解,对问题进行主成分分析。

求解结果如下:

 

1.标准化结果如下:

v =

    1.0023    2.3473   -0.3410   -0.5714   -0.3496   -0.6574    0.9030    0.4483

   -0.2286    0.3072    0.4774    0.3896    0.2835    0.4309    1.9108   -0.6218

   -1.1718   -1.2909   -1.0162   -0.9244   -0.8863   -0.9603   -0.8049   -1.1617

   -0.4444   -0.7129   -0.6684   -1.0421   -0.6661   -0.7805   -1.1732   -0.7985

    0.5148    0.1541   -0.3615   -0.3752   -0.3909   -0.6385    0.2470    1.1846

    0.6187    0.2732    1.5414    1.5075    1.6460    1.2922    1.4298    1.0963

   -0.4684   -0.5259    0.2114    0.2327    0.2422    0.1849   -0.5584   -0.4745

    1.6418    0.4262    0.4160    0.1739    0.0083   -0.1653    0.2891    0.2323

    1.0183    1.3952    2.2371    1.9586    2.5956    2.2670    0.9094    1.9995

   -0.2446   -0.4919    0.1910   -0.0222    0.1459    0.0524   -0.6115   -0.1702

   -1.2277   -0.2029   -0.9549   -0.9440   -0.8588   -0.8656   -0.5337   -1.1323

   -2.0830   -1.7500   -1.6710   -1.6304   -1.3818   -1.3767   -1.2831   -1.4170

    0.3549    0.5112    0.1091   -0.1399   -0.1431   -0.2221    0.6134    0.1636

    0.8505   -0.3049    0.4979    0.0954    0.1872    0.0713   -0.1186   -0.3763

   -0.1327   -0.1349   -0.6684    1.2918   -0.4321    1.3679   -1.2190    1.0276

2.相关系数矩阵:

std =

    1.0000    0.7630    0.7017    0.5868    0.5959    0.4896    0.5973    0.7300

    0.7630    1.0000    0.5504    0.4667    0.5158    0.4196    0.7046    0.6717

    0.7017    0.5504    1.0000    0.8407    0.9760    0.8161    0.6941    0.6825

    0.5868    0.4667    0.8407    1.0000    0.8667    0.9823    0.4926    0.7938

    0.5959    0.5158    0.9760    0.8667    1.0000    0.8667    0.6260    0.7153

    0.4896    0.4196    0.8161    0.9823    0.8667    1.0000    0.4216    0.7505

    0.5973    0.7046    0.6941    0.4926    0.6260    0.4216    1.0000    0.4656

    0.7300    0.6717    0.6825    0.7938    0.7153    0.7505    0.4656    1.0000

 

3.特征向量(vec)及特征值(val):

 

vec =

 

    0.2182    0.1370   -0.2781    0.2283    0.6727    0.3115    0.3788    0.3334

   -0.0745   -0.1102   -0.2276   -0.5733   -0.4046    0.1871    0.5562    0.3063

   -0.7186   -0.0520    0.1186   -0.2240    0.3874   -0.3182   -0.1148    0.3900

    0.0386   -0.6914   -0.3808    0.2788   -0.1547    0.0888   -0.3508    0.3780

    0.6385   -0.0660    0.3451   -0.4158    0.1518   -0.2715   -0.2254    0.3853

   -0.0123    0.6864   -0.3738   -0.0066   -0.2554    0.0696   -0.4337    0.3616

    0.0675    0.1057    0.0716    0.5033   -0.2816   -0.6189    0.4147    0.3026

   -0.1286    0.0413    0.6692    0.2552   -0.2055    0.5452   -0.0031    0.3596

 

val =

 

    0.0027         0         0         0         0         0         0         0

         0    0.0060         0         0         0         0         0         0

         0         0    0.1369         0         0         0         0         0

         0         0         0    0.1456         0         0         0         0

         0         0         0         0    0.2858         0         0         0

         0         0         0         0         0    0.5896         0         0

         0         0         0         0         0         0    1.0972         0

         0         0         0         0         0         0         0    5.7361

 

特征根从大到小排序:

5.73614

1.09723

0.589634

0.285791

0.14562

0.136883

0.00598681

0.00271084

4.根据累计贡献率,假设阈值为90%,选出主成分,计算如下:

贡献率:

newrate =

    0.7170    0.1372    0.0737    0.0357    0.0182    0.0171    0.0007    0.0003

主成分数:3

 

主成分载荷:

    0.7985    0.3968    0.2392

    0.7336    0.5826    0.1436

    0.9340   -0.1202   -0.2443

    0.9052   -0.3674    0.0682

    0.9228   -0.2361   -0.2085

    0.8661   -0.4543    0.0535

    0.7246    0.4344   -0.4752

    0.8613   -0.0032    0.4186

 

5.计算得分,倒数第二列表示的是各企业的得分情况,最后一列表示的是各企业的排序顺序:

 

score =

 

    1.8350    2.7882    0.4175    5.0408    3.0000

    2.3254    0.4571   -1.3051    1.4774    7.0000

   -6.9020   -0.4556   -0.2508   -7.6085   14.0000

   -5.2739   -0.1237    0.2040   -5.1937   12.0000

    0.1324    0.9612    0.6339    1.7275    5.0000

    8.1171   -0.6926   -0.5812    6.8432    2.0000

   -0.7813   -0.9854   -0.1972   -1.9640   11.0000

    2.4436    0.9838    0.3134    3.7409    4.0000

   12.4388   -1.0258    0.0159   11.4289    1.0000

   -0.8076   -0.7218    0.0144   -1.5150   10.0000

   -5.7797    0.2241   -0.2415   -5.7971   13.0000

  -10.6013   -0.6473   -0.2214  -11.4700   15.0000

    0.8947    0.8776   -0.0830    1.6893    6.0000

    0.8313   -0.0620   -0.0919    0.6774    9.0000

    1.1278   -1.5779    1.3731    0.9230    8.0000

 

可以看出,第9家企业的综合效益最好,第12家企业的综合效益最差。

猜你喜欢

转载自blog.csdn.net/weixin_39919527/article/details/82532817