上一系列文章介绍了使用PRINCOMP过程进行主成分分析。今天,我们将介绍使用FACTOR过程进行主成分分析。
FACTOR过程
除了PROCPRINCOMP外,还可以使用PROCFACTOR来进行主成分分析。事实上,在进行标准化后,二者的结果是一样的。为了比较二者的结果,首先介绍如何对数据进行标准化。SAS对数据的标准化是通过PROCSTDIZE实现的,PROCSTDIZE的一般形式如下:
其中:
选项METHOD=指定用于标准化的方法,常见的标准化方法有MEAN、SUM、EUCLEN和STD。
VAR语句指定数据集中用来进行主成分分析的变量,变量类型必须为数值型。若该语句缺失,那么PROCFACTOR将分析数据集中的所有数值型变量。
标准化的计算方法如下:
这里LOCATION和SCALE的值与标准化方法有关。表12.3列举了一些常见的标准化方法的LOCATION和SCALE值。有关其他方法具体参数值建议读者参考SAS官方帮助文档。
表12.3常见标准化方法中的LOCATION值与SCALE值
这里仅简单介绍PROCFACTOR中与主成分分析相关部分的选项,在后面使用PROCFACTOR进行因子分析时,会对其他选项进行介绍。PROCFACTOR的语法如下:
其中:
常见的选项有:“DATA=”用于指定输入数据集,“SIMPLE”输出常见的统计量,“CORR”输出原始变量的相关矩阵。
VAR语句指定数据集中用于分析的变量。
例12.2:使用PROCFACTOR对数据集sashelp.cars进行主成分分析。
示例代码如下:
输出结果中基本统计量与相关矩阵的部分如图12.8所示。
图12.8使用PROCFACTOR进行主成分分析过程中输出基本统计量与相关矩阵
同时,PROCFACTOR还输出了相关矩阵的特征值与解释的变异比例,这部分内容也和PROCPRINCOMP一致(如图12.9所示)。由该表可以判定主成分个数为1或者2。
图12.9相关矩阵特征值以及解释变异的比例
除此之外,PROCFACTOR还输出了公共因子信息,这是PROCPRINCOMP所没有的。但是,二者在本质上是一样的。为了便于比较,这里将因子(这里可以理解为主成分)个数定为2个,代码修改如下:
这里的关键字“N=2”限定了输出因子的个数为2。输出结果与修改前大致一致,只是有关因子方面的信息发生了变化。具体如图12.10所示。
图12.10指定公共因子的信息
如果将上述结果的Factor1与Factor2分别看成第一主成分与第二主成分,那么因子模式图提供了主成分由原始变量线性组合的信息。例如,第一主成分为
至此,我们利用PROCFACTOR完成了对原始数据的主成分分析:找出了主成分的个数为2个,并且知道了如何通过原始变量的线性组合得到主成分。
虽然通过过程步PROCFACTOR和PROCPRINCOMP得到的主成分个数一样,解释的方差也一致,但是主成分的构成不一样。回顾例12.1,在该例中,第一主成分为:
导致二者差异的主要原因是PROCFACTOR会假设所有的因子或主成分的方差为1,而PROCPRINCOMP则假设所有主成分的方差为特征值。如果要两者要得到一样的结果,只需要对PROCFACTOR输出的得分矩阵进行标准化,然后对标准化后的得分矩阵进行缩放即可,缩放的比例为,这里N为变量个数。这一标准化过程以及缩放可以通过PROCSTDIZE来实现。例如,在本例中,缩放的比例为=0.,代码如下:
数据集work.eigenvectors的输出结果如图12.11所示。
图12.11标准化后的得分矩阵
该结果和例12.1中的结果一致。
综上所述,利用PROCFACTOR和PROCPRINCOMP进行主成分分析从本质上讲是一样的。
与PRINCOMP过程的比较
过程步PROCFACTOR不仅可以进行主成分分析,还可以用来做因子分析,其默认方法是主成分分析。使用PROCFACTOR与PROCPRINCOMP进行主成分分析时,除了因子得分系数矩阵有区别外,二者的输出结果几乎一致。至于因子得分系数矩阵的区别,具体来说指的是:在PROCFACTOR中,主成分在各个变量上的得分系数的方差是标准单位1,而在PROCPRINCOMP中,主成分在各个变量上的得分系数的方差是其对应的特征值(后面文章会具体介绍)。二者均支持通过ODS图形选项输出图形。
同PROCFACTOR相比,PROCPRINCOMP具有以下优点:
当预期的主成分个数较少的时候,使用PROCPRINCOMP需要运行的时间较少。
在内存一定的情况下,PROCPRINCOMP能处理的问题规模更大一些。
PROCPRINCOMP对偏协方差矩阵或偏相关矩阵进行分析时会输出相应的得分。
从使用角度来说,PROCPRINCOMP更简单容易掌握。
同PROCPRINCOMP相比,PROCFACTOR具有以下优点:
从输出结果看,PROCFACTOR输出内容更丰富。
PROCFACTOR可以用来做因子旋转。
本文结束,下一篇文章开始介绍“因子分析概述”。
回复可以下载《深入解析SAS》一书的数据和代码。
查询往期文章,请回复下列关键字:
==系列文章
==系列文章
==系列文章
==系列文章
==系列文章
==系列文章
==系列文章
==系列文章
小贴士
读者可以从以下链接获取SAS公司提供的免费版环境:
SAS大学版(SAS?UniversityEdition)是SAS为在校大学生免费提供的基于虚拟机和网页的SAS环境。回复关键字,可以查看详细介绍。
下载路径: