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