Quiero aplicar un PCA en un conjunto de datos, que consiste en variables de tipo mixto (continuo y binario). Para ilustrar el procedimiento, pego un ejemplo mínimo reproducible en R a continuación.
# 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)
Ahora, me pregunto cómo calcular las puntuaciones de los componentes (es decir, las variables sin procesar ponderadas por las cargas de los componentes). Cuando el conjunto de datos consta de variables continuas, las puntuaciones de los componentes se obtienen simplemente multiplicando (sin escalar) datos y vectores propios almacenados en la matriz de carga (L en el ejemplo anterior). Cualquier puntero sería muy apreciado.