Użyłem tej prcomp()funkcji do wykonania PCA (analiza głównego składnika) w R. Jednak w tej funkcji jest błąd, który na.actionpowoduje, że parametr nie działa. Poprosiłem o pomoc w stosie przepływu ; dwóch użytkowników zaoferowało dwa różne sposoby radzenia sobie z NAwartościami. Problem z obydwoma rozwiązaniami polega jednak na tym, że gdy istnieje NAwartość, wiersz jest pomijany i nie jest uwzględniany w analizie PCA. Mój prawdziwy zestaw danych to macierz 100 x 100 i nie chcę stracić całego wiersza tylko dlatego, że zawiera jedną NAwartość.
Poniższy przykład pokazuje, że prcomp()funkcja nie zwraca żadnych głównych składników dla wiersza 5, ponieważ zawiera NAwartość.
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
Zastanawiałem się, czy mogę ustawić NAwartości na określoną wartość liczbową, kiedy centeri scalesą ustawione na TRUEtak, aby prcomp()funkcja działała i nie usuwała wierszy zawierających je NA, ale także nie wpływała na wynik analizy PCA.
Myślałem o zastąpieniu NAwartości wartością mediany w jednej kolumnie lub wartością bardzo zbliżoną do 0. Nie jestem jednak pewien, jak to wpływa na analizę PCA.
Czy ktoś może wymyślić dobry sposób na rozwiązanie tego problemu?
NA wartości : jaka jest przyczyna „zaginięcia”?