gpt4 book ai didi

r - 不同R函数之间的PCA值不同,有什么解释吗?

转载 作者:行者123 更新时间:2023-12-04 12:05:51 25 4
gpt4 key购买 nike

我遇到了 PCA 分析,并注意到 R 中不同函数返回的不同值。这个问题的目的是消除每个输出的歧义。关于为什么这些函数返回不同的值,我没有找到令人满意的 answer。比较的函数是: stats::princomp()stats::prcomp()psych::principal()FactoMineR::PCA() 。为了比较起见,数据集被缩放和居中,并且都设置为返回 4 个组件,但是为了简洁起见,这里只显示了前两个 PC。

下面是用于设置案例的 MWE 代码。请随时报告 R 中的任何其他函数,我希望您可能会发现在一个地方比较其输出会有所帮助。

princompPCA <- princomp(USArrests, cor = TRUE)
prcompPCA <- prcomp(USArrests,scale.=TRUE)
principalPCA <- principal(USArrests, nfactors=4 , scores=TRUE, rotate = "none",scale=TRUE)
library(FactoMineR)
fmrPCA <- PCA(USArrests, ncp=4, graph=FALSE) # vars scaled data
# now the first two PCs from each package into one data frame
dfComp <- cbind.data.frame(princompPCA$scores[,1:2],prcompPCA$x[,1:2],principalPCA$scores[,1:2],fmrPCA$ind$coord[,1:2])
names(dfComp) <- c("princompDim1","princompDim2","prcompDim1","prcompDim2","principalDim1","principalDim2","fmrDim1","fmrDim2")
head(dfComp)

输出:
           princompDim1 princompDim2 prcompDim1 prcompDim2 principalDim1 principalDim2    fmrDim1    fmrDim2
Alabama -0.9855659 1.1333924 -0.9756604 1.1220012 0.61951483 -1.1277874 0.9855659 -1.1333924
Alaska -1.9501378 1.0732133 -1.9305379 1.0624269 1.22583308 -1.0679059 1.9501378 -1.0732133
Arizona -1.7631635 -0.7459568 -1.7454429 -0.7384595 1.10830334 0.7422678 1.7631635 0.7459568
Arkansas 0.1414203 1.1197968 0.1399989 1.1085423 -0.08889509 -1.1142591 -0.1414203 -1.1197968
California -2.5239801 -1.5429340 -2.4986128 -1.5274267 1.58654347 1.5353037 2.5239801 1.5429340
Colorado -1.5145629 -0.9875551 -1.4993407 -0.9776297 0.95203595 0.9826713 1.5145629 0.9875551

我注意到 stats::princomp() 的输出与 FactoMineR::PCA() 完全相同,除了反转符号。知道为什么这些标志是镜像的吗?这两个函数的两个输出都接近 stats::prcomp() 但这可能是由于浮点问题,一个小问题。但是 psych::principal() 与其他的相对不同。可能是由于上述功能之间的旋转差异吗?因此,对这些差异的任何解释将不胜感激。

最佳答案

PCA 的结果是沿轴的向量。符号反转的数字只是沿同一轴指向另一个方向的向量。所以,你得到的结果是一样的。

其他差异可能是由于计算主成分的不同方式,即使用相关矩阵的特征向量或使用奇异向量分解。但我只是在这里推测。

关于r - 不同R函数之间的PCA值不同,有什么解释吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com