上一系列文章介绍了使用PRINCOMP过程进行主成分分析。今天,我们将介绍使用FACTOR过程进行主成分分析。 FACTOR 过程 除了PROC PRINCOMP外,还可以使用PROC FACTOR来进行主成分分析。事实上,在进行标准化后,二者的结果是一样的。为了比较二者的结果,首先介绍如何对数据进行标准化。SAS对数据的标准化是通过PROC STDIZE实现的,PROC STDIZE的一般形式如下: 其中:
标准化的计算方法如下: 这里LOCATION和SCALE的值与标准化方法有关。表12.3列举了一些常见的标准化方法的LOCATION和SCALE值。有关其他方法具体参数值建议读者参考SAS官方帮助文档。 表12.3 常见标准化方法中的LOCATION值与SCALE值 这里仅简单介绍PROC FACTOR中与主成分分析相关部分的选项,在后面使用PROC FACTOR进行因子分析时,会对其他选项进行介绍。PROC FACTOR的语法如下: 其中:
例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 FACTOR具有以下优点:
作者:夏坤庄、徐唯、潘红莲、林建伟 |
|