Tôi đã sử dụng prcomp()chức năng để thực hiện PCA (phân tích thành phần chính) trong R. Tuy nhiên, có một lỗi trong chức năng đó khiến na.actiontham số không hoạt động. Tôi đã yêu cầu giúp đỡ về stackoverflow ; Hai người dùng ở đó đưa ra hai cách khác nhau để xử lý NAcác giá trị. Tuy nhiên, vấn đề với cả hai giải pháp là khi có một NAgiá trị, hàng đó bị bỏ và không được xem xét trong phân tích PCA. Tập dữ liệu thực của tôi là ma trận 100 x 100 và tôi không muốn mất toàn bộ hàng chỉ vì nó chứa một NAgiá trị duy nhất .
Ví dụ sau đây cho thấy prcomp()hàm không trả về bất kỳ thành phần chính nào cho hàng 5 vì nó chứa NAgiá trị.
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
Tôi đã tự hỏi nếu tôi có thể thiết lập các NAgiá trị cho một số giá trị cụ thể khi centervà scaleđược thiết lập để TRUEsao cho prcomp()công trình chức năng và không loại bỏ hàng chứa NA's, nhưng cũng không ảnh hưởng đến kết quả của việc phân tích PCA.
Tôi đã nghĩ về việc thay thế NAcác giá trị bằng giá trị trung bình trên một cột hoặc với giá trị rất gần với 0. Tuy nhiên, tôi không chắc điều đó ảnh hưởng đến phân tích PCA như thế nào.
Bất cứ ai cũng có thể nghĩ ra một cách tốt để giải quyết vấn đề đó?
NA các giá trị : nguyên nhân của "sự thiếu" là gì?