Я хочу применить PCA к набору данных, который состоит из переменных смешанного типа (непрерывных и двоичных). Чтобы проиллюстрировать процедуру, я вставил минимальный воспроизводимый пример в R ниже.
# 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)
Теперь мне интересно, как рассчитать оценки компонентов (т. Е. Необработанные переменные, взвешенные по загрузке компонентов). Когда набор данных состоит из непрерывных переменных, оценки компонентов просто получают путем умножения (масштабирования) необработанных данных и собственных векторов, сохраненных в матрице загрузки (L в примере выше). Любые указатели будут с благодарностью.