[英]Principal component analysis on a correlation matrix
许多功能都可以对R中的原始数据执行主成分分析(PCA)。通过原始数据,我可以理解任何数据帧或矩阵,这些数据行或矩阵的行由观察索引,而列由度量标识。 我们可以对R中的相关矩阵执行PCA吗? 哪个函数可以接受相关矩阵作为R中的输入?
如评论中所述,您可以使用
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
获得负载。 通过as.matrix(iris) %*% e1$vectors)
计算得分(根据此CV问题 )(这不会对princomp()$scores
给出数值上相同的答案-本征矢量的缩放比例不同-但得出的结果相同)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.