Saya ingin menerapkan PCA pada dataset, yang terdiri dari variabel tipe campuran (kontinu dan biner). Untuk mengilustrasikan prosedur ini, saya menempelkan contoh minimal yang dapat direproduksi dalam R di bawah ini.
# 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)
Sekarang, saya bertanya-tanya bagaimana cara menghitung skor komponen (yaitu, variabel mentah tertimbang oleh pemuatan komponen). Ketika dataset terdiri dari variabel kontinu, skor komponen hanya diperoleh dengan mengalikan (scaled) data mentah dan vektor eigen yang disimpan dalam memuat matriks (L dalam contoh di atas). Petunjuk apa pun akan sangat dihargai.
Jawaban:
Saya pikir Insanodag benar. Saya mengutip Analisis Komponen Utama Jollife:
Mengalikan matriks data dengan matriks muat akan memberikan hasil yang diinginkan. Namun, saya punya beberapa masalah dengan
princomp()
fungsi jadi saya menggunakannyaprcomp()
sebagai gantinya.Salah satu nilai kembali fungsi
prcomp()
adalahx
, yang diaktifkan menggunakanretx=TRUE
. X ini adalah perkalian dari matriks data dengan matriks pemuatan sebagaimana dinyatakan dalam Dokumentasi R:Beri tahu saya jika ini bermanfaat, atau perlu koreksi lebih lanjut.
-
Jollife. Analisis Komponen Utama. Peloncat. Edisi kedua. 2002. hlm 339-343.
sumber