混合型変数(連続およびバイナリ)で構成されるデータセットに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:データマトリックスに負荷マトリックスを掛けることができますか?
—
アンドレ