R 稳健PCA分析

稳健PCA,就是一种通过构造稳健的均值向量和稳健的协方差矩阵的主成分分析方法,其目标是从输入矩阵中去除稀疏缺失并获得低秩近似,可以有效消除数据集中异常值的影响和提高寻找大型数据集中关键主成分的能力

data(iris)
X <- iris[,1:4]
library(matrixStats)
colVars(as.matrix(X))#方差跨度不大,可以不进行scale
#0.6856935 0.1899794 3.1162779 0.5810063

稳健PCA(传统用法)

pc.rob <- princomp(X, covmat= MASS::cov.rob(X))
#协方差矩阵或是由stats::cov.wt和MASS::cov.xxx返回的协方差列表。
#如果提供了,用这个代替x的协方差矩阵。
factoextra::fviz_pca_ind(X = pc.rob,
                         col.ind = iris[,5],
                         repel = T,
                         addEllipses = T)
稳健PCA

常规PCA

pc <- princomp(X)
factoextra::fviz_pca_ind(X = pc,
                         col.ind = iris[,5],
                         repel = T,
                         addEllipses = T)
常规PCA

PS: 似乎没太大差异,原因在于原数据集比较小且无异常值,记录在此,以后慢慢研究
除此之外,还有一些专门用来做robust PCA的包,包括pcaPP(通过投影追踪),rpca(包括“稳健稀疏PCA”)和rospca

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容