当前位置:文档之家› SAS主成分分析

SAS主成分分析

SAS主成分分析
SAS主成分分析

SAS主成分分析

分类:数据之美2013-07-28 20:18 2343人阅读评论(0) 收藏举报

目录(?)[-]

1. 主成分分析流程

2. SAS主成分分析示例

3. SAS主成分分析输出结果详解

4. 特征值和特征向量隐藏的秘密

5. 总结

6. 参考文献

同事讲主成分分析,举了这么个例子:就像你选女人,有身材、相貌两个指标,如果身材、相貌都很突出,那当然很好选择;但如果两个女人,一个身材突出,一个相貌出众,看着都很喜欢,那可如何是好!这个时候通过主成分分析,汇总出一个指标,这个指标可以一定程度上代替原来的身材、相貌,这时就可以排序做出选择了。

这例子当然有很多缺陷,但至少指出了主成分分析的目的之一:减少决策变量数,也就是降维。主成分分析的另一个目的是防范多重共线性。实际问题往往涉及很多变量,但某些变量之间会有一定的相关性,我们希望构造较少的几个互不相关的新指标来代替原始变量,去除多重共线性,减少所需分析的变量,同时尽可能减少这一过程的信息损失。主成分分析正是基于这样的目的而产生的有效方法。

主成分分析流程

主成分分析包含以下流程:

1、原始数据标准化。

2、计算标准化变量间的相关系数矩阵。

3、计算相关系数矩阵的特征值和特征向量。

4、计算主成分变量值。

5、统计结果分析,提取所需的主成分。

SAS主成分分析示例

我们从实战入手,先来个简单的例子,完整体验使用SAS进行主成分分析的过程。准备好图1所示的数据集,该数据集包含5个变量和22个观测。其中变量num用于标识每条观测。

图1

可以直接复制下面的程序完成输入:

data Practice.PCA_Demo;

input num var1 var2 var3 var4;

cards;

1 21 10.7 99.7 9.5

2 9.5 17.9 139.6 18.7

3 21.2 8.

4 90 6.8

4 12 22.7 42.

5 24.1

5 6.8 21.2 55.2 22.4

6 8.2 22.4 55.6 22.6

7 3.6 29.2 68.3 26.7

8 19.5 15.2 18.8 17.4

9 24.8 5.4 43.7 2.9

10 8.4 18.6 146.2 19.7

11 28.9 4.4 4.9 1.1

12 19.5 15.1 10.2 18.5

13 28.3 4.7 13.3 1.8

14 24.7 12.1 116.8 12.6

15 12.8 23.6 90 23.7

16 23.1 6.8 100.1 3.7

17 15.1 13.7 100.9 14.2

18 2.9 6.2 80.7 2.7

19 18.4 11.8 99.3 13.8

20 22.9 12.3 47.6 13.3

21 5.8 29.4 83.5 27.6

22 18.8 8.6 61.1 8.9

;

run;

我们的目的是,化简var1-var4四个变量,找出可以替代这四个变量的若干个彼此独立的新变量,也就是找出主成分。主成分分析代码如下:proc princomp

data= Practice.PCA_Demo

out= Work.PCA_Demo_out

prefix= comp

outstat= Work.PCA_Demo_stat

;

var var1 var2 var3 var4;

run;

这段代码翻译过来的意思是:对源数据Practice.PCA_Demo的四个变量var1、var2、var3和var4(以下简称原始变量)做主成分分析,输出结果(包含源数据的所有变量及新增的主成分变量)放在

Work.PCA_Demo_out数据集,主成分变量名的前缀使用comp。相关变量的统计结果(均值、方差、特征值、特征向量等)输出到Work.PCA_Demo_stat。

程序运行后,输出界面显示如图2。

图2

输出结果Work.PCA_Demo_out存放了原始数据集的所有变量以及新变量comp1、comp2、comp3和comp4,分别代表第1至第4主成分,它们对原始变量的解释力度依次减少。

图3

一同输出的还有统计结果Work.PCA_Demo_stat:

图4

现在,我先假设你是个急性子,你可能会对我说:“不必告诉我这些输出结果的含义,我给了你四个变量,你只要返回给我较少的可用的字段

就可以了。”那么我会回答你,新的变量comp1和comp2就可以替代原来的四个变量var1、var2、var3和var4,因为这两个变量合起来解释了原来四个变量91.27%的信息,能够满足要求。

何以见得?请看图2的第4部分输出Eigenvalues of the Correlation Matrix,第四列Cumulative显示,第一个特征值分量占比0.6749(67.49%),第1、2个特征值合起来占比91.27%>85%,因此新变量comp1和comp2已经足以替代原有四个变量,它们是源数据集的主成分。

没错,在SAS上进行主成分分析,就是这么简单,结果的使用也不复杂,大多数情况下到此也就足够了。不过出于对科学本质的好奇,我们还是要详细研究下每项输出结果的含义,以便更好地理解主成分分析。

SAS主成分分析输出结果详解

作为细节强迫症重度患者,图2~图4只要有个点没搞清楚都觉得寝食难安。

我们先来看图2。

第1部分很简单,指出观测数为22,变量数为4,也就是我们在var 语句中指定4个原始变量。

第2部分Simple Statistics是对原始变量的简单描述性统计,Mean 是均值,StD是标准偏差(注意标准偏差与标准差的区别)。

Mean的计算公式我们都很熟悉,就是

(1)

标准偏差StD的计算公式是:

(2)

第3部分Correlation Matrix是原始变量的相关系数矩阵,其中的元素代表4个原始变量两两之间的相关系数。

相关系数的计算公式是:

(3)

从原始变量的相关系数矩阵可以看出,变量var1和var2、var1和var4呈现出较为显著的负相关,变量var2和var4则是强烈的正相关,其相关系数高达0.9752。

第4部分Eigenvalues of the Correlation Matrix输出了相关系数矩阵的特征值。Eigenvalue一列从大到小依次展示了4个特征值,特征值越大,表示对应的主成分变量包含的信息越多,对原始变量的解释力度越强。

Difference是相邻两个特征值的差,比如1.74819156 = 2.69946764 - 0.95127608。

