(完整word版)主成分分析PCA(含有详细推导过程以和案例分析matlab版)

(完整word版)主成分分析PCA(含有详细推导过程以和案例分析matlab版)
(完整word版)主成分分析PCA(含有详细推导过程以和案例分析matlab版)

主成分分析法(PCA)

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

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

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

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

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

对于一个样本资料.观测p 个变量p x x x Λ,,21.n 个样品的数据资料阵为:

??????

? ??=np n n p p x x x x x x x x x X ΛM M M M ΛΛ212222111211()p x x x Λ,,21=

其中:p j x x x x nj j j j ΛM ,2,1,21=??????

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

???????+++=+++=+++=p

pp p p p p p p p x a x a x a F x a x a x a F x a x a x a F ΛΛΛΛ22112222121212121111 简写为:

p jp j j j x x x F ααα+++=Λ2211

p j ,,2,1Λ=

要求模型满足以下条件:

①j i F F ,互不相关(j i ≠.p j i ,,2,1,Λ=)

②1F 的方差大于2F 的方差大于3F 的方差.依次类推

③.,2,1122221p k a a a kp k k ΛΛ==+++

于是.称1F 为第一主成分.2F 为第二主成分.依此类推.有第p 个主成分。主成分又叫主分量。这里ij a 我们称为主成分系数。

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

AX F =.其中

??????? ??=p F F F F M 21 ??????

? ??=p x x x X M 21 ??????

? ??=??????? ??=p pp p p p p a a a a a a a a a a a a A M ΛM M M M ΛΛ21212222111211 A 称为主成分系数矩阵。

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

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

图1 主成分几何解释图

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

???+-=+=θθθθcos )sin (sin cos 212211j j j

j j j x x y x x y n j Λ2,1=

写成矩阵形式为:??

????=n n y y y y y y Y 2222111211

ΛΛ X U x x x x x x n n ?=??

???????????-=2222111211cos sin sin cos ΛΛ

θθθθ 其中U 为坐标旋转变换矩阵.它是正交矩阵.即有I U U U U ='='-,1.即满足

1cos sin 22=+θθ。

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

图2 主成分几何解释图

新坐标21y y -有如下性质:

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

(2)二维平面上的n 个点的方差大部分都归结为1y 轴上.而2y 轴上的方差较小。 1y 和2y 称为原始变量1x 和2x 的综合变量。由于n 个点在1y 轴上的方差最大.因而将二维空间的点用在1y 轴上的一维综合变量来代替.所损失的信息量最小.由此称1y 轴为第一主成分.2y 轴与1y 轴正交.有较小的方差.称它为第二主成分。

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

一、主成分的导出

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

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

AX F =

其协差阵应为.

A X AX AX AX AX Var F Var ''='?==)()()()(

=??????

? ??=Λp λλλO 21 2、设原始数据的协方差阵为V .如果原始数据进行了标准化处理后则协方差阵等于相关矩阵.即有.

X X R V '==

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

I A A ='

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

Λ='=''=A AR A X AX F Var )(

Λ'='Λ

='A A R A AR

展开上式得 ??????

? ?????????? ??=??????? ?????????? ??p pp p p p p pp p

p p p pp p p p p a a a a a a a a a a a a a a a a a a r r r r r r r r r λλλO ΛM M M M ΛΛΛM M M M ΛΛΛM M M M ΛΛ21212221212111212221212111212222111211 展开等式两边.根据矩阵相等的性质.这里只根据第一列得出的方程为:

()???????=-+++=++-+=+++-0

)(0)(0111221111212122112111121211111p pp p p p p p p a r a r a r a r a r a r a r a r a r λλλΛΛΛΛΛΛΛ 为了得到该齐次方程的解.要求其系数矩阵行列式为0.即

01

21212221

1121

11=---λλλpp p p p p r r r r r r r r r ΛM M M M

ΛΛ 01=-I R λ

显然.1λ是相关系数矩阵的特征值.()

p a a a a 112111,,Λ=是相应的特征向量。

根据第二列、第三列等可以得到类似的方程.于是i λ是方程 0=-I R λ

的p 个根.i λ为特征方程的特征根.j a 是其特征向量的分量。

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

设相关系数矩阵R 的p 个特征根为p λλλ≥≥≥Λ21.相应的特征向量为j a

??????

? ??=??????? ??=p pp p p p p a a a a a a a a a a a a A M ΛM M M M ΛΛ21212222111211 相对于1F 的方差为

1111

11)(λ='=''=a R a a X X a F Var 同样有:i i F Var λ=)(.即主成分的方差依次递减。并且协方差为:

j i j i Ra a X a X a Cov '=''),(

j p

i a a a a )(1∑=''=αα

ααλ j i a a a a j i p ≠=''=∑=,0))((1α

αααλ

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

于是.变量()

p x x x Λ,,21经过变换后得到新的综合变量 ???????+++=+++=+++=p

pp p p p p p p p x a x a x a F x a x a x a F x a x a x a F ΛΛΛΛ22112222121212121111 新的随机变量彼此不相关.且方差依次递减。

二、主成分分析的计算步骤

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

??????

? ??=np n n p p x x x x x x x x x X ΛM M M M ΛΛ212222111211 第一步:对原始数据进行标准化处理。

)var(*

j j ij ij x x x x -= ),,2,1;,,2,1(p j n i ΛΛ==

其中 ∑==n

i ij j x n x 1

1 21

)(11)var(j n i ij j x x n x --=∑= ),,2,1(p j Λ=

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

??????

????????=pp p p p p r r r r r r r r r R ΛM ΛM M ΛΛ212222111211 为方便.假定原始数据标准化后仍用X 表示.则经标准化处理后的数据的相关系数为:

tj n

t ti ij x x n r ∑=-=1

11 ),,2,1,(p j i Λ=

第三步:用雅克比方法求相关系数矩阵R 的特征值(p λλλΛ21,)和相应的特征向量()p i a a a a ip i i i ΛΛ2,1,,,21==。

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

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

贡献率=∑=p i i

i

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

另外.在实际应用中.选择了重要的主成分后.还要注意主成分实际含义解释。主成分分

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

第五步:计算主成分得分。

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

??????

? ??nk n n k k F F F F F F F F F ΛM M M M ΛΛ212222111211

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

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

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

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

变量 企业序号

净产值利润率(%) 1i X 固定资产利润率(%) 2i X 总产值利润率(%) 3i X 销售收入利润率(%) 4i X 产品成本利润率(%) 5i X 物耗利润率(%) 6i X 人均利润率 (千元/人) 7i X 流动资金利润率(%) 8i X 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家企业的综合效益最差。

相关主题
相关文档
最新文档