评论

收藏

[R语言] R语言变量降维分析

编程语言 编程语言 发布于:2021-07-01 22:56 | 阅读数:581 | 评论:0

  变量降维: (Variable dimension reduction) 涉及因子分析/主成分分析等,通过使用这个工具,可以将多个变量减少,用新的核心变量进行替代,并将新变量用线性关系表示。从而减少变量字段过多造成的数据分析复杂度。将20个变量用6个变量进行替换,该6个变量及就成为新的变量。
# Retain numeric digits
covariances<-newdata
covariances<- cov(covariances)
correlations<-cov2cor(covariances)
print(correlations)
library(psych)
fa.parallel(correlations,n.obs=length(newdata[,1]),fa="both",n.iter=100,main="Scree plots with parallel analysis")
fa<-fa(correlations,nfactors=n,rotate="none",fm="pa")
print(fa)
fa.varimax<-fa(correlations,nfactors= n,rotate="varimax",fm="pa")
print(fa.varimax)
library(GPArotation)
fa.promax<-fa(correlations,nfactors=n,rotate="promax",fm="pa")
print(fa.promax)
  上述进行的是主成分分析,对因子进行降维,因子一般为数值型变量 。
fsm<-function(oblique){
  if(class(oblique)[2]=="fa"&is.null(oblique$Phi)){
  warning("Object doesn't look like oblique EFA")
  }else{
  P<-unclass(oblique$loading)
  F<-P%*%oblique$Phi
  colnames(F)<-c("PA1","PA2")
  return (F)
  }
}
fsm(fa.promax)
factor.plot(fa.promax,labels=rownames(fa.promax$loadings))
fa.diagram(fa.promax,simple=TRUE)
print(fa.promax$weights)
  上述是对因子进行了因子旋转降维,最终可以查看因子载荷和相关系数。

  
关注下面的标签,发现更多相似文章