许多函数可以对R中的原始数据进行主成分分析(PCA),通过原始数据,我了解任何数据框架或矩阵,这些数据框架或矩阵的行被观察到索引,其列与测量值相一致。我们能在R中的相关矩阵上进行PCA吗?哪个函数可以接受相关矩阵作为R中的输入?
发布于 2018-11-17 16:31:20
正如注释中提到的,您可以使用
ii <- as.matrix(iris[,1:4])
princomp(covmat=cor(ii))这将给出与princomp(iris,cor=TRUE)等价的结果(这不是您想要的结果-后者使用完整的数据矩阵,但返回在协方差矩阵转换为相关时计算的值)。
如果有关联矩阵,也可以手工完成所有相关的计算:
cc <- cor(ii)
e1 <- eigen(cc)标准差:
sqrt(e1$values)
[1] 1.7083611 0.9560494 0.3830886 0.1439265差异比例:
e1$values/sum(e1$values)
[1] 0.729624454 0.228507618 0.036689219 0.005178709您可以通过e1$vectors获得装载。通过this CV question(根据as.matrix(iris) %*% e1$vectors) )计算分数(这不会给出与princomp()$scores数值相同的答案--特征向量的缩放方式不同--但它给出了相同的结果)。
https://stackoverflow.com/questions/53352695
复制相似问题