Je veux appliquer une PCA sur un ensemble de données, qui se compose de variables de type mixte (continu et binaire). Pour illustrer la procédure, je colle un exemple reproductible minimal dans R ci-dessous.
# 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)
Maintenant, je me demande comment calculer les scores des composants (c'est-à-dire les variables brutes pondérées par les chargements des composants). Lorsque l'ensemble de données se compose de variables continues, les scores des composants sont simplement obtenus en multipliant les données brutes (mises à l'échelle) et les vecteurs propres stockés dans la matrice de chargement (L dans l'exemple ci-dessus). Tout pointeur serait grandement apprécié.