主成分分析(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)), …)
说明:x是princomp()得到的对象;npcs是画出的主成分个数;type是描述画出的碎石图的类型,其中“barplot”是直方图类型,“lines”是直线图类型。
biplot函数
格式:biplot(x,choices=1:2,scale=1,pc.biplot=FALSE,…)
说明:x是princomp()得到的对象;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://zhangzhengxiong.com/?id=4。
—————————————————————————
流泪
0人
打酱油
1人
开心
18人
鼓掌
3人
恐怖
0人
发表评论
额 本文暂时没人评论 来添加一个吧