主成分分析
在研究多变量问题时,变量太多会增大计算量和增加分析问题的复杂性,人们自然希望在进行定量分析的过程中涉及的变量较少,而得到的信息量又较多。主成分分析是解决这一问题的理想工具。(主要分析众多变量之间的相关性)
例如:在学生学习过程中,已经修完p门课程,其成绩为x1,x2,…,xp,如何评价每个学生的综合能力?假设每门课程有权重c1,c2,…,cp,则加权之和为:
s= c1x1+c2x2+…+cpxp
每个学生对应这样一个成绩,假设有n个学生,其成绩分别为:s1,s2,…,sn。如果这些值很分散,表明每个人的综合能力能很好地区分。关键是如何确定权重c1,c2,…,cp,在数学上反映的问题是什么呢?
基于上述问题,人们就希望在定量研究中涉及的变量较少,而得到的信息量又较多。主成分分析正是研究如何通过原来变量的少数几个线性组合来解释原来变量绝大多数信息的一种多元统计方法。
再比如如下线性变换:
变换的目的是为了使得n个样本点在y1轴方向上的离散程度最大,既y1的方差达最大。说明变量y1代表了原始数据的绝大部分信息,对y2忽略也无损大局,即由两个指标压缩成一个指标。
◆主成分分析的目标
主成分分析,亦称主分量分析.
目标——化简多指标系统,构造方便系统分析的少数综合指标.
数学本质——利用降维技术,将多个变量(指标)归结为线性无关的几个(少数)主成分(综合指标).
思想:利用降维的思想,把多指标转化为少数几个综合指标。
数据结构
适合用主成分分析的数据具有如下结构:
样本
指标
x11
x21
x31
……
xn1
主成分分析最大的问题是受量纲的影响,因此,实际应用中,需要对数据进行标准化。主成分分析适宜用于大样本的场合.
主成分分析要求变量之间有一定的相关关系:
数学本本质:,即
,其中A是正交矩阵。
在解决实际问题时, 一般不是取 m个主成分, 而是根据累计贡献率(即方差贡献)的大小取前 k个, 累计贡献率达到85%; 这样就基本包含了全部测量指标所具有的信息, 这样即减少了变量的个数有便于对实际问题的分析和研究。
二、主成分分析的MATLAB软件实现
●a=p(X) 基于n×m的矩阵X进行主成分分析,返回主成分系数,即所谓的荷载(反应新指标下旧指标所占的比重大小)。X的行对应于观测量,列对应于变量。a是一个m×m的矩阵,每列包含一个主成分的系数。a就是正交变换的A,即变换为
●[a,b]=p(X) a同前,b返回主成分得分,即X在新坐标系意义下的表示。得分矩阵b与数据矩阵X的阶数是一致的。
●[a,b,c]=p(X) a,b同前,c是得分矩阵b对应列的方差向量,即相关系数矩阵的特征值;容易计算方差所占的百分比
percent-c= 100*c/sum(c);
●[a,b,c,d]=p(X) a,b,c同前,d是检验的t2-统计量(主要用于方差分析)。
:
SGPT(转氨酶)X1
肝大指数 X2,
ZnT(硫酸锌浊度)X3
AFP(胎甲球)X4
指标
病例号
X1
X2
X3
X4
1
40
5
20
2
10
5
30
3
120
13
50
4
250
18
0
5
120
9
50
6
10
12
50
7
40
19
40
8
270
13
60
9
280
11
60
10
170
9
60
11
180
14
40
12
130
30
50
13
220
17
20
14
160
35
60
15
220
14
30
16
140
20
20
17
220
14
10
18
40
10
0
19
20
12
60
20
120
20
0
Matlab数据文件是pca-
当原始数据的量级和量纲存在较大差异时,需要先对数据进行标准化,然后进行主成分分析。数据标准化的方法是将原始数据的各列除以各列的标准差。
pex1=xlsread('pca-','B2:E22'); %导入数据文件到当前工作目录,只导入病例数据
stdpex1=std(pex1) %求每列的标准差
spex1=pex1./stdpex1(ones(20,1),:) %原始数据标准化后的数据,即原始数据的各列除以各列的标准差
主成分分析 来自淘豆网m.daumloan.com转载请标明出处.