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