Ich versuche, ein PCA auf den „Ausbildung1“ Datensatz laufen unten erstellt:Hauptkomponentenanalyse Fehler in R
library(AppliedPredictiveModeling); data(AlzheimerDisease); library(caret)
adData <- data.frame(diagnosis, predictors)
inTrain <- createDataPartition(y = adData$diagnosis, p = .75)[[1]]
training <- adData[inTrain, ]
keep <- subset(data.frame(x = substr(as.character(colnames(training)), 1, 2), y = c(1:ncol(training))), x == "IL")
training1 <- cbind(training[, c(keep[1, 2]:keep[nrow(keep), 2])], training[c("diagnosis")])
Dann, als ich laufen die folgende Funktion:
preProc <- preProcess(log10(training1[, -13]+1), method = "pca", pcaComp = 2)
Ich bekomme folgenden Fehler:
Ich habe aber dann die folgenden zwei Funktionen ausgeführt, um zu beweisen, dass Standardabweichungen können berechnet werden für die beiden Variablen heißt es, dass es sie nicht berechnen kann:
sd(training1$IL_1alpha)
[1] 0.4056147
sd(training1$IL_3)
[1] 0.5235212
Und dann die folgende Funktion ausführen zu beweisen, dass ich keine Variablen mit einer Null-Varianz.
nsv <- nearZeroVar(training1, saveMetrics = TRUE)
> print(nsv)
freqRatio percentUnique zeroVar nzv
IL_11 1.250000 29.4820717 FALSE FALSE
IL_13 1.052632 6.7729084 FALSE FALSE
IL_16 1.117647 21.9123506 FALSE FALSE
IL_17E 1.238095 16.7330677 FALSE FALSE
IL_1alpha 1.208333 23.1075697 FALSE FALSE
IL_3 1.066667 24.7011952 FALSE FALSE
IL_4 1.315789 19.1235060 FALSE FALSE
IL_5 1.000000 19.5219124 FALSE FALSE
IL_6 1.000000 20.3187251 FALSE FALSE
IL_6_Receptor 1.041667 21.5139442 FALSE FALSE
IL_7 1.611111 18.7250996 FALSE FALSE
IL_8 1.000000 22.3107570 FALSE FALSE
diagnosis 2.637681 0.7968127 FALSE FALSE
Es scheint, wie andere Menschen die Probleme mit der PCA in R waren um Null Varianz Spalten, aber da ich beweisen kann, dass ich nicht über diese Frage ist hier, irgendwelche Ideen, was das Problem verursachen?