主成分分析侧重“变异量”,通过转换原始变量为新的组合变量使到数据的“变异量”最大,从而能把样本个体之间的差异最大化,但得出来的主成分往往从业务场景的角度难以解释
因子分析更重视相关变量的“共变异量”,组合的是相关性较强的原始变量,目的是找到背后起作用的少量关键因子,因子分析的结果往往更容易用业务知识取加以解释。
因子载荷矩阵和特殊方差矩阵的估计方法
主成分法主因子法极大似然法 因子模型因子分析的一般模型为:
其中F=(f1 + f2 +…+ fm)T为公共因子向量,为特殊因子向量,为因子载荷矩阵。
因子载荷矩阵的统计意义
参数估计为了建立因子模型,我们首先要估计因子载荷矩阵A和特殊方差矩阵D,常用的参数估计方法有下面三种:
主成分法主因子法极大似然法例 9.7 对55个国家和地区的男子竞赛记录做统计,每位运动员记录8项指标:100米跑(X1),200米跑(X2),400米跑(X3),800米跑(X4),1500米跑(X5),5000米跑(X6),10000米跑(X7),马拉松(X8)。8项指标的相关矩阵R如表9.4所示。取m=2,使用主成分法估计因子载荷和共性方差等指标。
因子分析的计算函数
在R中使用factanal()函数对数据进行因子分析,它可以从样本数据、样本的方差矩阵和相关矩阵出发对数据做因子分析,并可以直接给出方差最大的载荷因子矩阵。
函数factanal()采用极大似然法估计参数,其使用格式为:
其中:
x是数据的公式,或者是由数据(每个样本按行输入)构成的矩阵,或者是数据框factors是因子的个数data是数据框,当x由公式形式给出时使用covmat是样本的协方差矩阵或样本的相关矩阵,此时不需要输入变量xscores表示因子得分的方法,scores=“regression”表示用回归方法计算因子得分,当参数为scores=”Bartlett”,表示用Bartlett方法计算因子得分。缺省值为none,即不计算因子得分。rotation表示旋转,缺省值为方法最大旋转,当rotation=”none”时,不做旋转变换。例 9.11 取m=2,用factanal()函数估计例 9.7因子载荷和共性方差等指标,参数选择方差最大。
输入数据样本的相关矩阵:
进行因子分析(极大似然法进行参数估计),首先不进行方差最大的旋转变换:
进行方差最大的旋转变换:
在上述信息中:
call表示调用函数的方法uniqueness是特殊方差,即的值。loadings是因子载荷矩阵,其中Factor1,Factor2是因子,X1, X2, …, X8是对应的变量SS loadings是公共因子fj对变量X1, X2,…, Xp的总方差贡献,即:Proportaion Var是方差贡献率,即:Cumulative Var是累计方差贡献率,即:在计算结果中,因子f1后几个变量(X6,X7,X8)的载荷因子接近于1,这些变量设计的是长跑,因此可以称f1为耐力因子。而因子f2中前几个变量(X1, X2)接近于1,涉及的是短跑,因此可称f2是速度因子。
以上从计算结果中得到的因子信息,在未做方差最大的旋转变换时,是很难再计算结果中发现的业务意义,这也说明了在因子分析中,对结果进行旋转变换的重要意义。这也是因子分析与主成分分析区别中的优势:可以更加清晰的刻画分析结果的潜在的业务意义。