Я використовував цю prcomp()
функцію для виконання PCA (аналіз основних компонентів) в Р. Однак у цій функції є помилка, така що na.action
параметр не працює. Я попросив допомоги щодо stackoverflow ; двоє користувачів там запропонували два різні способи поводження з NA
цінностями. Однак проблема обох рішень полягає в тому, що коли є NA
значення, цей рядок випадає і не враховується в аналізі PCA. Мій реальний набір даних - це матриця розміром 100 х 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()
функція працює і не видаляє рядки, що містять NA
s, але також не впливає на результат аналізу PCA.
Я думав про заміну NA
значень середнім значенням в одному стовпчику або зі значенням, близьким до 0. Однак я не впевнений, як це впливає на аналіз PCA.
Чи може хтось придумати хороший спосіб вирішення цієї проблеми?
NA
значення : що є причиною "відсутності"?