Tôi muốn áp dụng PCA trên tập dữ liệu, bao gồm các biến loại hỗn hợp (liên tục và nhị phân). Để minh họa thủ tục, tôi dán một ví dụ có thể lặp lại tối thiểu trong R bên dưới.
# Generate synthetic dataset
set.seed(12345)
n <- 100
x1 <- rnorm(n)
x2 <- runif(n, -2, 2)
x3 <- x1 + x2 + rnorm(n)
x4 <- rbinom(n, 1, 0.5)
x5 <- rbinom(n, 1, 0.6)
data <- data.frame(x1, x2, x3, x4, x5)
# Correlation matrix with appropriate coefficients
# Pearson product-moment: 2 continuous variables
# Point-biserial: 1 continuous and 1 binary variable
# Phi: 2 binary variables
# For testing purposes use hetcor function
library(polycor)
C <- as.matrix(hetcor(data=data))
# Run PCA
pca <- princomp(covmat=C)
L <- loadings(pca)
Bây giờ, tôi tự hỏi làm thế nào để tính điểm thành phần (nghĩa là các biến thô có trọng số theo tải trọng thành phần). Khi tập dữ liệu bao gồm các biến liên tục, điểm thành phần chỉ đơn giản thu được bằng cách nhân dữ liệu thô (tỷ lệ) và hàm riêng được lưu trữ trong ma trận tải (L trong ví dụ trên). Bât cư thông tin được cung câp nao cung được la sự suât hiện tuyệt vơi.