降维是将高维数据化为低维度数据的操作。多个变量可简化为以更少的核心变量替代。变量降维在一定程度上将促进数据分析结果的准确性。通过某种线性投影,将高维的数据映射到低维的空间中表示,并且期望在所投影的维度上数据的方差最大(最大方差理论),以此使用较少的数据维度,同时保留较多的原数据点的特性。通常有主成分分析和因子分析两种。
主成分分析
sink("principal.csv");jpeg(file="result-principal.jpg")
library(psych)
pc<-principal(USJudgeRatings[,-1],nfactors=1)
pc
head(pc$scores)
fa.parallel(Harman23.cor$cov,n.obs=302,fa="pc",n.iter=100,show.legend=FALSE,main="Scree plot with parallel analysis")
sink();dev.off()
因子分析
layout(matrix(c(1,2,1,3,1,4),3,2,byrow=TRUE), c(3,1))
options(digits=2)
covariances<-ability.cov$cov
correlations<-cov2cor(covariances)
correlations
library(psych)
convariances<-ability.cov$cov
correlations<-cov2cor(covariances)
fa.parallel(correlations,n.obs=112,fa="both",n.iter=100,main="Scree plots with parallel analysis")
fa<-fa(correlations,nfactors=2,rotate="none",fm="pa")
fa
fa.varimax<-fa(correlations,nfactors=2,rotate="varimax",fm="pa")
fa.varimax
library(GPArotation)
fa.promax<-fa(correlations,nfactors=2,rotate="promax",fm="pa")
fa.promax
fsm<-function(oblique){
if(class(oblique)[2]=="fa"&is.null(oblique$Phi)){
warning("Object doesn't look like oblique EFA")
基本含义结构造如下所示: