首页常见问题正文

基本数据统计分析:FA与PCA的主要区别是什么?

更新时间:2022-12-01 来源:黑马程序员 浏览量:

IT培训班

  在搞清楚“FA与PCA的主要区别是什么?”之前,我们先来了解一下因子分析(Factor Analysis,FA)的定义是什么?它是研究从变量群中提取共性因子的统计方法,这里的共性因子是不同变量之间内在的隐藏因子,例如,一名学生的语文、数学、英语成绩都很好,那么潜在的共性因子可能是智力水平高。因此,因子分析的过程其实是寻找共性因子和个性因子并得到最优解释的过程。

  因子分析与主成分分析的原理有相同之处,也有差异性。在大多数情况下,很难感性地区分因子分析和主成分分析,原因是二者的降维结果都是对原有维度进行一定的处理,在处理的结果上都偏离了原有基于维度的认识;但只要清楚二者的逻辑一个是基于变量的线性组合,一个是基于因子的组合,便能很好地区分。

  FA与PCA的主要区别如下。

  (1)原理不同。主成分分析在损失很少信息的前提下,把多个指标转化为几个不相关的主成分;而因子分析则从原始变量相关矩阵内部的依赖关系出发,把因子表达为能表示少数公共因子和仅对某一个变量有作用的特殊因子的线性组合。

  (2)假设条件不同。主成分分析不需要假设条件,而因子分析需要假设各个共同因子之间、特殊因子(Specific Factor)之间,以及共同因子和特殊因子之间都不相关。

  (3)求解方法不同。主成分分析的求解方法从协方差阵出发,而因子分析的求解方法包括主成分法、主轴因子法、极大似然法、最小二乘法、a因子提取法等。

  (4)降维后的“维度”数量不同,即因子数量和主成分的数量。主成分分析的数量最多等于维度数;而因子分析中的因子数需要分析者指定,指定的因子数不同,结果也不同。

  综合来看,主成分分析由于不需要假设条件,并且可以最大限度地保持原有变量的大多数特征,因此适用范围更广泛,尤其是分析宏观的未知数据的稳定性更高。

  因子分析的实现过程非常简单,示例如下。

fa = FA(n_components=None)                 # ①
fa_data = fa.fit_transform(raw_data2)      # ②
fa_data[:3,:].round(2)                     # ③

  代码①初始化因子分析实战。代码②调用fit_transform做转换。代码③输出前3条结果如下。

array([[1.66, -2.94, -1.76, -0.67, 0. ],
      [-0.27, 1.11, -0.28, -0.44, 0. ],
      [ 0.21, 0.9, 1.86, 0.92, 0. ]])

  从结果可以看到,因子分析的结果与主成分分析的结果不同。

分享到:
在线咨询 我要报名
和我们在线交谈!