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.action
tham 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ý NA
các giá trị. Tuy nhiên, vấn đề với cả hai giải pháp là khi có một NA
giá 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 NA
giá 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 NA
giá 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 NA
giá trị cho một số giá trị cụ thể khi center
và scale
được thiết lập để TRUE
sao 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ế NA
cá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ì?