Вы можете решить проблему пропущенного значения другим способом. Ниже я собираюсь проиллюстрировать их.
Следует использовать среднее значение переменной, которая включает в себя значения 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/