全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
13763 6
2015-12-10
悬赏 10 个论坛币 已解决
分别使用psych包的principal函数与基础包的prcomp函数对数据集USArrests进行主成分分析。
1、principal函数
首先分析主成分个数
fa.parallel(USArrests, fa="pc", n.iter=100)
结果如下:
QQ截图20151210162840.png
判定有一个主成分
然后使用principal函数pc <- principal(USArrests, nfactors=1),结果如下:
QQ截图20151210162503.png
2、使用prcomp函数pc1 <- prcomp(USArrests, scale. =TRUE),结果如下:
QQ截图20151210162540.png
计算了一下,这两个方法载荷系数不同,请问是怎么回事,求大神解答,谢谢!


最佳答案

培毅 查看完整内容

principal函数有问题,principal函数给出的loadings与prcomp的loadings差一个标准差倍数,principal的weights与loadings差一个方差倍数,所以principal函数应该不能直接计算主成分分析。按照pca的方法验算,prcomp函数没有问题,而principal有问题。我在网上也查了很久,principal一般都是从R IN action引用的,而prcomp的函数是软件自带的也是ISL中的例子,个人感觉更靠谱些。
二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-10 16:53:14
我是王婷 发表于 2016-6-23 16:43
请问,楼主你知道什么原因了吗?
principal函数有问题,principal函数给出的loadings与prcomp的loadings差一个标准差倍数,principal的weights与loadings差一个方差倍数,所以principal函数应该不能直接计算主成分分析。按照pca的方法验算,prcomp函数没有问题,而principal有问题。我在网上也查了很久,principal一般都是从R IN action引用的,而prcomp的函数是软件自带的也是ISL中的例子,个人感觉更靠谱些。
二维码

扫码加我 拉你入群

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

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

2015-12-12 00:21:31
You may need to scale your data when using the first method.
二维码

扫码加我 拉你入群

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

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

2015-12-12 14:24:43
waterhorse 发表于 2015-12-12 00:21
You may need to scale your data when using the first method.
第一个方法默认先进行标准化的
二维码

扫码加我 拉你入群

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

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

2015-12-12 23:59:49
ヾ過去式°ο° 发表于 2015-12-12 14:24
第一个方法默认先进行标准化的
If this is the case, I would use Singular Value Decomposition to find what the problem is.
二维码

扫码加我 拉你入群

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

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

2016-6-23 16:43:46
请问,楼主你知道什么原因了吗?
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群