Я использовал эту prcomp()функцию для выполнения PCA (анализа главных компонентов) в R. Однако в этой функции есть ошибка, из-за которой na.actionпараметр не работает. Я попросил помощи по stackoverflow ; два пользователя предложили два разных способа работы со NAзначениями. Однако проблема обоих решений заключается в том, что при наличии NAзначения эта строка отбрасывается и не учитывается в анализе PCA. Мой реальный набор данных представляет собой матрицу 100 x 100, и я не хочу терять всю строку только потому, что она содержит одно NAзначение.
В следующем примере показано, что prcomp()функция не возвращает никаких основных компонентов для строки 5, поскольку она содержит NAзначение.
d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10),
V3 = sample(1:100, 10))
result <- prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x # $
d$V1[5] <- NA # $
result <- prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x
Мне было интересно, могу ли я установить NAзначения на определенное числовое значение, когда centerи scaleустановлены TRUEтак, чтобы prcomp()функция работала и не удаляла строки, содержащие NAs, но также не влияла на результат анализа PCA.
Я думал о замене NAзначений медианным значением в одном столбце или значением, очень близким к 0. Однако я не уверен, как это влияет на анализ PCA.
Кто-нибудь может придумать хороший способ решения этой проблемы?
NA значения : в чем причина «пропущенности»?