Ich möchte eine PCA auf einen Datensatz anwenden, der aus Variablen gemischten Typs (stetig und binär) besteht. Um die Vorgehensweise zu veranschaulichen, füge ich unten in R ein minimal reproduzierbares Beispiel ein.
# 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)
Nun frage ich mich, wie man Komponentenbewertungen berechnet (dh Rohvariablen, die durch Komponentenladungen gewichtet werden). Wenn der Datensatz aus kontinuierlichen Variablen besteht, werden die Komponentenbewertungen einfach durch Multiplizieren (skalierten) Rohdaten und Eigenvektoren erhalten, die in der Ladematrix gespeichert sind (L im obigen Beispiel). Alle Hinweise wäre sehr dankbar.
Antworten:
Ich denke Insanodag ist richtig. Ich zitiere Jollifes Hauptkomponentenanalyse:
Das Multiplizieren der Datenmatrix mit der Ladematrix ergibt das gewünschte Ergebnis. Ich hatte jedoch einige Probleme mit der
princomp()
Funktion, also habe ichprcomp()
stattdessen verwendet.Einer der Rückgabewerte der Funktion
prcomp()
istx
, der mit aktiviert wirdretx=TRUE
. Dieses x ist die Multiplikation der Datenmatrix mit der Ladematrix, wie in der R-Dokumentation angegeben:Lassen Sie mich wissen, ob dies nützlich war oder ob weitere Korrekturen erforderlich sind.
-
IT Jollife. Hauptkomponentenanalyse. Springer. Zweite Ausgabe. 2002, S. 339-343.
quelle