我想在由混合类型变量(连续和二进制)组成的数据集上应用 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)中的特征向量相乘(缩放)来简单地获得分量分数。任何指针将不胜感激。