Выполнение PCA в R со многими NA - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть большой набор данных из 10 переменных и 12 000 наблюдений, полученных из 3 типов различных систем (200 из небольших прудов, 600 из рек и 11200 из озер). У меня есть много NA в моем фрейме данных, но я все еще хочу выполнить PCA, чтобы увидеть, насколько разные системы, используя только последние 4 столбца моего фрейма данных (первые столбцы описывают сайты, последние четыре столбца - химические данные) .

Есть ли какие-либо подсказки, как с этим бороться?

1 Ответ

0 голосов
/ 02 мая 2020

Вы можете решить проблему пропущенного значения другим способом. Ниже я собираюсь проиллюстрировать их.

Следует использовать среднее значение переменной, которая включает в себя значения 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...