gpt4 book ai didi

r - 使用 prcomp 和我自己在 R 中进行主成分分析 : different results

转载 作者:行者123 更新时间:2023-12-04 15:24:26 24 4
gpt4 key购买 nike

我哪里错了?我正在尝试通过 prcomp 和我自己执行 PCA,
我得到不同的结果,你能帮我吗?

自己做:

>database <- read.csv("E:/R/database.csv", sep=";", dec=",") #it's a 105 rows x 8 columns, each column is a variable
>matrix.cor<-cor(database)
>standardize<-function(x) {(x-mean(x))/sd(x)}
>values.standard<-apply(database, MARGIN=2, FUN=standardize)
>my.eigen<-eigen(matrix.cor)
>loadings<-my.eigen$vectors
>scores<-values.standard %*% loadings
>head (scores, n=10) # I m just posting here the first row scores for the first 6 pc

[,1] [,2] [,3] [,4] [,5] [,6]

2.3342586 2.3426398 -0.9169527 0.80711713 1.1409138 -0.25832090

>sd <-sqrt (my.eigen$values)
>sd

[1] 1.5586078 1.1577093 1.1168477 0.9562853 0.8793033 0.8094500 0.6574788
0.4560247

用 PRCOMP 来做:
>database.pca<-prcomp(database, retx=TRUE, center= TRUE, scale=TRUE)
>sd1<-database.pca$sdev
>loadings1<-database.pca$rotation
>rownames(loadings1)<-colnames(database)
>scores1<-database.pca$x
>head (scores1, n=10)
PC1 PC2 PC3 PC4 PC5 PC6
-2.3342586 2.3426398 0.9169527 0.80711713 1.1409138 0.25832090

范围 (scores-scores1) 不为零!
请帮我!!!
格洛丽亚

最佳答案

看起来您的主成分分数或多或少完全相同,只是符号不同。据我所知 here ,主成分的符号基本上是任意的。

如果您使用类似 range(abs(scores) - abs(scores1)) 的内容测试手动计算的分数相反,您应该得到非常接近 0 的值(由于可能的浮点精度影响,可能不完全是 0)。

关于r - 使用 prcomp 和我自己在 R 中进行主成分分析 : different results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14593603/

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