1 算法简介
因子分析法是指:研究从变量群中提取共性因子的统计技术,这里的共性因子指的是不同变量之间内在的隐藏因子。例如,一个学生的英语、数据、语文成绩都很好,那么潜在的共性因子可能是智力水平高。因此,因子分析的过程其实是寻找共性因子和个性因子并得到最优解释的过程。
因子分析法的基本思想是:根据相关性大小把变量分组,使得同组内的变量之间相关性较高,但不同组的变量不相关或相关性较低,每组变量代表一个基本结构一即公共因子。因子分析有两个核心问题:一是如何构造因子变量,二是如何对因子变量进行命名解释。
因子分析可分为R型因子分析与Q型因子分析,就像聚类分析分为R型和Q型一样,R型的因子分析是对变量作因子分析,Q型因子分析是对样品作因子分析。
因子分析用于处理高斯数据,主要应用于以下两种情形:假如有 m 个样本,每个样本的维度是 n, 如果 n » m;这时哪怕拟合出一个高斯模型都很困难,更不用说高斯混合,。这和解多元线性方程组是一样的道理,就是自变量的个数多于非线性相关的方程的个数,这必然导致解的不唯一,虽然在解方程的时候可以随便选一个解满足方程组,但是对于某一实际数据集,往往样本对应的概率分布在客观上都是唯一的,只是我们无法简单地用概率论中的几个典型的分布准确表示出来。
m 个样本的维度都较低。用高斯分布对数据建模,用最大似然估计去估计均值(期望)和方差:
我们会发现,协方差矩阵 Σ 是奇异的,即 Σ 不可逆,Σ-1 不存在,且有:
但是这两项在计算多元高斯分布时,又都是必不可少的。所以,除非 m 比 n 大一定较合适的数值,否则对方差和均值的最大似然估计将会很难找到正确的值。
2 算法原理
应用因子分析算法时,常常有如下几个基本步骤:
确定原有若干变量是否适合于因子分析;因子分析的基本逻辑是从原始变量中构造出少数几个具有代表意义的因子变量,这就要求原有变量之间要具有比较强的相关性,否则,因子分析将无法提取变量间的“共性特征”(变量间没有共性还如何提取共性?)。实际应用时,可以使用相关性矩阵进行验证,如果相关系数小于0.3,那么变量间的共性较小,不适合使用因子分析;也可以用KMO 和 Bartlett 的检验来判断是否适合做因子分析,一般来说KMO的值越接近于1越好,大于zhi0.5的话适合做因dao子分析,你的KMO值是0.674大于0.5。Bartlett 的检验主要看Sig.越小越好,你的接近于0.由此可以得出,你的数据适合做因子分析。
构造因子变量;因子分析中有多种确定因子变量的方法,如基于主成分模型的主成分分析法和基于因子分析模型的主轴因子法、极大似然法、最小二乘法等。
利用旋转使得因子变量更具有可解释性 ;在实际分析工作中,主要是因子分析得到因子和原变量的关系,从而对新的因子能够进行命名和解释,否则其不具有可解释性的前提下对比PCA就没有明显的可解释价值。
计算因子变量的得分 。子变量确定以后,对每一样本数据,希望得到它们在不同因子上的具体数据值,这些数值就是因子得分,它和原变量的得分相对应。
因子分析法的具体步骤如下:
(1) 相关性检验,一般采用KMO检验法和Bartlett球形检验法两种方法来对原始变量进行相关性检验;
(2) 输入原始数据Xn*p,计算样本均值和方差,对数据样本进行标准化处理;
(3) 计算样本的相关矩阵R;
(4) 求相关矩阵R的特征根和特征向量;
(5) 根据系统要求的累积贡献率确定公共因子的个数;
(6) 计算因子载荷矩阵A;
(7) 对载荷矩阵进行旋转,以求能更好地解释公共因子;
(8) 确定因子模型;
(9) 根据上述计算结果,求因子得分,对系统进行分析。
3 算法应用
大部分情况下,我们所认识与理解的因子分析,就是用个数较少的新变量代替原始变量,并且希望新变量能涵盖原始变量较多的信息即浓缩信息;这是因子分析最常用也是最广为人知的一种用法,但除此之外,因子分析还有几个隐藏用法,比如还可以使用因子分析进行结构效度分析、综合竞争力分析、权重分析、共同方法偏差检验等,如下图所示:
在中医药领域中,因子分析也同样发挥着它不可替代的作用。例如在探讨帕金森病的中医药用药规律的研究中,研究者收集中医药方剂治疗帕金森病的相关文献,建立中药数据库,采用因子分析法探讨各药物相互关系。在经过频数分析和聚类分析后,研究者对频次≥5次的中药进行因子分析。按照统计分析流程,首先,对数据进行KMO检验和Bartlett检验,得出 KMO 值0.276,Bartlett 的球形度检验P
4 小结
因子分析跟主成分分析一样,由于侧重点都是进行数据降维,因此很少单独使用,大多数情况下都会有一些模型组合使用。例如:
(1) 因子分析(主成分分析)+多元回归分析:判断并解决共线性问题之后进行回归预测;
(2) 因子分析(主成分分析)+聚类分析:通过降维后的数据进行聚类并分析数据特点,但因子分析会更适合,原因是基于因子的聚类结果更容易解释,而基于主成分的聚类结果很难解释;
(3) 因子分析(主成分分析)+分类:数据降维(或数据压缩)后进行分类预测,这也是常用的组合方法。
因子分析在实现中可以使用旋转技术,因此可以得到更好的因子解释,这一点比主成分占优势;另外,因子分析不需要舍弃原有变量,而是站到原有变量间的共性因子作为下一步应用的前提,其实就是由表及里去发现内在规律。但是,主成分分析由于不需要假设条件,并且可以最大限度的保持原有变量的大多数特征,因此适用范围更广泛,尤其是宏观的未知数据的稳定度更高。
参考文献:
[1]刘煜,李鸣,杨琼等.基于Apriori算法与因子分析探讨帕金森病的中医药用药规律[J].中西医结合心脑血管病杂志,2024,22(03):445-451.
[2]知乎专栏. 《因子分析的六类应用》. 见于 2024年2月7日. .
[3]《因子分析(FA)算法简述_因子分析法-CSDN博客》. 见于 2024年2月7日. .
发表评论