加载中…
个人资料
数据小雄
数据小雄
  • 博客等级:
  • 博客积分:0
  • 博客访问:184
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

R语言学习笔记-主成分分析(PCA)

(2016-09-10 13:53:28)
标签:

365

r

分类: R语言

主成分分析(PCA

 

《R语言实战》学习笔记

principal()   #
含多种可选的方差旋转方法的主成分分析

fa.parallel()  #含平行分析的碎石图

 

格式:principal(data,nfactors=,rotate=,scores=)

 

调用principal函数主要设置输入参数data和主成分数nfactors

 

说明:data相关系数矩阵或原始数据矩阵;

nfactors设定主成分数(默认为1);

rotate指定旋转的方法(默认为最大方差旋转varimax);

scores设定是否需要计算主成分得分(默认不需要)。

 

代码如下:

install.packages("psych")#安装psych

library(psych) #调用psych函数包

data(USJudgeRatings) #调用数据

fa.parallel(USJudgeRatings[,-1], fa="pc",n.iter=100, show.legend=FALSE, main="Scree plot with parallelanalysis") #含平行分析的碎石图

pc<-principal(USJudgeRatings[,-1],nfactors=1,rotate="none")#提取主成分

pc#输出未旋转的主成分

rc <- principal(USJudgeRatings[,-1],nfactors=1,rotate="varimax")#方差极大旋转的主成分,去噪

rc#输出旋转的主成分

rc <- principal(USJudgeRatings[,-1],nfactors=1,rotate="varimax",score=TRUE) #获取主成分得分

head(rc$scores) #输出主成分得分

round(unclass(rc$weights),2) #输出主成分得分系数

_______________________________________________________________________________
《统计建模与R软件》学习笔记:
测试数据:
X1=c(148, 139, 160, 149, 159, 142, 153, 150, 151, 139, 
       140, 161, 158, 140, 137, 152, 149, 145, 160, 156, 
       151, 147, 157, 147, 157, 151, 144, 141, 139, 148), 
  X2=c(41, 34, 49, 36, 45, 31, 43, 43, 42, 31, 
       29, 47, 49, 33, 31, 35, 47, 35, 47, 44,
       42, 38, 39, 30, 48, 36, 36, 30, 32, 38),
  X3=c(72, 71, 77, 67, 80, 66, 76, 77, 77, 68, 
       64, 78, 78, 67, 66, 73, 82, 70, 74, 78, 
       73, 73, 68, 65, 80, 74, 68, 67, 68, 70),
  X4=c(78, 76, 86, 79, 86, 76, 83, 79, 80, 74, 
       74, 84, 83, 77, 73, 79, 79, 77, 87, 85, 
       82, 78, 80, 75, 88, 80, 76, 76, 73, 78)

代码如下:
####
主成分分析

#读取数据

PCAdata<-read.csv("D:/ test.csv")

#作主成分分析

PCAdata.pr<-princomp(PCAdata,cor=TRUE)

#显示分析结果

summary(PCAdata.pr,loadings=TRUE)

#作预测

predict(PCAdata.pr)

#画出主成分的碎石图

screeplot(PCAdata.pr,type="lines")

#画散点图

biplot(PCAdata.pr,choices=1:2,scale=1,pc.biplot=FALSE)

_______________________________________________________________________________

 

princomp函数

格式:

princomp(x,cor=FALSE,scores=TRUE,covmat=NULL,subset=rep(TRUE,nrow(as.matrix(x))),)

说明:

x是用于主成分分析的数据;cor是逻辑变量,当cor=TRUE表示用样本的相关矩阵R作主成分分析,当cor=FALSE(默认值)表示用样本的协方差S作为主成分分析;covmat是协方差阵,如果数据不用x提供,可由协方差提供。

 

summary函数

格式:summary(object,loadings=FALSE,cutoff=0.1,)

说明:object是由princomp()得到的对象;loadings是逻辑变量,当loadings=TRUE表示显示loadings的内容,当loadings=FALSE则不显示。

 

loadings函数

格式:loadings(x)

说明:x是函数princomp()得到的对象。

 

predict函数

格式:predict(object,newdata,)

说明:object是由princomp()得到的对象;newdata是由预测值构成的数据框,当newdata为默认值时,预测已有数据的主成分值。

 

screeplot函数

格式:screeplot(x,npcs=min(10,length(x$sdev)),

                     type=c(“barplot”,”lines”),

                    main=deparse(substitute(x)), )

说明:xprincomp()得到的对象;npcs是画出的主成分个数;type是描述画出的碎石图的类型,其中“barplot”是直方图类型,“lines”是直线图类型。

 

biplot函数

格式:biplot(x,choices=1:2,scale=1,pc.biplot=FALSE,)

说明:xprincomp()得到的对象;choices是选择的主成分,默认值是第1、第2主成分;pc.biplot是逻辑变量(默认值为FALSE,当pc.biplot=TRUE,用Gabriel提出方法画图)
_______________________________________________________________________________
老师修改:
#读取数据
PCAdata<- read.csv("F:/工作/国电/test.csv")
#作主成分分析
PCAdata.pr<-princomp(PCAdata, cor=T)
#显示分析结果
summary(PCAdata.pr,loadings=T)

#画出主成分的碎石图
screeplot(PCAdata.pr,type="lines")

##输出原始数据的均值和标准差
disdata=rbind(PCAdata.pr$center,PCAdata.pr$scale)
rownames(disdata)=c("center","scale")

##输出主成分得分
scoresdata=PCAdata.pr$scores


R语言交流QQ群:99598210,欢迎加入!

点击链接加入:http://jq.qq.com/?_wv=1027&k=2GdJIAQ


数据小雄R语言学习笔记,转载请注明出处,谢谢!官网:http://www.zhangzhengxiong.com

—————————————————————————

【版权申明】

如非注明,本站文章均为 数据小雄 原创,转载请注明出处:数据小雄博客,并附带本文链接,谢谢合作!

本文地址:http://www.zhangzhengxiong.com/?id=4。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有