我有一个包含10个变量和12,000个观测值的大型数据集,来自3种不同的系统(200个来自小池塘,600个来自河流,11200个来自湖泊)。我的数据集中有很多新农合,但我还是想执行PCA,只用我的数据框架的最后4列(第一列是描述性的站点,最后4列是化学数据),看看系统的差异有多大。
任何提示的方式来处理这个问题?
你可以用不同的方法解决缺失值的问题。下面我将对它们进行说明。
你应该使用包括NA值的变量的平均值,或者用线性回归来推算缺失值。
你应该使用 missMDA
然后 FactoMineR
或 pcaMethods
.下面是一个例子。
library(missMDA)
nPCs <- estim_ncpPCA(VIM::sleep)
Output
nPCS$ncp
3
completed_sleep <- imputePCA(VIM::sleep, ncp = nPCs$ncp, scale = TRUE)
PCA(completed_sleep$completeObs)
另一个例子是。
library(pcaMethods)
sleep_pca_methods <- pca(sleep, nPcs=2, method="ppca", center = TRUE)
imp_air_pcamethods <- completeObs(sleep_pca_methods)
如果你想深入 PCA
或 factoMiner 包,你应该访问其网站。http:/factominer.free.fr