楼主: 美楠
9829 13

[问答] 如何提取主成分 [推广有奖]

  • 1关注
  • 0粉丝

大专生

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
472 点
帖子
38
精华
0
在线时间
35 小时
注册时间
2015-4-29
最后登录
2015-6-26

楼主
美楠 发表于 2015-5-15 17:22:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
想要对一组数据进行聚类分析,由于数据有很多,在作聚类之前先作了一个主成分分析,得到前六个主成分的累计贡献率达到了85%,因为我应该选择前六个主成分作为聚类分析的源数据,我想问一下是用predict函数对原数据进行主成分的预测,然后提取其前6列作主成分吗?pre<-predict(cz.pri)
r<-pre[,1:6]
predict的含义到底是什么呢??


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:如何提取 主成分 predict 主成分分析 聚类分析 如何

沙发
lww1993 发表于 2015-5-15 22:14:58
可以用princomp()去计算相应的主成分,主成分是变量的线性组合。不是某个变量。
princomp()$loadings可以得到相应的主成分的线性系数。从而得到相应的主成分。
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

藤椅
lww1993 发表于 2015-5-15 22:16:17
summary(princomp())可以得到相应的累积贡献率。

板凳
ryoeng 在职认证  发表于 2015-5-16 00:41:01
提示: 作者被禁止或删除 内容自动屏蔽

报纸
美楠 发表于 2015-5-19 17:26:28
也就是比方说前六个主成分的贡献率超过了85%,那我就提取前六个主成分,这前六个主成分是loadings的前六列??

地板
lww1993 发表于 2015-5-19 18:15:17
美楠 发表于 2015-5-19 17:26
也就是比方说前六个主成分的贡献率超过了85%,那我就提取前六个主成分,这前六个主成分是loadings的前六列? ...
princomp(X)$sdev得到的是每个主成分的标准差。
(princomp(X)$sdev)^2是每个主成分的方差。
每列是每个主成分的系数

7
美楠 发表于 2015-5-20 09:24:46
,如果是前六个,那就是princomp$loadings[,1:6]??对不

8
lww1993 发表于 2015-5-20 11:49:05
美楠 发表于 2015-5-20 09:24
,如果是前六个,那就是princomp$loadings[,1:6]??对不
对的。

9
美楠 发表于 2015-5-20 16:19:18
您好,再问一个问题,最近比较着急,我有一组数据(名称cz),总共217行18列,最后一列是汽油收率,我现在要建立模型用其他列的数据来预测最后这一列,我是这样做的:
1、对数据标准化:cz<-scale(cz)
2、作主成分分析:cz.pri<-princomp(cz)
前5个主成分的累计贡献率达到了86%,所以选前5个主成分
3、提取前5个主成分:cz.new<-cz.sum$loadings[,1:5]
4、用支持向量机建模,支持向量机的格式是:cz.svm<-svm(x,y...)
请问这里的x是刚提取的5个主成分吗,那么y应该是什么呢,是原数据的最后一列吗,我试了下好像不对啊,

10
lww1993 发表于 2015-5-20 17:21:57
美楠 发表于 2015-5-20 16:19
您好,再问一个问题,最近比较着急,我有一组数据(名称cz),总共217行18列,最后一列是汽油收率,我现在要 ...
你为什么不直接做svm呢?或者说用其它的办法去筛选变量?
你用主成分去筛选变量的话,这样是可以的。你得看看svm的帮助文档。是做回归还是做分类。这个地方不要弄错。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 22:02