资源描述
省属重点综合性大学
国家“211工程”重点建设院校
xx大学
信息统计分析期末论文
学 院:XX
年 级:XX
专 业:XX
姓 名:XX
学 号:XX
手 机:13955118643
从化学角度探索主成分分析是否名副其实
文章摘要
本文就探索化学上的成分和统计学上主成分的成分有何异同,先后用均匀分布和正态分布随机数来模拟的分子数来得到的原子个数,再利用这些原子个数的数据,通过MATLAB中主成分提取及相关函数来得出几个主成分。最后分析发现这些主成分和实际的化学成分之间的关系很微弱,本文的主成分提取方法不足以提取出化学成分,也说明了MATLAB中的主成分分析尚需改进,以获得另外的主成分,从而可以选择比较好说明问题的主成分。
关键字:主成分 化学成分 尺度问题
If Principal component Analysis is just in name only from the chemistry perspective
Abstract: This article shows several approaches to obtaining approximate solutions to the principal component analysis using MATLAB random number generator, uniform and normal here, and comparison between composition from the chemistry perspective , used here, and components from the Statistics perspective; it also extends some formulators already presented for such problems. When searching the principal components, a lot of problems bring out. It presents us that the method of obtaining an acceptable group of such components is of great difficulty. So a better algorithm is needed.
Keywords:Principal component chemical composition scale problem
一、背景
主成分分析(principal component analysis)是将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。又称主分量分析。在实际课题中,为了全面分析问题,往往提出很多与此有关的变量(或因素),因为每个变量都在不同程度上反映这个课题的某些信息。但是,在用统计分析方法研究这个多变量的课题时,变量个数太多就会增加课题的复杂性。人们自然希望变量个数较少而得到的信息较多。在很多情形,变量之间是有一定的相关关系的,当两个变量之间有一定相关关系时,可以解释为这两个变量反映此课题的信息有一定的重叠。主成分分析是对于原先提出的所有变量,建立尽可能少的新变量,使得这些新变量是两两不相关的,而且这些新变量在反映课题的信息方面尽可能保持原有的信息。主成分分析首先是由K.皮尔森对非随机变量引入的,尔后H.霍特林将此方法推广到随机向量的情形。信息的大小通常用离差平方和或方差来衡量。
数学原理:在统计学中,主成分分析是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。
二、模型假设
现从化学角度来探讨主成分分析。假设现在实验室有的混合液若干份,它们各自的配比不尽相同。为简便起见,采用计算机模拟的方法来获得若干组的已配好溶液,如本次实验将采用三十组的配比,并且假设可以在实验室通过一定方法计算出各种原子的个数,通过提取主成分的方法来最终确定混合液的成分是否是。
三、符号说明
原子个数为个单位,
原子个数为个单位,
原子个数为个单位,
原子个数为个单位,
原子个数为个单位,
主成分用来表示,其中=1:, 为最终确定的主成分的个数。
四、基本算法
1) 主成分分析直观解释和算法
主成分分析主要是用来处理若干个随机变量,如个变量,为了简化它们,我们可以研究能否找出一组新的变量使原来的变量可以用它们来线性表示。应具有如下的性质:
u 相互之间应该是独立的,并且它们的方差之和与的方差之和相等,的方差从大到小递减;
u 为保证便于分析与计算,要求他们的模长均为1。
直观的解释为由张出一个线性空间,其任意元素均可由线性表示,即。
具体的解释参看文献【1】
2) 尺度问题
尺度问题是主成分分析的一个重要问题,我们知道在求主成分时首先利用协方差阵进行谱分解,从而来求特征值。如果我们改变某些变量的尺度则会是协方差矩阵改变,因此得到不同的特征值。解决的办法是首先对进行中心化、标准化,使其方差为1,即在实际中使用相关矩阵来代替协方差矩阵。
五、检验过程及结果分析
1)数据模拟
利用0-1均匀分布随机数来获得的配比,即添加分别为 个相对单位的量,产生三十组配比,matlab程序如下:
for i=1:30
h2so4=rand;
hcl=rand;
hno3=rand;
h2o=rand;
H(i)=h2so4*2+hcl+hno3+h2o*2;
O(i)=h2so4*4+hno3*3+h2o;
Cl(i)=hcl;
S(i)=h2so4;
N(i)=hno3;
end
Data=[H' O' Cl' S' N'];
得到原子的相对单位下的个数如下数据:
O
Cl
S
N
1
4.7094
5.3178
0.8636
0.6586
0.5676
2
2.9530
5.8583
0.1526
0.7918
0.8330
3
3.4787
5.2520
0.6690
0.6390
0.7721
4
2.3263
3.7667
0.4831
0.4416
0.6081
5
1.7343
1.7622
0.7902
0.0020
0.5136
6
1.5873
2.0441
0.1573
0.1034
0.4075
7
1.9659
1.0451
0.9418
0.0527
0.1500
8
2.3327
4.2569
0.1685
0.3111
0.8966
9
3.2897
4.6409
0.4109
0.7340
0.3998
10
1.5370
2.6170
0.5247
0.1693
0.6412
11
4.0987
5.9026
0.8035
0.8369
0.6978
12
2.0697
1.3549
0.8207
0.0826
0.1930
13
2.8805
3.5131
0.3087
0.0130
0.8754
14
3.1482
3.3323
0.8807
0.3331
0.4797
15
3.8806
4.9987
0.6619
0.6159
0.6166
16
3.4612
4.1921
0.7140
0.5102
0.5152
17
4.2487
5.4078
0.8221
0.9667
0.3178
18
2.6535
3.5977
0.2544
0.1302
0.8030
19
2.8533
2.3231
0.5616
0.0136
0.4546
20
3.0734
3.5421
0.0650
0.2822
0.4766
21
4.6036
6.4191
0.5612
0.9223
0.6523
22
0.7689
2.0569
0.0011
0.1062
0.5418
23
3.1226
4.7853
0.1957
0.4513
0.7871
24
3.4977
3.2542
0.8909
0.0155
0.7617
25
3.2371
4.5317
0.3807
0.7586
0.3311
26
3.6444
5.0820
0.7672
0.5646
0.7799
27
3.4374
4.3967
0.4710
0.8022
0.2028
28
4.4926
6.2637
0.6768
0.6665
0.9425
29
4.3399
6.4264
0.8663
0.7374
0.9909
30
3.5481
4.3866
0.7926
0.6291
0.4486
2)利用课程中已经做好的主成分提取界面来提取主成分:
A.方差比0.99,协方差阵,所有指标:
导出文件中显示:
主成分分析如下:
Y1=-.5055*X1-.8464*X2-.3094e-1*X3-.1539*X4-.5900e-1*X5
Y2=-.7619*X1+.4487*X2-.4239*X3+.4721e-1*X4+.1904*X5
Y3=.1472*X1-.1991e-1*X2-.2517e-1*X3-.6535*X4+.7418*X5
Y4=-.3569*X1+.1491*X2+.8966*X3+.9854e-1*X4+.1920*X5
特征值如下:
3.1804
0.26782
0.054434
0.036973
1.0244e-009
写成公式如下:
前面已经给出了的定义:分别为的相对单位个数
第一组主成分主要由H O S组成,比例为
第二组主成分主要由H O S N组成,比例为
第三组主成分主要由H Cl N组成,比例为
第四组主成分主要由H O Cl N组成,比例为
B、方差比0.99,相关系数阵
导出文件显示(主要系数加粗处理了)
主成分分析如下:
Y1=.5508*X1+.5760*X2+.1811*X3+.5203*X4+.2478*X5
Y2=-.1784*X1+.1955*X2-.7115*X3-.8726e-1*X4+.6451*X5
Y3=.9121e-1*X1-.9543e-1*X2+.5834*X3-.4943*X4+.6308*X5
Y4=.7699*X1-.9899e-1*X2-.3396*X3-.4927*X4-.1983*X5
特征值如下:
2.8447
1.2525
0.74925
0.15355
4.4945e-009
写出公式如下:
当然也可以求出比例,这里从略。
3)结果分析
上面的A由于有尺度问题提出的四个主成分,从特征值看,只有第一个占据较大方差比,而且各系数都是同号的,这是很符合实际想法的。上面只给出了部分的相对比例,这里将计算出所有相对比例:
这里面O的贡献最大,Cl的贡献最小。
B中采用相关系数的方法,消除了尺度影响,但是仍然只有第一组主成分是同号的,相对比例是
这里仍然是O H 的贡献最大,Cl的贡献依然最小。跟上面的分析不矛盾。
六、化学角度的审视和改进策略
上节中采用随机数模拟的配制,期望效果是将这几种物质以主成分的形式给提取出来,即希望得到如此的表达式:
但是上节中得出的主成分却相差很远,究竟是哪里出了问题?下面将要就此问题进行探讨。
1) 改变原始数据,将各原子的单位变成百分比,利用MATLAB处理
sumr=sum(Data,2);
Data1=zeros(30,5);
for i=1:30
Data1(i,:)=Data(i,:)/sumr(i);
end
处理后如下表:
H
O
Cl
S
N
1
0.38866
0.43887
0.071274
0.054354
0.046845
2
0.27888
0.55326
0.014411
0.074781
0.078671
3
0.32178
0.48581
0.061883
0.059106
0.071418
4
0.30506
0.49394
0.063346
0.057907
0.079744
5
0.36114
0.36694
0.16455
0.00042178
0.10695
6
0.36916
0.47541
0.036593
0.02406
0.094778
7
0.47309
0.25149
0.22665
0.01268
0.03609
8
0.29284
0.53439
0.021157
0.039049
0.11256
9
0.34719
0.48979
0.043366
0.077464
0.042193
10
0.27999
0.47676
0.095595
0.030843
0.11681
11
0.33216
0.47836
0.065113
0.067819
0.056549
12
0.4578
0.29969
0.18154
0.018274
0.042695
13
0.37948
0.46282
0.040674
0.0017071
0.11532
14
0.38515
0.40767
0.10775
0.040751
0.058685
15
0.36019
0.46397
0.061436
0.057168
0.057235
16
0.3685
0.44632
0.076013
0.054314
0.054852
17
0.36119
0.45973
0.06989
0.082182
0.027013
18
0.35671
0.48365
0.034193
0.017503
0.10795
19
0.45975
0.37433
0.090487
0.0021956
0.073243
20
0.41313
0.47614
0.008742
0.037928
0.064064
21
0.34986
0.48783
0.042649
0.070095
0.049574
22
0.22128
0.59194
0.0003089
0.030556
0.15591
23
0.33425
0.51223
0.020944
0.048312
0.084258
24
0.4154
0.38649
0.1058
0.0018433
0.090464
25
0.35037
0.49048
0.041208
0.082103
0.035837
26
0.33626
0.4689
0.070788
0.052092
0.071957
27
0.36921
0.47225
0.050591
0.086165
0.021778
28
0.34447
0.48027
0.051891
0.051104
0.072267
29
0.32482
0.48099
0.064836
0.055191
0.074168
30
0.36187
0.44738
0.080836
0.064159
0.045757
方差比为1,相关矩阵输出的结果:
主成分分析如下:
Y1=-.5180*X1+.5744*X2-.5163*X3+.2857*X4+.2314*X5
Y2=-.1113*X1-.1500e-1*X2+.4512e-1*X3-.6775*X4+.7255*X5
Y3=-.6555*X1-.1264*X2+.6954*X3+.2510*X4+.8805e-1*X5
Y4=-.3008*X1-.8059*X2-.4865*X3+.1263*X4+.8538e-1*X5
Y5=-.4462*X1+.6610e-1*X2-.1053*X3-.6167*X4-.6365*X5
特征值如下:
3.0108
1.5879
0.40135
1.3647e-009
4.7316e-010
就化学角度,本次的结果更加无法接受。
2) 由于正态分布的独立和相关是等价的,下面将利用标准正态分布随机数来获得的配比,即添加分别为 个相对单位的量,产生三十组配比,matlab程序如下(其中循环32次是为了确保取到有效数字30组,分析中只采用前三十组)
H=zeros(1,32);
O=zeros(1,32);
Cl=zeros(1,32);
S=zeros(1,32);
N=zeros(1,32);
for i=1:32
h2so4=normrnd(3,1);
hcl=normrnd(3,1);
hno3=normrnd(3,1);
h2o=normrnd(3,1);
if h2so4<=6&hcl>=0&...
hcl<=6&hcl>=0&...
hno3<=6&hno3>=0&...
h2o<=6&h2o>=0
H(i)=h2so4*2+hcl+hno3+h2o*2;
O(i)=h2so4*4+hno3*3+h2o;
Cl(i)=hcl;
S(i)=h2so4;
N(i)=hno3;
end
end
Data2=[H' O' Cl' S' N'];
得到原子的相对个数如下数据:
H
O
Cl
S
N
1
21.987
28.344
3.3255
4.7701
1.881
2
19.501
29.346
2.104
4.2698
3.1352
3
17.914
19.836
4.1837
1.8366
2.9846
4
16.44
22.184
2.3444
2.2836
3.3144
5
26.651
39.539
2.7249
4.8482
5.2126
6
11.484
14.313
1.3195
1.0549
2.4265
7
16.69
21.147
3.8369
3.0089
2.2777
8
19.973
25.09
2.9795
2.7988
3.2789
9
19.813
29.39
1.2494
3.6217
3.6973
10
19.564
26.854
4.3101
3.6363
3.3271
11
15.96
24.939
0.55098
2.8507
3.4733
12
14.987
18.346
2.3453
2.4089
1.9193
13
17.856
23.982
2.6696
3.3793
2.5001
14
18.868
27.62
2.0427
2.8252
4.2925
15
20.561
26.575
2.5023
4.2809
1.8813
16
13.219
21.889
2.2438
3.0412
2.9109
17
21.177
27.61
2.0188
4.0839
2.3115
18
18.502
20.464
2.5871
2.0908
2.4938
19
19.428
22.686
1.9189
3.0809
1.8755
20
21.827
27.768
4.6351
4.9375
1.7441
21
15.382
20.51
3.3075
2.8011
2.4277
22
21.02
29.56
4.0821
2.5532
5.3726
23
21.406
23.333
3.7017
2.7334
2.5124
24
20.998
27.759
1.7724
4.1069
2.3301
25
17.918
20.658
3.3931
3.3881
1.2927
26
17.361
23.549
2.3632
3.6856
1.9974
27
18.846
21.995
2.9285
1.946
3.2792
28
21.102
30.447
2.458
3.1798
4.6342
29
20.338
24.255
3.6716
3.2308
2.4919
30
21.186
23.468
3.625
3.2685
1.9527
方差比0.99,协方差矩阵:
主成分分析如下:
Y1=-.4907*X1-.8565*X2-.1715e-1*X3-.1258*X4-.9695e-1*X5
Y2=-.7580*X1+.4156*X2-.3908*X3-.5909e-1*X4+.3106*X5
Y3=.1277*X1-.7466e-1*X2+.3341*X3-.5903*X4+.7198*X5
Y4=.3916*X1-.1683*X2-.8488*X3-.3081*X4+.5437e-1*X5
特征值如下:
29.6289
2.7984
0.92412
0.58172
9.3046e-009
方差比0.99,相关矩阵:
主成分分析如下:
Y1=.5651*X1+.5959*X2+.1290*X3+.4856*X4+.2704*X5
Y2=-.1410*X1+.2051*X2-.5968*X3-.3157*X4+.6944*X5
Y3=.9518e-1*X1-.7572e-1*X2+.7401*X3-.4723*X4+.4631*X5
Y4=.7712*X1-.1556*X2-.2706*X3-.4931*X4-.2543*X5
特征值如下:
2.64
1.2407
0.91073
0.20857
4.0142e-009
本次的两种结果和上一节的类似,都是第一组主成分系数同号,最后一个特征值可以忽略不计。
七 得出结论和进一步猜想
显然溶液的成分是不相关的,但是多次计算都无法得到化学意义上的结果,那么就需要对主成分的算法进行分析:
在线性代数中讲述了如何将一组向量张成线性空间的方法,理论上得到的标准正交基是不唯一的,但是计算机中给出的求正定对称阵的谱分解方法却是给只给出了一个解,这往往就会使得上面计算得到的最终主成分的意义难以捉摸。
在参考资料【1】中对soil数据的主成分提取,得到了几个抽象属性。那么这里面的第一个属性应该是什么呢(暂不考虑百分比的数据)?它是各种原子数的加权,有Cl原子肯定会有H原子,有S原子肯定会有H和O原子,有N原子肯定会有O原子和氢原子,说明了某些分子的多少是和其他分子的多少有着关系。
可以看出,主成分分析并不总能得出很好的主成分。虽然主成分之间不相关,但是抽象出来的主成分由于无法解释,所以很难被应用到实际中去说明一种事物的性质。MATLAB中还有因子分子这一共能,也可以用来改编来求主成分。在不同的参数下得出不同的因子,因此也因可以得出不同的主成分。
参考文献:
【1】 曾建军 李世航 安徽大学数学科学学院 信息统计分析 180-198;
【2】 John H Mathews Numerical Methods Using MATLAB 4th
- 12 -
展开阅读全文