2016-05-03 13 views
0

Ich versuche, die korrelierten Attribute, die außerhalb der Grenzen (-1,1) sind zu entfernen. Ich verwende den folgenden Code für die Korrelation:Entfernen Sie korrelierte Attribute in R

cor(df[sapply(df, is.numeric)]) 

Danach bekomme ich die Korrelationswerte. Wie kann ich die Werte größer als 1 und kleiner -1 entfernen?

Danke

+2

Wie kann man die Werte '> 1' und' <-1' aus 'cor' bekommen? Bitte geben Sie ein Stück Datensatz –

+0

es ist zu groß, es hat 25 Spalten und 1075 Zeile – user4475661

+1

Sie sollten keine Korrelationswerte außerhalb 1 und -1 haben. Sie können alle Werte außerhalb dieser Grenzen durch 'NA' ersetzen mit' ifelse (Daten <-1, NA, ifelse (Daten> 1, NA, Daten)) ' –

Antwort

0

Die cor() Funktion in R empfängt einen numerischen Vektor, Matrix oder Datenrahmen und gibt eine paarweise Korrelationsmatrix von Variablen. Es wird erwartet, dass Werte in der Korrelationsmatrix in dem Bereich von -1 bis +1 liegen. Probleme entstehen jedoch, wenn wir eine Korrelationsmatrix haben, die nicht positiv semi-definitiv ist. Die häufigste Ursache für eine ungültige Korrelationsmatrix sind fehlende Werte. R bietet verschiedene Möglichkeiten, mit fehlenden Werten in einer Korrelationsmatrix umzugehen. Sie können die Option na.rm = TRUE verwenden, um alle fehlenden Werte anzugeben, die entfernt werden sollen (nur vollständige Zeilen werden verwendet). Dies führt immer zu einer gültigen Korrelationsmatrix. Drei weitere Optionen können für die Behandlung fehlender Beobachtungen angegeben werden. Die Option use = "all.obs" gibt an, dass keine fehlenden Beobachtungen vorhanden sind und das Vorhandensein von fehlenden Werten einen Fehler verursacht. Wenn use = "complete.obs" angegeben ist, erfolgt fallweise das Löschen von fehlenden Beobachtungen. Wenn use = "pairwise.complete.obs" angegeben ist, werden nur die vollständigen Beobachtungspaare verwendet. Dies kann zu einer ungültigen Korrelationsmatrix führen.

Verwandte Themen