Hierarchisches Clustering mit gemischten Datentypen - Welche Entfernung / Ähnlichkeit ist zu verwenden?

34

In meinem Datensatz haben wir sowohl kontinuierliche als auch natürlich diskrete Variablen. Ich möchte wissen, ob wir hierarchisches Clustering mit beiden Variablentypen durchführen können. Und wenn ja, welches Entfernungsmaß ist angemessen?

Beta
quelle
Welche Software verwenden Sie?
Rolando2
@ rolando2: Ich benutze R (hclus-Paket).
Beta
1
Gibt es einen Grund für die Verwendung von hierarchischem Clustering?
Suncoolsu
N / a. Ich stelle diese Frage nur wegen meines Wissens. Können wir hierarchisch vorgehen, wenn wir einen gemischten Datentyp haben? Wenn ja, warum dann? Wenn nein, warum?
Beta
@ user4278 Nun, was ist dein Ziel in Ordnung ? Suchen Sie nach Clustern (von Individuen)?
Chl

Antworten:

45

Eine Möglichkeit besteht darin, den Gower-Ähnlichkeitskoeffizienten zu verwenden, der ein zusammengesetztes Maß 1 ist1 . Es werden quantitative (z. B. Bewertungsskala), binäre (z. B. vorhanden / nicht vorhanden) und nominale (z. B. Arbeiter / Lehrer / Angestellter) Variablen verwendet. Später fügte Podani 2 eine Option hinzu, um auch ordinale Variablen aufzunehmen.2

Der Koeffizient ist auch ohne Formel leicht zu verstehen; Sie berechnen den Ähnlichkeitswert zwischen den Individuen für jede Variable unter Berücksichtigung des Variablentyps und mitteln dann über alle Variablen. In der Regel können Sie mit einem Programm, das Gower berechnet, Variablen wiegen, dh ihren Beitrag zur zusammengesetzten Formel. Die richtige Gewichtung von Variablen unterschiedlichen Typs ist jedoch ein Problem , es gibt keine eindeutigen Richtlinien, die Gower oder andere "zusammengesetzte" Indikatoren für die Annäherung an sich ziehen lassen.

Die Facetten der Gower-Ähnlichkeit (GS ):

  • Wenn alle Variablen quantitativ (Intervall) sind, ist der Koeffizient die in Ähnlichkeit umgerechnete entfernungsnormalisierte Manhattan-Entfernung . Aufgrund der Normalisierung können Variablen verschiedener Einheiten sicher verwendet werden. Sie sollten jedoch Ausreißer nicht vergessen. (Sie können sich auch für eine Normalisierung mit einem anderen Maß für die Streuung als dem Bereich entscheiden.) Aufgrund der Normalisierung mit einer Statistik, z. B. dem Bereich, der für die Zusammensetzung von Personen im Datensatz relevant ist, kann die Ähnlichkeit zwischen zwei Personen den Wert ändern wenn Sie andere Personen in den Daten entfernen oder hinzufügen.
  • Wenn alle Variablen ordinal sind, werden sie zuerst eingestuft, und dann wird Manhattan wie oben mit quantitativen Variablen berechnet, jedoch mit der speziellen Anpassung für Bindungen.
  • Wenn alle Variablen binär sind (mit einer asymmetrischen Bedeutung der Kategorien: "Vorhanden" vs "Abwesend" -Attribut), ist der Koeffizient der Jaccard- Übereinstimmungskoeffizient (dieser Koeffizient wird behandelt, wenn beiden Personen das Attribut weder als Übereinstimmung noch als Nichtübereinstimmung fehlt).
  • Wenn alle Variablen nominal sind (auch hier dichotomous mit symmetrischer Bedeutung wie: „dieses“ vs „ dass“) , dann ist der Koeffizient die Dice Anpassungskoeffizient , dass Sie von Ihrem nominalen Variablen erhalten , wenn sie recode in Dummy - Variablen (siehe diese Antwort für weitere Informationen ) .