Proportion表示主成分的贡献率,也就是,比如第1个特征值的贡献率0.6749 = 2.69946764 /

(2.69946764+0.95127608+0.32758452+0.02167176)。Cumulative则是累计贡献率,到第2个特征值累计贡献率0.9127 = 0.6749 + 0.2378。

我们在判断应提取多少个主成分时,根据的就是累计贡献率。0.9127的累计贡献率说明特征值1和特征值2对应的主成分变量comp1和comp2合起来能够反映原始变量91.27%的信息,能够满足应用需求。这时我们可以作出决策:提取两个主成分comp1和comp2代替4个原始变量。而如果我们希望主成分变量对原始变量的解释力度应达到95%以上,那么就需要加入comp3,共提取3个主成分,其累计贡献率达到99.46%。而提取全部4个主成分变量,则没有达到降维的目的,意义已经不大。至于这个累计贡献率要达到多少才算满足需求,需要视具体业务需求而定,我们的参考值是85%。

第5部分Eigenvectors是特征值对应的特征向量。图5一秒钟告诉你特征值和特征向量如何对应。图中的第1个特征值=2.699467638对应第一个特征向量V=(-0.530270329, 0.582022127, 0.232614551, 0.570923894)。同理可知第2个特征值和第2个特征向量的对应。

图5

特征值和特征向量的计算,依据的公式。这里A是相关系数矩阵(见图5)。

可以自行验证下面的等式是成立的。

若要自行计算特征值和特征向量,可以在proc iml过程步中调用eigen。上面计算相关系数矩阵的特征值和特征向量代码如下:

proc iml;

A={1-0.735255647 -0.357900243 -0.683084746,

-0.73525564710.182570450.975217499,

-0.3579002430.1825704510.173888292,

-0.6830847460.9752174990.1738882921

};

call eigen(eigenvalues, eigenvectors, A);

print A eigenvalues eigenvectors;

quit;

现在,我们要解读图3,根据前面的分析,在图3的数据集Work.PCA_Demo_out中,我们只要保留num、comp1和comp2三个字段,所形成的新数据集就可以替代源数据集,供未来的分析所使用。

接下来,我们要来回答:主成分变量comp1、comp2、comp3和comp4的值是怎么来的?

我们知道,主成分变量是原始变量的线性表示,用公式表示如下:

(4)

其中,X表示原始变量对应数据组成的矩阵(以下称为原始数据矩阵),U是特征向量以列向量形式依次排列组成的矩阵(以下称为特征向量矩阵)。在我们的示例中,

那么公式(4)的计算结果是:

什么?跟实际输出结果不符?挺好的,掉一次坑你就印象深刻了。事实上主成分数据矩阵不是原始数据矩阵和特征向量矩阵直接相乘的结果,而是原始数据标准化后的数据矩阵和特征向量矩阵相乘的结果。这就回到我们在主成分分析流程就已经提到的至关重要的第一步:原始数据标准化!数据标准化使得变量的平均值为0,标准偏差为1,消除了不同量纲对分析过程的影响。

图3的输出结果是有缺失的,我们看不到原始变量的标准化变量。我们可以使用proc standard过程步来查看数据标准化的结果,代码如下:proc standard

data= Practice.PCA_Demo

out= Work.PCA_Demo_std

mean=0

std=1;

var var1 var2 var3 var4;

run;

打开输出数据集Work.PCA_Demo_std,就能看到转化结果:

图6

现在,我们来修正下公式(4)

(5)

其中,是的数据标准化后的矩阵

现在再计算一遍Y,看看是不是如下结果呢?

矩阵的乘法公式告诉我们,本质上,某一个样本(比如样本1:(1, 21, 10.7, 99.7,9.5))的第一主成分变量的值(-0.75812),就是原始变量标准化后组成的行向量(0.598, -0.503, 0.711, -0.55)与第一特征向量(列向量)(-0.530270329; 0.582022127; 0.232614551;

0.570923894)的乘积。第二主成分变量值,是原始变量组成的行向量与第二特征向量(列向量)的乘积。依次类推。

我们来验证一下主成分变量之间是否线性无关。使用proc corr过程步可以计算变量之间的相关系数,代码如下:

proc corr

data= Work.PCA_Demo_out

out = Work.PCA_Demo_Comp_Corr

;

var comp1-comp4;

with comp1-comp4;

run;

输出结果为:

图7

可以看出,主成分变量之间的相关系数都为零。

最后我们来说说图4的统计结果Work.PCA_Demo_stat,它其实就是把图2的输出结果存入数据集中。

从表中Type of Observation字段可以看出,MEAN表示均值,STD 是标准偏差,N是观测数,CORR是相关系数,EIGENVAL是特征值,SCORE是以行向量形式表示的特征向量。

特征值和特征向量隐藏的秘密

主成分变量对应的特征向量的每个元素,与对应的特征值的平方根的乘积,等于该主成分变量,与该元素列标签对应的原始变量之间的相关系数。这是特征值与特征向量隐藏的秘密,可以用矩阵代数严格推导出来。不过这句话读起来比较费劲,我们用图8来表示这一关系。图中的eigVec1至eigVec4是4个特征向量,对应的特征值分别为eigVal1至eigVal4。我们在每个列中进行操作,用特征向量每个元素分别乘以对应特征值的平方根,得到该主成分变量与所有原始变量的相关系数。

图8

同样的,可以使用proc corr过程计算相关系数,代码如下:proc corr

data= Work.PCA_Demo_out

out = Work.PCA_Demo_Corr

;

var comp1-comp4;

with var1-var4;

run;

输出结果为:

图9

输出结果的第一行表示相关系数的值,第二行表示零假设下的检验概率。这些相关系数有其统计学名字,称为因子载荷量,反映了主成分变量受原始变量影响的程度,其绝对值越大,表示该主成分受该原始变量的影响越大,而值的符号则表示影响的方向。比如,comp1和var1的相关系数为-0.8712,检验概率<0.0001,在0.1水平上显著。

总结

SAS学习系列34.-因子分析

SAS学习系列34.-因子分析

