主成分分析,PrincipalComponentAnalvsis,也简称为PCA,是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关的变量称为主成分。主成分其实是对原始变量重新进行线性组合将原先众多具有一定相关性的指标,重新组合为一组的新的相互独立的综合指标。
1、数据预处理;
2、选择分析模型;
3、判断要选择的主成分/因子数目;
4、选择主成分/因子;
5、旋转主成分/因子;
6、解释结果;
7、计算主成分或因子得分。这步也是可选的
library(psych)
fa.parallel(USJudgeRatings,fa="pc",n.iter=100)
pc <- principal(USJudgeRatings, nfactors=1,rotate="none",score=FALSE)
pc <- principal(USJudgeRatings,nfaccors= 1,scores=TRUE)
pc$scores
Harman23.cor
fa.parallel(Harman23.cor$cov, n.obs=302, fa="pc",n.iter=100,
show.legend=FALSE, main="Scree plot with parallel analysis")
pc <- principal(Harman23.cor$cov, nfactors=2, rotate="none")
pc
pc <- principal(Harman23.cor$cov, nfactors=2, rotate="varimax")
主成分与因子分析比较
不同点:
主成分分析:
1.用较少的变量表示原来的样本;
2目的是样本数据信息损失最小的原则下,对高维变量进行降维。
3参数估计,一般是求相关矩阵的特征值和相应的特征向量,取前几个计算主成分。
4应用:应用较少变量来解释各个样本的特征。
因子分析:
1用较少的因子表示原来的变量;
2目的是尽可能保持原变量相互关系,寻找变量的公共因子。
3.参数估计,指定几个公因子,将其还原成相关系数矩阵,在和原样本相关矩阵最相似原则下,估计各个公因子的估计值。
4应用:找到具有本质意义的少量因子来归纳原来变量的特征。
library(psych)
ability.cov$cov
options=(digits=2)
covariances<-ability.cov$cov
correlations<-cov2cor(covariances)
correlations
fa.parallel(correlations,fa="both",n.obs=112,n.iter=100)
fa<- fa(correlations,nfactors=2,rotate="none",fm="pa")
fa.varimax<- fa(correlations,nfactors=2,rotate="varimax",fm="pa")
factor.plot(fa.promax,labels=rownames,promax$loadings)
fa.diagram(fa.varimax,simple = FALSE)