统计算法生信算法PCA

主成分分析

2018-12-26  本文已影响2人  我最有才

                                     主成分分析

##主成分分析pca-R语言实战::pca是把许多个体的不同特征转换为每个个体一个或几个特征;

###EFA是将许多个体的不同特征用几个个体的不同特征来表示

#数据集:psych包-USJudgeRatings律师对法院法官的评分

library(psych)

##1.判断主成分个数  本次去除接触次数没有关系的一列CONT

data_law<-USJudgeRatings

M<-USJudgeRatings[,-1]

  ###结果是:折线图(碎石图)往上;直线=1(水平线)往上;虚线(模拟100次的水平分析)往上;看来最少的是1

fa.parallel(USJudgeRatings[,-1],fa="pc",n.iter=100, show.legend =T,main = "Screen plot with parallel analysis")

###提取主成分

pc<-principal(USJudgeRatings[,-1],nfactors= 1)

##pc 列为主成分与观察值的相关系数;h2表示观察值方差有百分之多少可以用第一主成分分析;u2为无法解释1-h2

pc

##主成分旋转到新的坐标上  单个主成分可以不用旋转,2个以上采用,且主成分得分也要用旋转的得分;之后计算pc得分

rc<-principal(USJudgeRatings[,-1],nfactors= 1,rotate = "varimax")

rc

##主成分得分--每个观察值对应的律师的相关系数;

score<-principal(USJudgeRatings[,-1],nfactors= 1,scores = T)

score

##探索性因子得分

##数据:ability.cov   112个人

options(digits = 2)

cov<-ability.cov$cov

###利用cov2cor()转换为相关系数矩阵

cor<-cov2cor(cov)

cor

###判断需要多少因子

fa.parallel(cor,n.obs=112,fa="both",n.iter= 100,main="Screen plot with padallelanalysis")

##提取公共因子:先旋转再提取 

##正交旋转提取因子

fa.varimax<-fa(cor,nfactors= 2,rotate = "varimax",fm="pa")

fa.varimax  

##斜交旋转提取因子

fa.promax<-fa(cor,nfactors= 2,rotate = "Promax",fm="pa")

fa.promax

##正交与斜交结果图

factor.plot(fa.promax,labels= rownames(fa.promax$loadings))

fa.diagram(fa.promax,simple=F)

 ##因子得分

fa(cor,nfactors = 2,rotate ="Promax",fm="pa",scores = T)

上一篇 下一篇

猜你喜欢

热点阅读