34.因子分析 (一)基本原理 一、概述 因子分析,是用少数起根本作用、相互独立、易于解释通常又是不可观察的因子来概括和描述数据,表达一组相互关联的变量。通常情况下,这些相关因素并不能直观观测。 因子分析是从研究相关系数矩阵内部的依赖关系出发,把一些具有错综复杂关系的变量归结为少数几个综合因子的一种多变量统计分析方法。简言之,即用少数不可观测的隐变量来解释原始变量之间的相关性或协方差关系。 因子分析的作用是减少变量个数,根据原始变量的信息进行重组,能反映原有变量大部分的信息;原始部分变量之间多存在较显著的相关关系,重组变量(因子变量)之间相互独立;因子变量具有命名解释性,即该变量是对某些原始变量信息的综合和反映。 主成分分析是因子分析的特例。主成份分析的目标是降维,而因子分析的目标是找出公共因素及特有因素,即公共因子与特殊因子。 因子分析模型在形式上与线性回归模型相似,但两者有着本质的区别:回归模型中的自变量是可观测到的,而因子模型中的各公因子是不可观测的隐变量,而且两个模型的参数意义也不相同。 二、原理

假设样品检测p 个指标(变量)X 1, …, X p ,得到观测矩阵X ,这p 个指标变量可能受m (m

SAS分析法代码

为区分过程名称的拼写,故意部分小写,以便识别和记忆。 基本SAS程序代码结构: --------- PROC MODE data=Arndata.moddat; /* 命令的解释*/ var y x1-x6; /* 命令的解释 */ model y = x1-x6; run; ------------------------------------------ 正态性检验 PROC UNIvariate ---------

PROC UNIvariate data=Arndata.unidat; var x1; run; ------------------------------------------ 相关分析和回归分析 PROC REG 回归 --------- PROC REG data=Arndata.regdat; var y x1-x6; model y = x1-x6 / selection=stepwise; /* 加入逐步回归选项 */ print cli; /* 加入输出预测结果部分,还可以输出acov,all,cli,clm,collin,collinoint,cookd,corrb,

covb,dw(时序检验统计 量),i,influence,p,partial,pcorr1,pcorr2,r, scorr1,scorr2,seqb,spec,ss1,ss2,stb,tol,vif(异方差检验统计量),xpx*/ plot y*x2 / conf95; /* 做散点图 */ run; ------------------------------------------ --------- DATA Arndata.regdat; x2x2 = x2*x2; x1x2 = x1*x2; PROC REG data=Arndata.regdat; var y x1 x2 x2x2 x1x2 ; /* 多项式回归,非线性回归 */ model y = x1 x2 x2x2 x1x2 / selection=stepwise; /* 加入逐步回归选项 */ print cli; plot y*x2 / conf95; /* 做散点图 */

SAS学习系列21. 相关分析

21. 相关分析 相关分析和回归分析是研究变量与变量间相互关系的重要方法。相关分析是研究两个或两组变量之间的线性相关情况,回归分析是拟合出变量间的表达式关系。 (一)Pearson直线相关 一、适用于两个变量均为服从正态分布,每对数据对应的点在直角坐标系中(即散点图)呈现直线趋势。 做相关分析时,要注意剔除异常值;相关关系不一定是因果关系。

二、用相关系数r∈[-1,1]来表示相关程度的大小: r>0: 正相关;r<0: 负相关;r=0: 不相关; r=1: 完全正相关;r=-1: 完全负相关。 相关程度的判断标准:看相关系数的平方r2,若r2<0.5,结果无实际价值。 注:相关系数只是刻画直线相关(Y=X2相关系数≠1)。 三、假设检验 1. H0: 总体相关系数ρ=0;H1: ρ≠0; 计算r值,P值,若P值≤α,则在显著水平α下拒绝H0; 2. 若H0成立,从ρ=0的总体中抽样,所得到的样本相关系数r 呈对称分布(近似正态分布),此时可用t 检验。 3. 必要时对相关系数做区间估计 从相关系数ρ≠0的总体中抽样,样本相关系数的分布是偏态的。用Z变换后,服从某种正态分布,估计z,再变换回r.

(二)Spearman等级相关,也称Spearman秩相关 对于不符合正态分布的资料,不用原始数据计算相关系数,而是将原始观察值由小到大编秩,然后根据秩次来计算秩相关系数r s, 以此来说明两个变量间相关关系的密切程度。 适用于某些不能准确地测量指标值而只能以严重程度、名次先后、反映大小等定出的等级资料;也适用于某些不呈正态分布或难于判断分布的资料。 关于编秩 将各X i由小到大编秩得R Xi(1,…n),当遇到相等的值时要用平均秩,例如X2=X4,按编秩为3和4,应该取平均秩 R x2=R x4=(3+4)/2=3.5 假设检验 H0: 总体相关系数ρs=0;H1: ρs≠0; 计算r值,P值,若P值≤α,则在显著水平α下拒绝H0; 另外,Kendall等级相关系数τ∈[-1,1],也可以对两个变量作等级相关分析,而且可对多个变量作等级相关分析。

主成分SAS程序

主成分的求解方法 1求相关矩阵 2、求特征值与特征向量 3、确定主成分个数 4、计算主成分得分。 data p108; input x$ x1-x8; datalines; 北京1394.89 2505.00 519.01 8144 373.90 117.30 112.60 843.43 天津920.11 2720.00 345.46 6501 342.80 115.20 110.60 582.51 河北2849.52 1258.00 704.87 4839 2033.30 115.20 115.80 1234.85 山西1092.48 1250.00 290.90 4721 717.30 116.90 115.60 697.25 内蒙832.88 1387.00 250.23 4134 781.70 117.50 116.80 419.39 辽宁2793.37 2397.00 387.99 4911 1371.10 116.10 114.00 1840.55 吉林1129.20 1872.00 320.45 4430 497.40 115.20 114.20 762.47 黑龙江2014.53 2334.00 435.73 4145 824.80 116.10 114.30 1240.37 上海2462.57 5343.00 996.48 9279 207.40 118.70 113.00 1642.95 江苏5155.25 1926.00 1434.95 5943 1025.50 115.80 114.30 2026.64 浙江3524.79 2249.00 1006.39 6619 754.40 116.60 113.50 916.59 安徽2003.58 1254.00 474.00 4609 908.30 114.80 112.70 824.14 福建2160.52 2320.00 553.97 5857 609.30 115.20 114.40 433.67 江西1205.11 1182.00 282.84 4211 411.70 116.90 115.90 571.84 山东5002.34 1527.00 1229.55 5145 1196.60 117.60 114.20 2207.69 河南3002.74 1034.00 670.35 4344 1574.40 116.50 114.90 1367.92 湖北2391.42 1527.00 571.68 4685 849.00 120.00 116.60 1220.72 湖南2195.70 1408.00 422.61 4797 1011.80 119.00 115.50 843.83 广东5381.72 2699.00 1639.83 8250 656.50 114.00 111.60 1396.35 广西1606.15 1314.00 382.59 5105 556.00 118.40 116.40 554.97 海南364.17 1814.00 198.35 5340 232.10 113.50 111.30 64.33 四川3534.00 1261.00 822.54 4645 902.30 118.50 117.00 1431.81 贵州630.07 942.00 150.84 4475 301.10 121.40 117.20 324.72 云南1206.68 1261.00 334.00 5149 310.40 121.30 118.10 716.65 西藏55.98 1110.00 17.87 7382 4.20 117.30 114.90 5.57 陕西1000.03 1208.00 300.27 4396 500.90 119.00 117.00 600.98 甘肃553.35 1007.00 114.81 5493 507.00 119.80 116.50 468.79 青海165.31 1445.00 47.76 5753 61.60 118.00 116.30 105.80

SAS聚类分析程序

SAS聚类分析程序: 聚类分析过程命令 Data pgm33b; Input x1-x3; cards; 9.30 30.55 8.7 (样品数据) 1.85 20.66 1 2.75; Proc cluster standard method= single nonorm nosquare ccc pseudo out=tree; Proc tree data=tree horizontal spaces=1; run; Data pgm33b Input x1-x4; cards; 9.30 30.55 8.7 (样品数据) 1.85 20.66 1 2.75; Proc cluster standard method=complete nonorm nosquare ccc pseudo out=tree; Proc tree data=tree horizontal spaces=1; run; 刷黑该块过程命令程序,提交便计算出相应聚类结果。 语句解释: 聚类指定的方法是在“method=”后面填入一个相应的选择项,它们是:single(最短距离法),complete(最长距离法),average(类平均法), centroid(重心法),median(中位数法),ward(离差平方和法),flexible (可变类平均法),density(非参数概率密度估计法),eml(最大似然法),twostage(两阶段密度法)。 主成分分析程序: 1. 主成分分析实验程序例: 主成分分析过程命令 data socecon; input x1-x6; cards; 16369 3504887 66047 2397739 198.46 1043955 13379 566257 4744 456100 76.96 202637 9707 397183 1303 887034 18.88 105948 10572 414932 1753 751984 27.67 128261 12284 876667 18269 1015669 60.09 332700 9738 604935 5822 1307908 30.54 222799 16970 778830 2438 630014 76.64 272203 10006 617436 13543 866013 58.59 222794 10217 636760 9967 996912 34.55 161025 20946 1380781 16406 526527 150.15 426937 11469 720416 7141 853778 43.41 157274 14165 1504005 29413 1025363 149.17 568899 12795 966188 11580 723278 45.13 165319 12762 584696 13583 343107 65.31 166454

聚类分析与主成分分析SAS的程序(DOC)

实验三我国各地区城镇居民消费性支出的 主成分分析和聚类分析 (王学民编写) 一、实验目的 1.掌握如何使用SAS软件来进行主成分分析和聚类分析; 2.看懂和理解SAS输出的结果,并学会以此来作出分析; 3.掌握对实际数据如何来进行主成分分析; 4.对同一组数据使用五种系统聚类方法及k均值法,学会对各种聚类效果的比较,获取重要经验; 5.掌握使用主成分进行聚类 二、实验内容 数据集sasuser.examp633中含有1999年全国31个省、直辖市和自治区的城镇居民家庭平均每人全年消费性支出的八个主要变量数据。对这些数据进行主成分分析,可将这31个地区的前两个主成分得分标示于平面坐标系内,对各地区作直观的比较分析。对同样的数据使用五种系统聚类方法及k均值法聚类,并对聚类效果作比较。最后,对主成分的图形聚类和正规聚类的效果进行比较。 实验1 进行主成分分析,根据前两个主成分得分所作的散点图对31个地区进行比较分析。 实验2 分别使用最长距离法、中间距离法、两种类平均法、离差平方和法和k均值法进行聚类分析,并比较其聚类效果。 实验3 主成分聚类,并与上述正规的聚类方法进行比较 三、实验要求 1.用SAS软件的交互式数据分析菜单系统完成主成分分析; 2.完成五种系统聚类方法及k均值法,比较其聚类效果; 3.根据前两个主成分得分的散点图作直观的聚类,并与上述正规的聚类方法进行比较。 四、实验指导

1.进行主成分分析 在inshigt中打开数据集sasuser.examp633,见图1。选菜单过程如下: 在图1中选分析?多元(Y X)?在变量框中选x1,x2,x3,x4,x5,x6,x7,x8(见图2)?Y?选输出?选主分量分析,主分量选项(见图3)?在图4中作图中的选择(主成分个数缺省时为“自动”选项,此时只输出特征值大于1的主成分)?确定?确定?确定 图1 图2

SAS主成分分析

SAS主成分分析 分类:数据之美2013-07-28 20:18 2343人阅读评论(0) 收藏举报 目录(?)[-] 1. 主成分分析流程 2. SAS主成分分析示例 3. SAS主成分分析输出结果详解 4. 特征值和特征向量隐藏的秘密 5. 总结 6. 参考文献 同事讲主成分分析,举了这么个例子:就像你选女人,有身材、相貌两个指标,如果身材、相貌都很突出,那当然很好选择;但如果两个女人,一个身材突出,一个相貌出众,看着都很喜欢,那可如何是好!这个时候通过主成分分析,汇总出一个指标,这个指标可以一定程度上代替原来的身材、相貌,这时就可以排序做出选择了。 这例子当然有很多缺陷,但至少指出了主成分分析的目的之一:减少决策变量数,也就是降维。主成分分析的另一个目的是防范多重共线性。实际问题往往涉及很多变量,但某些变量之间会有一定的相关性,我们希望构造较少的几个互不相关的新指标来代替原始变量,去除多重共线性,减少所需分析的变量,同时尽可能减少这一过程的信息损失。主成分分析正是基于这样的目的而产生的有效方法。 主成分分析流程 主成分分析包含以下流程:

1、原始数据标准化。 2、计算标准化变量间的相关系数矩阵。 3、计算相关系数矩阵的特征值和特征向量。 4、计算主成分变量值。 5、统计结果分析,提取所需的主成分。 SAS主成分分析示例 我们从实战入手,先来个简单的例子,完整体验使用SAS进行主成分分析的过程。准备好图1所示的数据集,该数据集包含5个变量和22个观测。其中变量num用于标识每条观测。 图1 可以直接复制下面的程序完成输入: data Practice.PCA_Demo;

主成分分析在SPSS中的操作应用

主成分分析在SPSS中的操作应用 一、引言 主成分分析和因子分析在社会经济统计综合评价中是两个常被使用的统计分析方法。现在SPSS、SAS等统计软件使用越来越普遍,但SPSS并未像SAS一样,将主成分分析与因子分析作为两个独立的方法并列处理[注:主成分分析与因子分析二者是又有着区别与联系,最主要的不同在于它们的数学模型的构建上,具体区别请见参考文献2],而是根据二者之间的关系有机地将主成分分析嵌入到因子分析之中,这样虽然简化了分析程序,却为主成分分析的计算带来不便。且国内许多SPSS教程并没有详细讲解如果应用SPSS进行主成分分析,如何使用SPSS对主成分分析进行计算呢?为使读者能够正确使用SPSS软件进行主成分分析,本文将通过一个实例来详细介绍如何用SPSS做主成分分析。接下来先简单介绍主成分分析原理与模型,以便读者对主成分分析有个大致的了解。 二、主成分分析原理和模型[1] (一)主分成分析原理 主成分分析是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。通常数学上的处理就是将原来P个指标作线性组合,作为新的综合指标。最经典的做法就是用F 1 (选取的第 一个线性组合,即第一个综合指标)的方差来表达,即Var(F 1)越大,表示F 1 包 含的信息越多。因此在所有的线性组合中选取的F 1应该是方差最大的,故称F 1 为第一主成分。如果第一主成分不足以代表原来P个指标的信息,再考虑选取 F 2即选第二个线性组合,为了有效地反映原来信息,F 1 已有的信息就不需要再出 现再F 2中,用数学语言表达就是要求Cov(F 1 , F 2 )=0,则称F 2 为第二主成分,依 此类推可以构造出第三、第四,……,第P个主成分。(二)主成分分析数学模型 F 2=a 12 ZX 1 +a 22 ZX 2 ……+a p2 ZX p …… F p =a 1m ZX 1 +a 2m ZX 2 +……+a pm ZX p 其中a 1i , a 2i , ……,a pi (i=1,……,m)为X的协方差阵Σ的特征值多对应的 特征向量,ZX 1, ZX 2 , ……, ZXp是原始变量经过标准化处理的值,因为在实际 应用中,往往存在指标的量纲不同,所以在计算之前须先消除量纲的影响,而将原始数据标准化,本文所采用的数据就存在量纲影响[注:本文指的数据标准化是指Z标准化]。

主成分分析在数学建模中的应用

第一讲 主成分分析在数学建模中的应用 1.学习目的 1.理解主成分分析的基本思想; 2.会用SAS 软件编写相关程序,对相关数据进行主成分分析; 3.会用SAS 软件编程结合主成分分析方法解决实际问题。 2.学习要求 1.理解主成分分析的基本原理,掌握主成分分析的基本步骤; 2.会用SAS 软件编写相关程序,对相关数据进行分析处理和假设检验; 3.撰写不少于3000字的小论文; 4. 精读一篇优秀论文。 3. 理论基础 3. 1基本思想 在实际问题的研究中,往往会涉及众多的变量。但是,变量太多不但会增加 计算的复杂性,而且也给合理地分析问题和解释问题带来困难。一般来说,虽然每个变量提供了一定的信息,但其重要性有所不同,而在很多情况下,变量间有一定的相关性,从而使得这些变量所提供的信息在一定程度上有所重叠。因而人们希望对这些变量加以“改造”,用为数较少的互不相关的新变量来反映原来变量所提供的绝大部分信息,通过对新变量的分析达到解决问题的目的。主成分分析就是在这种降维的思想下产生的处理高维数据的方法。 3.2 基本原理 (1).总体的主成分 定义1.设'12(,,)X X X =p …,X 为P 维随机向量,称' i i Z a X =为X 的第i 主成分(i=1,2,

…P ),如果: (1) ' 1(1,2,);i i a a i ==…,p (2) 当i>1时,'0(1,2,);i j a a j ==∑…i-1 (3) ''' 1,0(1,) ()max ()j i a a a a j Var Z Var a X ====∑…i-1 定理 1.设' 12(,,)X X X =p …,X 是P 维随机向量,且()D X =∑,∑的特征值为 120p λλλ≥≥≥≥…,12,,p a a a …,为相应的单位正交特征向量,则X 的第i 主成分为 'i i Z a X = (1,2,).i =…,p 定义 2.我们称1 / p k i i λλ =∑为主成分k Z 的贡献率;又称 1 1 /p m k i k i λλ ==∑∑为主成分 1,,()m Z Z m p <…的累计贡献率。记()ij σ∑=,12(,)p diag λλλΛ=…,其中 12p λλλ≥≥≥…为∑的特征值,12,,p a a a …,是相应的单位正交特征向量,记正交矩阵 12(,,).p A a a a =…,主成分'1(,)p Z Z Z =…,其中'(1,2,).i i Z a i ==…,p 则总体主成分有如 下的性质: 性质1. ()D Z =Λ,即P 个主成分的方差为:()(1,2,)i i Var Z i λ==…,p ,且它们是互不相关的。 性质2. 1 1 p p ii i i i σ λ===∑∑,通常称1 p ii i σ=∑为原总体X 的总方差(或称总惯量)。 性质3.主成分k Z 与原始变量i X 的相关系数(,)k i Z X ρ为 (,)k i ik Z X ρ= (,1,2,)k i =…p 并把主成分k Z 与原始变量i X 的相关系数称为因子负荷量。 性质4. 2 2 11(,)1(1,2,)p p k ik k i k k ii a Z X i λρσ=====∑∑…,p 。 性质5. 21 (,)(1,2,).p ii k i k i Z X k σ ρλ===∑…,p 若记2()()i i i i E X Var X μσ==,,即令 *i i i i X X μσ-= = (1,2,) i =…,p

用SAS和SPSS软件进行主成分分析

用SAS和SPSS软件进行主成分分析 安徽医科大学生物医学研究所(230032) 杨中荣 毛广运 臧桐华 徐希平 主成分分析,又称主分量分析,是指将原始的多个 变量,通过线性组合,提炼出较少几个彼此独立的新变 量的一种多元统计分析方法。在医学科研和预防的工 作中遇到的一些问题,由于每个变量都在不同程度上 反映这个问题的某些信息,为了全面分析这个问题,往 往提出很多与此有关的变量(或因素)。但是,在用统 计分析方法研究这个多变量的问题时,由于变量个数 太多会增加解决该问题的复杂性。在大多情况下,变 量之间存在一定的相关性,可以解释为这两个变量在 反映此问题的信息时有一定的重叠。人们希望变量个 数较少而得到的信息较多,主成分分析就是对于原先 提出的所有变量,建立尽可能少的新变量,使得这些新 变量是两两不相关的,而且这些新变量在反映问题的 信息方面尽可能多地保留原有的信息。 SAS和SPSS都能对多变量资料进行较完善的主 成分分析,但它们所提供的主成分分析过程不尽相同, 过程下的选项和相应的输出结果也各有不同 1,2 ,因 此有必要对两个软件的主成分分析功能做一个比较系 统的介绍。 例 对某小学10名9岁男学生六个项目的智力 测量的得分如表1。我们习惯用各项目得分之总和 (合计)来表示学生的智力,这种做法实际上是将各变 量等同地看待,各变量赋予相同的权重 3 。 表1 某小学10名男学生六个项目智力测量计分表 被测试者 编号常识 X1 算术 X2 理解 X3 填图 X4 积木 X5 译码 X6 合计 1141328142239130 2101415143435122 3111219132439118 47779202373 5131224122638125 6191422162337131 7201626213869190 89101493146119 99815131446105 109912102346109 一、几个相关的名词术语及统计量 1 特征根:V ar(C i)= i 各主成分所提供的信息量多少,常用其方差的大小(即特征根 )来衡量, 愈大,该主成分提供的信息量就愈大,可见: 1> 2> > m。 2 贡献率及累积贡献率 m个主成分的特征根 之和为m,则:某主成分C i 的特征根 i在m中所占的比例,被称为C i的贡献率。显然,第一主成分C1是贡献率最大的主成分,如果它的贡献率越大,则表明C 1 综合原始指标的能力越强。前k个主成分的贡献率之和为前k个主成分的累积贡献率。 3 特征向量及因子载荷 特征向量是指主成分的线性组合中各系数a ij; 因子载荷即第i主成分C i特征根的平方根与a ij的乘积即为q ij,q ij=SQRT( i)*a ij 实际上,因子载荷是C i 与原始指标X i 之间的相关系数,反映了两者之间联系的密切程度。 4 主成分得分 根据线性组合中各特征向量和各原始指标标化值Z i的大小,可以求得各主成分得分大小,利用主成分得分大小可以对研究对象的个体进行推断和评价。 但是SPSS软件中得到的是各主成分C i /SQRT ( i)的值大小,以默认变量名FAC11等来保存。 二、主成分个数的确定 1 均数法:计算特征根的均数 (因为全部m个特征根之和为m,所以 =1),则取 大于1的主成分; 2 经验法:当前k个主成分的累积贡献率达到80%以上,则取前k个主成分进行分析。 三、SPSS中的程序及结果 程序:Ana lyze D a ta Reduction Facto r A na lysis V ariab l e s框:x1、x2、x3、x4、x5、x6 D escriptive: Co efficien ts KM O的Bartlett's test o f spheric ity Con ti n ue E x traction: Scree plo:t N um ber o f factors:3 Con ti n ue Sco res: Sav i n g as V ariable 212 中国卫生统计2009年4月第26卷第2期 通讯作者:徐希平,xi p i ngxu18@126.co m

主成分分析示例——对县级市聚类(SAS实现)

主成分分析示例——对县级市进行聚类 设计如下实验:收集不同省份的共计16个县级市的宏观经济数据,这些县级市的实际经济发展水平具有较大差异,在SAS软件上利用主成分分析方法对这16个县级市进行聚类分析。作为判断指标的宏观数据包括GDP、第一产业GDP、第二产业GDP、第三产业GDP、社会消费品零售总额、人均GDP、第一产业GDP占比、第二产业GDP占比、第三产业GDP占比、平均消费倾向。显然这些指标变量之间存在多重共线性。下面我们要看看能否通过主成分分析方法消除多重共线性从而获得比较准确的分类结果。 原始数据如下: 完成以下工作: (1)选取累积贡献率>90%的前几个主成分,分别计算得分。 主要输出结果为: 由上表可知,第一主成分的贡献率为69.6%,第二主成分的累计贡献率为87.87%,第三主成分的累计贡献率为93.34%。因此只需前三个主成分就能很好地概括这组数据。

各主成分分别是原来的10个变量的线性组合,其对应的系数如下表: (2)对各县级市的宏观经济进行综合评价并排序; 结果如下: 上表第二列(City)x1-x16分别代表原来的16个城市;y是根据前三个主成分的综合得分,也就是前三个主成分得分的加权平均,权重即各主成分的贡献率;v1-v10对应原来的10个变量。显示结果为根据综合得分(y值)从小到大进行排序。

(3)利用选取的主成分得分,借助聚类分析过程对16个县级市进行分类。 由上表可知,聚类分析结果是分为3类。第一类:贵州习水县、四川甘洛县、四川旺苍县、广西融水县、四川通江县;第二类:贵州册亨县、贵州印江县、贵州雷山县、广西田林

SAS主成分分析 示例

PROC PRINCOMP <选项列表>; VAR 变量列表; [WEIGHT 变量列表;] [FREQ 变量列表;] [PARTIAL 变量列表;] [BY 变量列表;] RUN; Correlation Matrix是所有原始指标变量之间的相关系数矩阵 如:GDP(x1)与固定资产投资(x3)之间的相关系数为0.9506; GDP(x1)与工业总产值(x8)之间的相关系数为0.8737; 固定资产投资(x3)与工业总产值(x8)之间的相关系数为0.7919; 居民消费价格指数(x6)与商品零售价格指数(x7)之间的相关系数为0.7628; 货物周转量(x5)与工业总产值(x8)之间的相关系数为0.6586,等等。

Eigenvalues of Correlation Matrix给出了由相关系数矩阵计算出来的全部特征值(Eigenvalue)、相邻两个特征值的差异(difference)、每个主成分的贡献率(proportion)和累积贡献率(cumulative)。 如:第一主成分对方差的贡献率为46.94%,第二主成分对方差的贡献率为27.46%,第三主成分对方差的贡献率为15.19%,之后的主成分的贡献率为0.05。前三个主成分的累积贡献率为89.58%,因此,对第四主成分以后的主成分完全可以忽略不计,用前三个主成分就可以很好地概括这组数据。 Eigenvectors输出了全部特征值对应的特征向量,它们是线性无关的单位向量。第1列表示第1主成分Prin1的得分系数,第2列表示第2主成分Prin2的得分系数,以此类推。 据此可以写出由标准化变量所表达的各主成分的关系式。x1*是标准指标变量. Prin1 = 0.46x1* + 0.31x2* + 0.47x3* + 0.24x4* + 0.25x5* – 0.26x6* – 0.32x7* + 0.42x8* Prin2 = 0.26x1* – 0.40x2* + 0.11x3* – 0.49x4* + 0.50x5* + 0.17x6* + 0.40x7* + 0.29x8* Prin3 = 0.11x1* + 0.25x2* + 0.19x3* + 0.33x4* – 0.25x5* + 0.72x6* + 0.40x7* + 0.19x8* 第一主成分中x3、x1、x8的系数最大,可以把第一主成分看成是由固定资产投资(x3)、GDP(x1)、工业总产值(x8)所刻画的反映经济发展水平的综合指标。 Out语句输出的包含原始数据和主成分得分的数据集 如:第1个样本(北京)的第一个主成分的得分是0.82827,第二个主成分的得分是-2.25758……

sas分析方法笔记

sas分析方法笔记 SAS数据分析笔记 1.SASINSIGHT启动: 方法1:Solution→Analysis→InteractiveDateAnalysis 方法2:在命令栏内输入insight 方法3:程序编辑窗口输入以下代码,然后单击Submit按钮; Procinsight; Run; 1.1一维数据分析 用sasinsight做直方图、盒形图、马赛克图。直方图:Analysis→Histogram/BarChart 盒形图:Analysis→Boxplot 马赛克图:Analy sis→Boxplot/Mosaicplot(Y) 1.2二维数据分析 散点图:Analysis→Scatteryplot(YX) 曲线图:Analysis→Lineplot(YX) 1.3三维数据分析 旋转图:Analysis→RotationgPlot 曲面图:Analysis→RotationgPlot设置FitSurface 等高线图:Analysis→Countorplot 1.4分布分析 包括:直方图、盒形图、各阶矩、分位数表,直方图拟合密度曲线,对特定分布进行检验。 1.4.1Anal ysis→Distribution (Y)

第一部分为盒形图,第二部分为直方图,第三部分为各阶矩,第四部分为分位数表。 1.4.2添加密度估计 A:参数估计:给出各种已知分布(正态,指数等),只需要对其中参数进行估计;Curves→ParametricDensity B:核估计:对密度函数没有做假设,曲线性状完全依赖于数据;Curves→KernelDensity 1.4.3分布检验 Curves→CDFconfidenceband Curves→TestforDistribution 1.5曲线拟合 Analysis→Fit(YX):分析两个变量之间的关系 1.6多变量回归 Analysis→Fit(YX) 1.7方差分析 Analysis→Fit(YX) 1.8相关系数计算Analysis→Multivariate 1.9主成分分析 Analysis→Multivariate 2.SASANALYST启动: 方法1:Solution→Analysis→Analyst 方法2:在命令栏内输入analyst 2.1分类计算统计量:Data→Summarizebygroup 2.2随机抽样:Data→RandomSle 2.3生成报表:Report→Tables 2.4变量计算:Date→Transform 2.5绘制统计图 2.5.1条形图:Graph→BarChart→Horizontal 2.5.2饼图:Graph→PieChart 2.5.3直方图:Graph→Histogram 2.5.4概率

sas主成分分析

第七章主成分分析 实验目的: 熟悉并掌握主成分分析和因子分析的原理和在变量分类、综合评价、主成分回归等几个方面的应用,以及相应的SAS程序实现。 实验内容: 对我国钢铁行业上市公司的财务绩效状况进行主成分分析,选择的财务指标共有以下几个:流动比率,速动比率,存货周转率,总资产周转率,净资产收益率,经营净利率,每股收益,净资产收益率增长率,股东权益增长率。数据如下: 完成以下工作: (1)选取累积贡献率>85%的前几个主成分,分别计算得分;并对选取的主成分进行解释; (2)对各上市公司的财务绩效进行综合评价; (3)利用选取的主成分得分,借助聚类分析过程对钢铁行业上市公司进行分类。

data zcf; input name$ x1-x9; cards; 邯郸钢铁 1.551 0.971 7.165 0.889 10.768 9.268 0.451 -16.024 6.122 武钢股份 2.192 1.82 8.088 0.975 15.054 11.114 0.336 -3.039 2.588 钢联股份 1.286 0.941 8.044 1.124 7.389 4.599 0.205 -59.988 122.041 宝钢股份 0.979 0.571 8.13 0.601 9.742 8.78 0.205 -17.685 3.989 莱钢股份 1.364 0.497 5.078 0.93 14.103 9.137 0.523 -24.261 14.16 西宁特钢 1.433 0.672 1.462 0.471 6.429 7.268 0.155 9.349 3.027 杭钢股份 2.108 1.498 8.373 1.418 16.756 7.937 0.531 -18.725 13.662 邢台轧辊 2.1 1.595 1.883 0.396 6.484 8.981 0.132 5.275 -1.061 宁夏恒力 1.364 1.064 1.868 0.278 7.469 19.842 0.201 -35.194 55.428 凌钢股份 1.772 1.061 7.841 1.119 12.883 8.804 0.528 5.343 10.107 南钢股份 1.818 1.392 8.866 1.546 12.885 5.153 0.409 -7.028 6.131 酒钢宏兴 1.441 0.884 10.168 1.071 12.831 7.825 0.367 44.037 6.686 抚顺特钢 0.955 0.652 3.416 0.509 7.147 6.851 0.193 -8.074 1.93 安阳钢铁 1.893 1.333 5.107 0.98 10.949 7.915 0.35 0 0 上海科技 1.313 1.182 4.643 0.568 9.549 9.423 0.199 35.635 3.582 沪昌特钢 10.813 9.53 6.585 0.567 1.103 1.656 0.019 15.031 -7.171 山川股份 1.252 0.585 1.485 0.451 10.344 14.693 0.209 -1.615 9.799 浦东不锈 6.186 5.121 2.363 0.265 0.754 2.513 0.013 -45.439 -1.176 新华股份 1.817 1.314 3.291 0.746 9.924 9.028 0.137 -3.577 1.985 工益股份 1.809 1.267 4.046 0.828 0.695 0.45 0.011 104.419 -4.714 马钢股份 1.584 1.069 4.318 0.569 2.003 2.183 0.032 35.279 -12.487 宝信软件 3.594 3.201 5.014 0.821 14.66 9.721 0.147 126.911 23.243 北特钢 1.385 1.092 2.691 0.467 -11.21 -7.917 -0.148 53.839 -11.058 广钢股份 0.859 0.51 3.884 0.722 4.247 2.685 0.096 -32.409 -4.004 ;proc princomp n=9out=prin ; var X1-x9 ; run; proc print data=prin; var prin1-prin9; run; 主要输出结果: 相关阵的特征值和特征向量 Eigenvalue Difference Proportion Cumulative

SAS因子分析简介

SAS/STAT/FACTOR过程使用 SAS/STAT的FACTOR过程可以进行因子分析、分量分析和因子旋转。对因子模型可以使用正交旋转和斜交旋转,可以用回归法计算得分系数,同时把因子得分的估计存贮在输出数据集中;用FACTOR过程计算的所有主要统计量也能存贮在输出数据集中。 FACTOR过程用法很简单,主要使用如下语句: PROC FACTOR DATA= 数据集选项; VAR 原始变量; RUN; 输出结果包括特征值情况、因子载荷、公因子解释比例,等等。为了计算因子得分,一般在PROC FACTOR语句中加一个SCORE选项和“OUTSTAT=输出数据集”选项,然后用如下的得分过程计算公因子得分: PROC SCORE DATA=原始数据集 SCORE=FACTOR过程的输出数据集 OUT=得分输出数据集; VAR 用来计算得分的原始变量集合; RUN; PROC FACTOR< options > ; The following options are available in the PROC FACTOR statement. ALL ALPHA=p CONVERGE=p CORR COV ARIANCE COVER <=p> DA TA=SAS-data-set EIGENVECTORS GAMMA=p HEYWOOD HKPOWER=p MAXITER=n METHOD=name MINEIGEN=p MSA NFACTORS=n NOBS=n NOCORR NOINT NOPRINT NORM=COV | KAISER | NONE | RAW | WEIGHT NPLOT=n

sas简单操作步骤

SAS数据分析完整笔记 1. SAS INSIGHT启动: 方法1:Solution→Analysis→Interactive Date Analysis 方法2:在命令栏内输入insight 方法3:程序编辑窗口输入以下代码,然后单击 Submit按钮; Proc insight; Run; 1.1 一维数据分析 用 sas insight做直方图、盒形图、马赛克图。 直方图:Analysis→Histogram/Bar Chart 盒形图:Analysis→Box plot 马赛克图:Analysis→Box plot/Mosaic plot(Y) 1.2 二维数据分析 散点图:Analysis→Scattery plot(Y X) 曲线图:Analysis→Line plot( Y X) 1.3 三维数据分析 旋转图:Analysis→Rotationg Plot 曲面图:Analysis→Rotationg Plot设置 Fit Surface 等高线图:Analysis→Countor plot 1.4 分布分析 包括:直方图、盒形图、各阶矩、分位数表,直方图拟合密度曲线,对特定分布进行检验。 1.4. 1 Analysis→Distribution(Y) 第一部分为盒形图,第二部分为直方图,第三部分为各阶矩,第四部分为分位数表。

1.4.2 添加密度估计 A:参数估计:给出各种已知分布(正态,指数等),只需要对其中参数进行估计;Curves→Parametric Density B:核估计:对密度函数没有做假设,曲线性状完全依赖于数据; Curves→Kernel Density 1.4.3 分布检验 Curves→CDF confidence band Curves→Test for Distribution 1.5 曲线拟合 Analysis→Fit(Y X):分析两个变量之间的关系 1.6 多变量回归 Analysis→Fit(Y X) 1.7 方差分析 Analysis→Fit(Y X) 1.8 相关系数计算 Analysis→Multivariate 1.9 主成分分析 Analysis→Multivariate 2.SAS ANALYST启动: 方法1:Solution→Analysis→Analyst 方法2:在命令栏内输入analyst 2.1 分类计算统计量:Data→Summarize by group 2.2 随机抽样:Data→Random Sample 2.3 生成报表:Report→Tables

相关主题
文本预览
相关文档 最新文档