我想在由混合类型变量(连续和二进制)组成的数据集上应用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)中的特征向量相乘(按比例缩放)即可获得组件评分。任何指针将不胜感激。
1
我不确定我是否理解你的问题。为什么二进制变量会有什么不同?
@Insanodag:所以您建议我可以将数据矩阵与加载矩阵相乘?
—
安德烈(Andrej)