(Es ist einfach, die Liste der Typen zu erweitern. Sie können beispielsweise einen Summanden für Zählvariablen hinzufügen, indem Sie den normalisierten Chi-Quadrat-Abstand in Ähnlichkeit umwandeln.)

Der Koeffizient liegt zwischen 0 und 1.

1GS1GS1GS1GS

Mit euklidischen Entfernungen (Entfernungen, die den euklidischen Raum unterstützen) ist praktisch jede klassische Clustering-Technik geeignet. Einschließlich der K- Mittelwerte (sofern Ihr K-Mittelwert-Programm Entfernungsmatrizen verarbeiten kann) und einschließlich der Ward-Methoden zur hierarchischen Clusterbildung mit Schwerpunkt und Median . Die Verwendung von K-Mitteln oder anderen Methoden, die auf der euklidischen Distanz mit der nicht-euklidischen metrischen Distanz basieren , ist möglicherweise heuristisch zulässig. Bei nichtmetrischen Entfernungen dürfen keine derartigen Methoden angewendet werden.

Der vorige Absatz befasst sich mit der Frage, ob die K-Mittelwerte oder die Ward-Werte oder eine solche Gruppierung für den Gower-Abstand mathematisch (geometrisch) zulässig sind oder nicht . Unter dem Gesichtspunkt der Messskala ("psychometrisch") sollte man in kategorialen (nominalen, binären sowie ordinalen) Daten keine mittlere oder euklidische Distanzabweichung davon berechnen. Aus diesem Grund können Sie den Gower-Koeffizienten nicht mit K-Mitteln, Ward usw. verarbeiten. Dieser Standpunkt warnt davor, dass ein euklidischer Raum granuliert und nicht glatt sein kann ( siehe verwandte ).


1

2

ttnphns
quelle
Vielen Dank, ttnphns! Können Sie mir bitte sagen, ob "Gower-Ähnlichkeitskoeffizient" im hclus-Paket in R integriert ist? Gibt es ein Paket in R, das diese Funktionalität hat.
Beta
Ich bin kein R-Benutzer, also weiß ich es nicht und glaube nicht, dass du es in hclus finden wirst. Aber wenn Sie Google "Gower Similarity R" verwenden, werden Sie sicher das finden, was Sie brauchen!
TTNPHNS
user4278, Nur für den Fall, dass Sie SPSS nicht meiden, habe ich auf meiner Webseite ein Makro für Gower-Ähnlichkeit. Es akzeptiert Gewichtung und fehlende Daten.
TTNPHNS
@ user4278 Über R speziell, starte
chl
@ttnphns: Danke dir! Ich habe Ihre Website besucht und es ist eine großartige Ressource für SPSS. Leider verwende ich SPSS nicht zu oft. Aber ich werde es sicher benutzen, wenn ich in R nichts bekomme. @ Chl: Danke! Aber es ist eine riesige Liste. Ich habe irgendwo gelesen, dass Daisy im Cluster-Paket eine Funktionalität von Gower-Ähnlichkeit hat.
Beta
15

Wenn Sie über diese Frage gestolpert sind und sich fragen, welches Paket für die Verwendung der Gower-Metrik in R heruntergeladen werden soll , verfügt das clusterPaket über eine Funktion namens daisy () , die standardmäßig die Gower-Metrik verwendet, wenn gemischte Variablentypen verwendet werden. Sie können es auch manuell so einstellen, dass die Gower-Metrik verwendet wird.

daisy(x, metric = c("euclidean", "manhattan", "gower"),
      stand = FALSE, type = list(), weights = rep.int(1, p))
Zhubarb
quelle
4
Weiter zu Zhubarbs Antwort , wenn Sie die Gower-Abstände zwischen allen Paaren von zwei Datensätzen wollen, dann sehen Sie das R-Paket StatMatch.
James Hirschorn