R语言统计分析——理解主成分分析和因子分析

参考资料:R语言实战【第2版】

        信息过度复杂是多变量数据最大的挑战之一。若数据集有100个变量,如何了解其中所有的交互关系呢?即使只有20个变量,当试图理解各个变量与其他变量的关系时,也需要考虑190对相互关系。

        主成分分析和探索性因子分析时两种用来探索和简化多变量复杂关系的常用方法,它们之间有联系也有区别。

        主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。例如,使用PCA可将30个相关(很可能冗余)的环境变量转化为5个无关的成分变量,并且尽可能地保留原始数据集的信息。

        探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法。它通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、显式的变量间的关系。Harman74.cor包含了24个心理测验间的相互关系,受试对象为145个七年级或八年级的学生。假使应用EFA来探索该数据,结果表明276个测验间的相互关系可用四个学生能力的潜在因子(语言能力、反应速度、推理能力和记忆能力)来进行解释。

        PCA与EFA模型间的区别如下:

R语言统计分析——理解主成分分析和因子分析_第1张图片

        主成分(PC1和PC2)是观测变量(X1到X5)的线性组合。形成线性组合的权重都是通过最大化各主成分所解释的方差来获得,同时还要保证各主成分间不相关。

        因子(F1和F2)被当作观测变量的结构基础或“原因”,而不是它们的线性组合。代表观测变量方差的误差(e1到e5)无法用因子来解释。上图中,圆圈表示因子和无法直接观测,但是可通过变量间的相互关系推导得到。在本例中,因子间带曲线箭头表示它们之间有相关性。在EFA模型中,相关因子是常见的,但并不是必需的。

        PCA和EFA都需要大样本来支撑稳定的结果,但样本量是多大也是个问题。目前,数据分析师的经验法则是:因子分析需要5~10倍于变量数的样本量

        在R语言中,R的基础安装包提供了PCA和EFA的函数,分别是princomp()和factanal()。另外,psych包也提供了类似函数,具有比基础函数更丰富和有用的选项,具体如下:

函数 描述
principal() 含有多种可选方差旋转方法的主成分分析
fa() 可用主轴、最小残差、加权最小平方或最大似然法估计的因子分析
fa.parallel() 含平行分析的碎石图
factor.plot() 绘制因子分析或主成分分析的结果
fa.diagram() 绘制因子分析或主成分的载荷矩阵
scree() 因子分析和主成分分析的碎石图

PCA和EFA最常用的分析步骤如下:

(1)数据预处理。PCA和EFA都根据观测变量间的相关性来推导结果。用户可以输入原始数据矩阵或相关系数矩阵到principal()和fa()函数中。若输入初始数据,相关系数矩阵将会被自动计算,在计算前请确保数据中没有缺失值

(2)选择因子模型。判断是PCA(数据降维)还是EFA(发现潜在结构)更符合我们的研究目标。如果选择EFA方法,我们还需要选择一种估计因子模型的方法(如最大似然估计)。

(3)判断要选择的主成分/因子数目。

(4)选择主成分/因子。

(5)旋转主成分/因子。

(6)解释结果。

(7)计算主成分或因子得分。

R语言统计分析——理解主成分分析和因子分析_第2张图片

你可能感兴趣的:(R语言统计分析,r语言,开发语言,主成分分析,因子分析,PCA,EFA)