Entfernen von NA in der Korrelations-matrix
Ich bin dabei eine Korrelationsmatrix für ein dataframe von 4000 variable und die würde ich gerne entfernen der Variablen anzeigen > 0.5 Korrelation, so bin ich mit diesem Befehl aus dem {caret} - Paket.
removeme <- findCorrelation(corrMatrix, cutoff = 0.5, verbose = FALSE)
Error in if (mean(x[i, -i]) > mean(x[-j, j])) { :
missing value where TRUE/FALSE needed
Die Daten, die ich habe, ist sehr variabel, und ich bekomme die NA-Werte hier und da. So starten Sie mit, ich konnte Sie nicht finden, etwas, das umgehen können mit NA-Werte auf der Hilfeseite zu diesem Befehl, also beschloss ich, entfernen die NA-Werte selbst.
Einige Variablen zeigen NA-Werte über den gesamten Daten, und einige zeigen einige NA-Werte. Ich bin versucht zu entfernen, die Variablen, die verursachen keine NA-Werte, so dass ich in der Lage sein, um die oben genannten Befehl. Hier ist ein minimal-Beispiel, was meine Daten sieht wie
dput(df) <- structure(list(GK = 1:10, HGF = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L), HJI = c(2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
HDF = c(5L, 6L, 8L, 9L, 5L, 2L, 4L, 3L, 2L, 1L), KLJG = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), KLJA = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), KDA = c(10L, 11L, 15L, 18L,
11L, 10L, 10L, 15L, 12L, 13L), OIE = c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), AFE = c(0L, 0L, 0L, 1L, 0L, 0L, NA,
NA, NA, NA)), .Names = c("GK", "HGF", "HJI", "HDF", "KLJG",
"KLJA", "KDA", "OIE", "AFE"), class = "data.frame", row.names = c(NA,
-10L))
corrMatrix <- cor(df,use="pairwise.complete.obs")
Was wäre die beste Idee, um loszuwerden, diese lästigen Variablen? Ich habe versucht, Viele Befehle, aber nicht bekommen, um die ideale eine, die loszuwerden, diese Variablen. Hier einer meiner versuche:
removeme <- corrMatrix[,which(as.numeric(rowSums(is.na(corrMatrix))) > 100)]
Das Problem mit diesem Befehl, dass, wenn es war über eine 100-fehlerhafte Variablen (die NA in der Korrelations-matrix) die normale Variablen entfernt werden, da die Spalten der normalen variable wird > 100 NA-Werte.
Ich hoffe, dieses edit gemacht meine Frage klarer. Cheers.
corrMatrix
. Wenn es NA
Werte in der matrix, dann müssen Sie entscheiden, was Sie wollen, dort zu setzen, z.B. mit Nullen oder ein künstliches großen Wert, damit findCorrelation
um seine Aufgabe zu beenden.
InformationsquelleAutor Error404 | 2013-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen einfach nur, um loszuwerden, jede Spalte, die eine oder mehrere
NA
s, dann ebenAber auch mit fehlenden Daten, können Sie die Berechnung der Korrelations matrix mit keine
NA
Werte durch die Angabe deruse
parameter in der Funktioncor
. Einstellung es entwederpairwise.complete.obs
odercomplete.obs
wird in einem Korrelations-matrix mit keineNA
s.complete.obs
ignoriert alle Zeilen mit fehlenden Daten in der Erwägung, dasspairwise.complete.obs
wird, ignorieren Sie einfach die fehlenden paar Daten. Beachten Sie, dass, obwohlpairwise.complete.obs
"besser klingt", weil es verwendet Daten, aber es ist nicht garantiert, um zu produzieren eine positiv-definite Korrelationsmatrix, die ein problem sein könnte.Was ist falsch mit der Einstellung
df<-df[,colSums(!is.na(df))>0]
um loszuwerden, Spalten, sind alleNA
vor der Erstellung der Korrelationsmatrix?Weil ich bin mir nicht ganz sicher, dass nur der "alle-null" - Variablen sind, was die NA (dachte, es wäre etwas anderes, ich arbeite mit tausenden von Variablen. Trotzdem versuche ich es jetzt. Hoffe, es wird funktionieren. danke für den Hinweis.
Ja nur alle null-Spalten stellte sich heraus, um das problem zu, das ist peinlich! Ich bin nicht sicher, ob ich es behalten sollte, ist die Frage, die nützlich sein könnten für jemanden?
InformationsquelleAutor mrip
Vor der Auswertung die Korrelation für die Prädiktoren aus dem dataset entfernen der null-Varianz der Prädiktoren.
zu entfernen null Varianz der Prädiktoren
berechnen Korrelationsmatrix
fassen die Korrelationsmatrix
finden die Attribute, die dringend korrigiert (ideal >0.7)
print-Indizes von hoch korrelierten Parametern
wichtige Variablen
InformationsquelleAutor Madhurima Pal
Es ist nicht klar, was Sie zu tun versuchen. Aber hier ein Beispiel im Umgang mit fehlenden Werten. Ich zeige das in einer kleinen matrix.
Spalten entfernen, alle Elemente sind NA -
Spalten entfernen, die irgendwelche NA -
na.omit()
ich Locker einige Variablen, die ich eigentlich will. Kann man bitte haben Sie einen Blick auf das Beispiel habe ich nur Hinzugefügt? DankSie jemals eine Lösung finden? Ich habe genau das gleiche Problem.
InformationsquelleAutor agstudy