Kann es bei kategorialen Daten Cluster geben, ohne dass die Variablen in Beziehung stehen?


19

Beim Versuch, Clusteranalysen zu erklären, wird der Prozess häufig falsch verstanden, da er damit zusammenhängt, ob die Variablen korreliert sind. Ein Weg, um die Leute an dieser Verwirrung vorbei zu bringen, ist eine Handlung wie diese:

Bildbeschreibung hier eingeben

Dies zeigt deutlich den Unterschied zwischen der Frage, ob es Cluster gibt, und der Frage, ob die Variablen zusammenhängen. Dies zeigt jedoch nur die Unterscheidung für kontinuierliche Daten. Ich habe Probleme, mir ein Analog mit kategorialen Daten vorzustellen:

ID  property.A  property.B
1   yes         yes
2   yes         yes
3   yes         yes
4   yes         yes
5   no          no
6   no          no
7   no          no
8   no          no

Wir können sehen, dass es zwei klare Cluster gibt: Menschen mit sowohl Eigenschaft A als auch B und solche mit keiner von beiden. Wenn wir uns jedoch die Variablen ansehen (z. B. mit einem Chi-Quadrat-Test), sind sie klar miteinander verbunden:

tab
#      B
# A     yes no
#   yes   4  0
#   no    0  4
chisq.test(tab)
# X-squared = 4.5, df = 1, p-value = 0.03389

Ich finde, ich bin nicht in der Lage, ein Beispiel mit kategorialen Daten zu konstruieren, das dem Beispiel mit kontinuierlichen Daten oben entspricht. Ist es überhaupt möglich, Cluster in rein kategorialen Daten zu haben, ohne dass auch die Variablen in Beziehung stehen? Was ist, wenn die Variablen mehr als zwei Ebenen haben oder wenn Sie eine größere Anzahl von Variablen haben? Wenn das Clustering von Beobachtungen notwendigerweise Beziehungen zwischen den Variablen und umgekehrt beinhaltet, bedeutet das dann, dass das Clustering nicht wirklich sinnvoll ist, wenn Sie nur kategoriale Daten haben (dh sollten Sie stattdessen nur die Variablen analysieren)?


Update: Ich habe viel von der ursprünglichen Frage ausgeschlossen, weil ich mich nur auf die Idee konzentrieren wollte, ein einfaches Beispiel zu erstellen, das selbst für jemanden, der mit Clusteranalysen größtenteils nicht vertraut ist, sofort intuitiv ist. Ich erkenne jedoch, dass eine Menge Clustering von der Auswahl von Entfernungen und Algorithmen usw. abhängt. Es kann hilfreich sein, wenn ich mehr spezifiziere.

Ich erkenne, dass die Korrelation von Pearson wirklich nur für kontinuierliche Daten geeignet ist. Für die kategorialen Daten könnten wir uns einen Chi-Quadrat-Test (für eine Zweiwege-Kontingenztabelle) oder ein logarithmisches lineares Modell (für Mehrwege-Kontingenztabellen) als eine Möglichkeit vorstellen, die Unabhängigkeit der kategorialen Variablen zu bewerten.

Für einen Algorithmus könnten wir uns die Verwendung von k-Medoiden / PAM vorstellen, die sowohl auf die kontinuierliche Situation als auch auf die kategorialen Daten angewendet werden können. (Beachten Sie, dass ein Teil der Absicht hinter dem kontinuierlichen Beispiel ist, dass jeder vernünftige Clustering-Algorithmus in der Lage sein sollte, diese Cluster zu erkennen, und wenn nicht, sollte es möglich sein, ein extremeres Beispiel zu konstruieren.)

In Bezug auf die Vorstellung von Distanz. Ich habe für das kontinuierliche Beispiel Euklidisch angenommen, weil es für einen naiven Betrachter am grundlegendsten wäre. Ich nehme an, die Entfernung, die für kategoriale Daten analog ist (da sie am unmittelbarsten intuitiv ist), wäre eine einfache Übereinstimmung. Ich bin jedoch offen für Diskussionen über andere Entfernungen, wenn dies zu einer Lösung oder nur einer interessanten Diskussion führt.


2
Ich frage mich , ob wir so etwas wie Cluster in kategorischen Daten überhaupt . Es ist nicht so, dass die Varianz zwischen Clustern größer ist als innerhalb von Clustern oder von einem Dichteunterschied zwischen Clustern sprechen kann. Wenn also häufig Übereinstimmungen gefunden werden, müssen Variablen in Beziehung gesetzt werden, damit sich Cluster bilden.
Anony-Mousse

@ Anony-Mousse, das ist interessant. Warum nicht daraus eine Antwort machen? Übrigens kann ich tatsächlich existierende Cluster abbilden (z. B. in latenten stetigen Variablen, die unterschiedliche Wahrscheinlichkeiten für verschiedene Ebenen von nominalen Variablen hervorrufen), aber ich vermute, das ist nicht das, was Sie gemeint haben.
gung - Reinstate Monica

Sie können eine kategoriale Verteilung in einen Vektor umwandeln, dessen Komponenten die normalisierten Häufigkeiten sind. Dann kann die euklidische Metrik angewendet werden. Dies ist jedoch nicht die einzige Option: math.umn.edu/~garrett/m/fun/notes_2012-13/02_spaces_fcns.pdf und en.m.wikipedia.org/wiki/Normed_vector_space

@ttnphns, Sie scheinen das [data-association]Tag hinzugefügt zu haben . Ich bin mir nicht sicher, was es anzeigen soll und es hat keinen Auszug / Gebrauchsanweisung. Brauchen wir diesen Tag wirklich? Is scheint ein guter Kandidat zum Löschen zu sein. Wenn wir es im Lebenslauf wirklich brauchen und Sie wissen, was es sein soll, können Sie wenigstens einen Auszug hinzufügen?
gung - Wiedereinsetzung von Monica

@gung Ich verstehe auch nicht ganz, worauf sich dieser Tag beziehen könnte. Ich habe es wegen des Themas "Assoziation / Korrelation zwischen Attributen" der Frage hinzugefügt. Es steht Ihnen frei, das Tag aus dem Q oder insgesamt zu löschen. Andererseits ist es an der Zeit (denke ich), über unsere Tags nachzudenken, die das gesamte Korrelations- / Assoziationsfeld abdecken. Soll beispielsweise "Korrelation" nur für die Pearson-Korrelation beibehalten werden? Sollten wir ein neues Tag "variables-association" (anstelle von "data-association") erstellen?
TTNPHNS

Antworten:


11

Betrachten Sie den Clear-Cluster-Fall mit nicht korrelierten Skalierungsvariablen, z. B. das Bild oben rechts in der Frage. Und kategorisieren Sie seine Daten.

Bildbeschreibung hier eingeben

Wir haben den Skalierungsbereich der beiden Variablen X und Y in drei Klassen unterteilt, die wir ab jetzt als kategoriale Beschriftungen behandeln. Darüber hinaus werden sie als nominal und nicht als ordinal deklariert, da es sich bei der gestellten Frage implizit und hauptsächlich um qualitative Daten handelt. Die Größe der Spots ist die Frequenz in einer Frequenzkreuztabellenzelle. Alle Fälle in derselben Zelle werden als identisch angesehen.

Intuitiv und am allgemeinsten werden "Cluster" als Gruppen von Datenpunkten definiert, die durch dünn besetzte Bereiche im "Datenraum" getrennt sind. Es handelte sich zunächst um Skalendaten und es bleibt der gleiche Eindruck bei der Kreuztabelle der kategorisierten Daten. X und Y sind jetzt kategorisch, aber sie sehen immer noch unkorreliert aus: Die Chi-Quadrat-Assoziation ist sehr nahe bei Null. Und Cluster sind da.

Aber denken Sie daran, wir haben es mit nominalen Kategorien zu tun, deren Reihenfolge in der Tabelle willkürlich ist. Wir können ganze Zeilen und / oder Spalten nach Belieben neu anordnen, ohne den beobachteten Chi-Quadrat-Wert zu beeinflussen. Nachbestellen ...

Bildbeschreibung hier eingeben

... um diesen Clustern zu begegnen, die gerade verschwunden sind. Die vier Zellen a1, a3, c1 und c3 könnten zu einem einzigen Cluster zusammengefasst werden. Also nein, wir wirklich nicht irgendwelche Cluster in den kategorischen Daten.

Fälle von Zellen a1 und c3 (oder auch von a3 und c1) sind völlig verschieden: Sie haben nicht die gleichen Eigenschaften. Um Cluster in unseren Daten zu induzieren - a1 und c3, um die Cluster zu bilden - müssen wir die Zellen a3 und c1 zum großen Teil leeren, indem wir diese Fälle aus dem Datensatz entfernen.

Bildbeschreibung hier eingeben

Nun existieren Cluster. Gleichzeitig haben wir die Unkorrelation verloren. Die diagonale Struktur in der Tabelle zeigt an, dass die Chi-Stare-Statistik weit von Null entfernt ist.

Das Mitleid. Versuchen wir, die Unkorrelation und mehr oder weniger klare Cluster gleichzeitig zu bewahren. Wir können beispielsweise entscheiden, nur die Zelle a3 ausreichend zu leeren und dann a1 + c1 als Cluster zu betrachten, der sich dem Cluster c3 widersetzt:

Bildbeschreibung hier eingeben

Diese Operation brachte Chi-Quadrat nicht weit von Null ...

[Indeed, table such as for example
 6   6   1
 6   6   1
 1   1   0
retains about the same very low chi-square association after
dividing 2nd column by 3 and multiplying 2nd row by 3, which gives
 6   2   1
18   6   3
 1  1/3  0
Cell (1,2) got thrice lower frequency. We had, however, to upheave
cell (2,1) frequency thrice, to keep Chi-sq almost as before.]

... aber die Situation mit Clustern ist verwirrt. Cluster a1 + c1 enthält Fälle, die teils identisch, teils halb unähnlich sind. Die Tatsache, dass ein Cluster relativ homogen ist, ist selbst kein Ausschluss für eine klare Clusterstruktur in einem Datensatz. Das Problem mit unseren kategorialen Daten ist jedoch, dass Cluster a1 + c1 in keiner Weise besser ist als Cluster c1 + c3, sein symmetrisches Analogon. Das bedeutet, dass die Cluster-Lösung instabil ist - dies hängt von der Reihenfolge der Fälle im Datensatz ab. Eine instabile Lösung, auch wenn sie relativ "übersichtlich" ist, ist eine schlechte und unzuverlässige Lösung.

Die einzige Möglichkeit, das Problem zu lösen und eine klare und stabile Lösung zu finden, besteht darin, die Zelle c3 von der Zelle c1 zu lösen, indem die Daten darunter in die Zelle b3 (oder nach b2) verschoben werden.

Bildbeschreibung hier eingeben

Wir haben also klare Cluster a1 + c1 vs b3. Aber sieh mal, hier taucht wieder das diagonale Muster auf - und das Chi-Quadrat des Tisches springt hoch über Null.

Fazit . Es ist unmöglich, zwei nicht Chi-Quadrat-assoziierte Nominalvariablen und gute Cluster der Datenfälle gleichzeitig zu haben. Klare und stabile Cluster implizieren eine variable Assoziation.

Es ist auch klar, dass es Cluster geben muss, wenn die Assoziation vorhanden ist - dh ein diagonales Muster existiert oder durch Umordnen erreichbar ist. Dies liegt daran, dass die Art der kategorialen Daten ("alles oder nichts") Halbtöne und Grenzbedingungen nicht zulässt. Daher kann ein Bild wie links unten in der Frage des OP nicht mit kategorialen nominalen Daten erstellt werden.

Ich vermute , dass wir mehr und mehr nominale Variablen (statt nur zwei), die erhalten bivariant Chi-Quadrat in keinem Zusammenhang, wir kommen näher an die Möglichkeit , Cluster zu haben. Ich gehe jedoch davon aus, dass ein multivariates Chi-Quadrat von Null immer noch nicht mit Clustern kompatibel ist. Das muss noch gezeigt werden (nicht von mir oder diesmal nicht).


Zum Schluss noch eine Bemerkung zur Antwort von @ Bey (aka user75138), die ich teilweise unterstützt habe. Ich habe es mit meiner Zustimmung kommentiert, dass man sich zuerst für die Entfernungsmetrik und das Assoziationsmaß entscheiden muss, bevor er die Frage stellen kann, ob eine variable Assoziation unabhängig von Fallgruppen ist. Dies liegt daran, dass weder ein universelles Assoziationsmaß noch eine universelle statistische Definition von Clustern existiert. Ich möchte noch hinzufügen, dass er sich auch für die Clustering-Technik entscheiden muss. Verschiedene Clustering-Methoden definieren unterschiedlich, nach welchen "Clustern" sie suchen. Die ganze Aussage könnte also wahr sein.

Die Schwäche eines solchen Diktums ist jedoch, dass es zu weit gefasst ist. Es sollte konkret versucht werden, zu zeigen, ob und wo eine Auswahl in Bezug auf Entfernungsmetrik / Assoziationsmaß / Cluster-Methode Spielraum für die Abstimmung von Unkorreliertheit mit Clustertätigkeit für nominelle Daten eröffnet. Er würde insbesondere bedenken, dass nicht alle der vielen Proximity-Koeffizienten für Binärdaten mit Nenndaten sinnvoll sind, da für Nenndaten "beiden Fällen dieses Attribut fehlt" niemals der Grund für ihre Ähnlichkeit sein kann.


Update , Berichterstattung über meine Simulationsergebnisse.

.1

r

Die Ergebnisse stützen im Allgemeinen die oben in der Antwort angegebenen Überlegungen. Es gab nie sehr klare Cluster (wie sie auftreten könnten, wenn die Chi-Quadrat-Assoziation stark ist). Und die Ergebnisse der verschiedenen Cluster-Kriterien widersprachen sich oft (was nicht sehr wahrscheinlich ist, wenn die Cluster wirklich klar sind).

Manchmal bietet hierarchisches Clustering eine ziemlich gute k-Cluster-Lösung, die über ein Clustering-Kriterium dargestellt wird. Wenn Sie es jedoch auf Stabilität prüfen, zeigt sich, dass es nicht stabil ist. Zum Beispiel diese 3-Variablen- 4x4x3Daten

   V1  V2  V3   Count
    1   1   1   21
            2   24
            3   1
        2   1   22
            2   26
            3   1
        3   1   1
            2   1
            3   1
        4   1   17
            2   20
            3   1
    2   1   1   10
            2   12
            3   1
        2   1   10
            2   12
            3   1
        3   1   1
            2   1
            3   1
        4   1   8
            2   9
            3   1
    3   1   1   24
            2   28
            3   1
        2   1   25
            2   30
            3   1
        3   1   1
            2   1
            3   1
        4   1   19
            2   23
            3   1
    4   1   1   24
            2   28
            3   1
        2   1   26
            2   30
            3   1
        3   1   1
            2   1
            3   1
        4   1   19
            2   23
            3   1

Wenn die Würfelähnlichkeit nach der vollständigen Verknüpfungsmethode geclustert wird, scheint sie - vernünftigerweise - in 9 Gruppen aufgeteilt zu sein - in diesem Fall in Übereinstimmung mit den drei internen Gültigkeitsrichtern:

Bildbeschreibung hier eingeben

Die Lösung ist jedoch nicht stabil, wie aus der unvollständigen Sparsamkeit der Verwirrungsmatrix der ursprünglichen Lösung gegenüber der permutierten (von Fall zu Fall geordneten) Lösung hervorgeht:

Bildbeschreibung hier eingeben

Wenn die Lösung stabil gewesen wäre (wie es wahrscheinlich wäre, wenn wir kontinuierliche Daten hätten), hätten wir die 9-Cluster-Lösung als ausreichend überzeugend gewählt.

Clustering basierend auf der Entfernung der logarithmischen Wahrscheinlichkeit (im Gegensatz zur Würfelähnlichkeit) kann zu stabilen und "nicht schlechten" (intern durchaus gültigen) Lösungen führen. Dies liegt jedoch daran, dass die Entfernung, zumindest wie im TwoStep-Cluster von SPSS, hochbevölkerte Cluster fördert und fördert und niedrigbevölkerte vernachlässigt. Es ist nicht erforderlich, dass Cluster mit einer sehr geringen Frequenz im Inneren dicht sind (dies scheint die "Richtlinie" der TwoStep-Clusteranalyse zu sein, die speziell für Big Data entwickelt wurde und nur wenige Cluster enthält; daher werden kleine Cluster als Ausreißer angesehen). . Zum Beispiel diese 2-variablen Daten

Bildbeschreibung hier eingeben

würde von TwoStep wie gezeigt stabil zu 5 Clustern kombiniert, und die 5-Cluster-Lösung ist nach einigen Cluster-Kriterien überhaupt nicht schlecht. Da die vier besiedelten Cluster im Inneren sehr dicht sind (tatsächlich alle Fälle identisch) und nur ein fünfter Cluster, der nur wenige Fälle enthält, extrem entropisch ist. Anscheinend handelt es sich also tatsächlich um eine 12-Cluster-Lösung, nicht um eine 5-Cluster-Lösung, sondern um die Gesamtzahl der Zellen in der Häufigkeitstabelle, was als "Cluster-Lösung" trivial und uninteressant ist.


+1, das habe ich vermutet. Der paarweise nicht assoziierte vs multivariate nicht assoziierte ist ein interessanter Punkt. Bedeutet dies im weiteren Sinne, dass es eigentlich keinen Sinn macht, rein nominelle Daten zu gruppieren? Das heißt, sollten wir die Variablen nur immer analysieren, wenn wir keine kontinuierlichen Daten haben?
gung - Wiedereinsetzung von Monica

1
@gung, kennen Sie nicht die Maxime, dass die Korrelation zwischen Variablen die andere Seite der Polarisation der Fälle ist ("Diagolität")? Dies gilt als Maxime auch für kontinuierliche Daten. Bei kontinuierlicher Polarisation bedeutet dies jedoch möglicherweise keine Cluster. Für kategorisch scheint es, dass es impliziert. Aufgrund der diskreten Natur. Also wahrscheinlich ja, wenn kategoriale Variablen korrelieren, gibt es Cluster zu finden. Sie müssen jedoch Clustering durchführen, um die Cluster besser zu erhalten. Das ist meine vorläufige Meinung zu Ihrer großartigen Frage.
TTNPHNS

Das kenne ich nicht. Vielleicht werde ich später danach fragen. Ich denke, das sind gute Informationen, auf denen man jetzt herumkauen kann.
gung - Wiedereinsetzung von Monica

3

Wie Sie sicher wissen, ist die Korrelation ein Maß für die lineare Beziehung zwischen zwei Variablen, nicht für die Nähe der Punkte zueinander. Dies erklärt die vier wichtigsten Zahlen.

Natürlich können Sie auch ähnliche Diagramme für diskrete, realwertige Daten erstellen.

X{A,B,C,D}RXRX

Sie müssen eine Metrik für den kategorialen Raum definieren, bevor Sie überhaupt über Clustering im geometrischen Sinne sprechen können.


Ich würde diese Antwort unterstützen und sie, wenn es @gung und Bey erlauben, intuitiv umformulieren. Cluster-Daten werden durch "kleine Abstände im Cluster, aber große Abstände zwischen Clustern" definiert. Auf seinen Bildern wählte das OP implizit eine euklidische Distanz, um diese Idee der Clusterbildung zu veranschaulichen. Er wählte auch den Begriff der Pearson-Korrelation oder etwas Ähnliches - um die Idee der Assoziation zwischen Variablen zu veranschaulichen. Dies sind zwei bestimmte / willkürliche Auswahlmöglichkeiten unter vielen Alternativen.
TTNPHNS

1
(Forts.) Ich könnte mir sogar vorstellen, dass es ein solches Entfernungsmaß und ein solches Assoziationsmaß geben könnte, bei denen das Konzept der "Fallcluster" und das Konzept der "variablen Assoziationen" nicht orthogonal sind. Und nun zu kategorialen Daten. Bevor überprüft und gezeigt werden kann, ob die beiden Konzepte unabhängig voneinander sind oder in Beziehung stehen, muss ein bestimmtes Abstandsmaß für kategoriale Datenpunkte und ein bestimmtes Assoziationsmaß für kategoriale Variablen ausgewählt werden. Es gibt viele Alternativen zur Auswahl! Und die Antwort wird davon abhängen.
TTNPHNS

@ttnphns (+1) Ich finde es gut, wie Sie die beiden Hauptoptionen festgelegt haben: Entfernung und Zuordnungsmetrik. Ich bin mir nicht sicher, ob meine Erklärung nicht intuitiv war. Sie können keine Cluster ohne einen Begriff von Entfernung definieren.

@ttnphns, ich denke es liegt an Bey. Warum verwandelst du einige deiner Ideen nicht in deine eigene Antwort? Ich würde an der Idee interessiert sein, dass die "Fallcluster" und "Variablenassoziationen" für die fortlaufenden Daten bei einigen Auswahlmöglichkeiten nicht orthogonal werden. Abgesehen von & ttnphns habe ich die Frage zu Entfernungs- und Assoziierungsmaßnahmen um einige Klarstellungen ergänzt, aber Sie sollten sich frei fühlen, in eine andere Richtung zu gehen, wenn Sie dies vorziehen. Lass es mich wissen, wenn es mehr braucht. Ich bevorzuge, dass die Frage so offen wie möglich bleibt, um den Antwortenden die Flexibilität zu geben, in eine andere Richtung zu gehen.
gung - Reinstate Monica

1
@Bey, es gibt natürlich noch viele andere mögliche Entfernungs- und Assoziationsmaße für kategoriale Daten. Sie können also auch etwas Esoterisches vorschlagen, das funktioniert.
gung - Wiedereinsetzung von Monica

2

Berücksichtigen Sie die Hamming-Distanz - die Hamming-Distanz zwischen zwei Saiten gleicher Länge ist die Anzahl der Positionen, an denen sich die entsprechenden Symbole unterscheiden. Aus dieser Definition scheint es offensichtlich, dass wir Daten erzeugen können, für die wir Cluster basierend auf der Hamming-Distanz haben, aber keine Korrelationen zwischen den Variablen.

Ein Beispiel folgt mit Mathematica.

Erstellen Sie einige kategoriale Daten (3 Symbole lange Sequenzen einer einheitlichen Zufallsauswahl von 4 Zeichen):

chs = CharacterRange["a", "d"];
words = StringJoin @@@ Union[Table[RandomChoice[chs, 3], 40]];
Length[words]
words

(* 29 *)

(* {"aac", "aad", "abb", "aca", "acb", "acd", "adb", "adc", "baa", "bab", "bac", "bad", "bcc", "bcd", "caa", "cab", "cac", "cad", "cbb", "ccb", "cda", "cdb", "dab", "dba", "dbb", "dbd", "dca", "dcc", "dcd"} *)

Verwenden Sie Mosaikdiagramme für die Beziehung zwischen den Variablen (bedingte Wahrscheinlichkeiten für Wertepaare aus verschiedenen Spalten):

Import["https://raw.githubusercontent.com/antononcube/MathematicaForPrediction/master/MosaicPlot.m"]
wordSeqs = Characters /@ words;
opts = {ColorRules -> {2 -> ColorData[7, "ColorList"]}, ImageSize -> 400};
Grid[{{MosaicPlot[wordSeqs[[All, {1, 2}]], 
    "ColumnNames" -> {"column 1", "column 2"}, opts],
   MosaicPlot[wordSeqs[[All, {2, 3}]], 
    "ColumnNames" -> {"column 2", "column 3"}, opts],
   MosaicPlot[wordSeqs[[All, {1, 3}]], 
    "ColumnNames" -> {"column 1", "column 3"}, opts]}}, Dividers -> All]

Bildbeschreibung hier eingeben

Wir können sehen, dass es keine Korrelation gibt.

Cluster finden:

cls = FindClusters[words, 3, DistanceFunction -> HammingDistance]

(* {{"aac", "aad", "adc", "bac"}, {"abb", "acb", "adb", "baa", "bab", "bad", 
  "caa", "cab", "cac", "cad", "cbb", "ccb", "cda", "cdb", "dab", 
  "dbb"}, {"aca", "acd", "bcc", "bcd", "dba", "dbd", "dca", "dcc", "dcd"}} *)

Wenn wir jedes Zeichen durch eine ganze Zahl ersetzen, können wir aus dieser Darstellung ersehen, wie die Cluster mit Hamming-Abstand gebildet werden:

esrules = Thread[chs -> Range[Length[chs]]]; gr1 = 
 ListPointPlot3D[Characters[cls] /. esrules, 
  PlotStyle -> {PointSize[0.02]}, PlotLegends -> Automatic, 
  FaceGrids -> {Bottom, Left, Back}];
gr2 = Graphics3D[
   Map[Text[#, Characters[#] /. esrules, {1, 1}] &, Flatten[cls]]];
Show[gr1, gr2]

Bildbeschreibung hier eingeben

Weiteres Clustering

Lassen Sie uns ein Diagramm erstellen, indem wir die Wörter verbinden, für die der Hamming-Abstand 1 beträgt:

mat = Clip[Outer[HammingDistance, words, words], {0, 1}, {0, 0}];
nngr = AdjacencyGraph[mat, 
  VertexLabels -> Thread[Range[Length[words]] -> words]]

Bildbeschreibung hier eingeben

Lassen Sie uns nun die Community-Cluster finden:

CommunityGraphPlot[nngr]

Bildbeschreibung hier eingeben

Vergleichen Sie die Graphencluster mit denen, die mit FindClusters(die gezwungen wurden, 3 zu finden) gefunden wurden. Wir können sehen, dass "bac" sehr zentral ist und "aad" zu dem grünen Cluster gehören kann, der Cluster 1 in der 3D-Darstellung entspricht.

Diagrammdaten

Hier ist die Kantenliste von nngr:

{1 <-> 2, 1 <-> 8, 1 <-> 11, 1 <-> 17, 2 <-> 6, 2 <-> 12, 2 <-> 18, 
 3 <-> 5, 3 <-> 7, 3 <-> 19, 3 <-> 25, 4 <-> 5, 4 <-> 6, 4 <-> 27, 
 5 <-> 6, 5 <-> 7, 5 <-> 20, 6 <-> 14, 6 <-> 29, 7 <-> 8, 7 <-> 22, 
 9 <-> 10, 9 <-> 11, 9 <-> 12, 9 <-> 15, 10 <-> 11, 10 <-> 12, 
 10 <-> 16, 10 <-> 23, 11 <-> 12, 11 <-> 13, 11 <-> 17, 12 <-> 14, 
 12 <-> 18, 13 <-> 14, 13 <-> 28, 14 <-> 29, 15 <-> 16, 15 <-> 17, 
 15 <-> 18, 15 <-> 21, 16 <-> 17, 16 <-> 18, 16 <-> 19, 16 <-> 20, 
 16 <-> 22, 16 <-> 23, 17 <-> 18, 19 <-> 20, 19 <-> 22, 19 <-> 25, 
 20 <-> 22, 21 <-> 22, 23 <-> 25, 24 <-> 25, 24 <-> 26, 24 <-> 27, 
 25 <-> 26, 26 <-> 29, 27 <-> 28, 27 <-> 29, 28 <-> 29}

Willkommen auf der Seite! Nur ein paar Bemerkungen: Welche Sprache ist der Code? (was übrigens nicht kommentiert ist). Wie definierst du relationship between the variables (correlation)?
TTNPHNS

Das ist interessant. Leider kenne ich Mathematica nicht (und kenne mich weniger mit Bearbeitungsentfernungen aus), daher muss ich damit spielen, um sicherzugehen, dass ich es verstehe. Ich hatte noch keine Chance, aber ich habe vor, bald.
gung - Reinstate Monica

@gung Ich habe darüber nachgedacht, dies in R zu tun, aber ich dachte, dass der entscheidende Teil die 3D-Darstellung ist und dass sie in den richtigen Winkeln gedreht wird, um einen Einblick in die Clusterbildung zu erhalten. Gute Frage übrigens!
Anton Antonov

Sie haben hier also "Cluster". Aber sind sie sinnvoll? Sind sie besser als andere Cluster? Aus der Handlung würde ich sagen, dass Cluster 1 ziemlich zufällig ist. Warum ist das ein Cluster?
Anony-Mousse -Reinstate Monica

1
Zufällige einheitliche (!) Generierte Daten sollten eindeutig keine Cluster aufweisen. Die "Community" -Darstellung ist irreführend, da Entfernungen nicht eingehalten werden. Die Grafik mit 1 Abstand hebt diese Probleme hervor. Es zeigt auch ein anderes Beispiel cda. Entschuldigung, ich "kaufe" diese "Cluster" nicht. Die Daten sind einheitlich, es sollen keine Cluster vorliegen.
Anony-Mousse

2

Der Punkt von @ttnphns über die paarweise vs multivariate Assoziation ist gut aufgenommen. Damit verbunden ist die alte Erkenntnis, wie wichtig es ist, die Assoziation mit einfachen Metriken zu demonstrieren, bevor man in ein multivariates Framework springt. Mit anderen Worten, wenn einfache paarweise Assoziationsmaße keine Beziehung zeigen, wird es zunehmend unwahrscheinlicher, dass auch multivariate Beziehungen irgendetwas zeigen. Ich sage "zunehmend unwahrscheinlich", weil ich das Wort "unmöglich" nicht gerne benutze. Darüber hinaus bin ich hinsichtlich der verwendeten Metrik, ob es sich um eine monotone Spearman-Korrelation für Ordnungsdaten handelt, Somer's D , Kendalls Tau , agnostischpolychrone Korrelation, Reshefs MIC, Szelkeys Distanzkorrelation, was auch immer. Die Wahl der Metrik ist in dieser Diskussion nicht wichtig.

Die ursprüngliche Arbeit, latente Strukturen in kategorialen Informationen zu finden, stammt aus den frühen 50er Jahren und von Paul Lazersfeld, dem Soziologen aus Kolumbien. Im Wesentlichen erfand er eine Klasse latenter variabler Modelle, die seitdem umfangreich weiterentwickelt und modifiziert wurden. Mit der Arbeit von James Coleman aus den 60er Jahren beschäftigte sich der Politologe der U of C mit latenten Wählerwahlen, gefolgt von den Beiträgen des verstorbenen Soziologen Clifford Clogg, dessen MELISSA-Software die erste öffentlich verfügbare Freeware für latente Klassen war.

In den 80er Jahren wurden latente Klassenmodelle durch die Entwicklung von Tools wie Latent Gold von Statistical Innovations von rein kategorialen Informationen zu Modellen mit endlichen Gemischen erweitert. Darüber hinaus entwickelte der Marketingwissenschaftler Bill Dillon ein Gauß-Programm zur Anpassung latenter diskriminanter Modelle mit endlicher Mischung. Die Literatur zu diesem Ansatz zur Anpassung von Gemischen aus kategorialen und kontinuierlichen Informationen ist eigentlich recht umfangreich. Außerhalb der Bereiche, in denen es am weitesten verbreitet ist, z. B. in der Marketingwissenschaft, in denen diese Modelle für die Segmentierung und Clusterbildung von Verbrauchern verwendet werden, ist es nicht so bekannt.

Diese endlichen Mischungsmodellansätze für latente Clusterbildung und Kontingenztabellenanalyse gelten jedoch in der heutigen Welt der massiven Daten als alte Schule. Der Stand der Technik beim Auffinden von Assoziationen zwischen einer Vielzahl von Kontingenztabellen sind die Zerlegungen, die durch den Einsatz von Tensormodellen, wie sie von David Dunson und anderen Bayesianern bei Duke entwickelt wurden, möglich sind. Hier ist das Abstract aus einem ihrer Artikel sowie ein Link:

Die Kontingenztabellenanalyse stützt sich routinemäßig auf logarithmische lineare Modelle, wobei die Analyse der latenten Struktur eine häufige Alternative darstellt. Latentstrukturmodelle führen zu einer Tensorfaktorisierung mit niedrigem Rang der Wahrscheinlichkeitsmassenfunktion für multivariate kategoriale Daten, während logarithmische lineare Modelle eine Dimensionsreduktion durch Sparsity erzielen. Über die Beziehung zwischen diesen Begriffen der Dimensionsreduktion in den beiden Paradigmen ist wenig bekannt. Wir leiten verschiedene Ergebnisse ab, die die Unterstützung eines logarithmischen linearen Modells mit dem nichtnegativen Rang des zugehörigen Wahrscheinlichkeitstensors in Verbindung bringen. Ausgehend von diesen Erkenntnissen schlagen wir eine neue kollabierte Tucker-Klasse von Tensorzerlegungen vor, die bestehende PARAFAC- und Tucker-Zerlegungen überbrückt und einen flexibleren Rahmen für die sparsame Charakterisierung multivariater kategorialer Daten bietet.

https://arxiv.org/pdf/1404.0396.pdf


Das sind interessante Informationen. Mir ist nicht so klar, wie es mit der Frage zusammenhängt.
gung - Reinstate Monica

gung Angesichts der weitreichenden Diskussion und der grundsätzlichen Fragen, ob es "überhaupt" Cluster kategorialer Daten gibt, ist Ihre Unklarheit über die Relevanz meines Beitrags rätselhaft. Meiner Ansicht nach beleuchten die bereitgestellten Informationen Bereiche der Methodik und Wissensentdeckung, die zuvor ignoriert wurden. Ich möchte auch auf meine erste Bemerkung hinweisen, die ausdrücklich an die Frage der OP gerichtet ist, dass der Sprung von einer paarweisen zu einer multivariaten Assoziation höchst unwahrscheinlich ist, wenn auf der einfacheren Ebene keine Assoziation besteht.
Mike Hunter

Ich habe keine Beleidigung gemeint, @DJohnson. Ich kenne (etwas) bekannte latente Modelle zum Clustering kategorialer Daten (dh latente Klassenanalyse). Ich habe in meinem obigen Kommentar darauf hingewiesen . Ich war nicht so vertraut mit der Geschichte, den Forschern und der Software. Das ist interessant. Ich verstehe nicht ganz, wie es die Frage beantwortet, ob es in nominalen Daten nachweisbare Cluster geben kann, bei denen die Variablen keine Assoziation aufweisen. Wenn es das ist, worauf du hinaus willst, wäre ein Beispiel hilfreich. Können Sie eine zur Verfügung stellen?
gung - Reinstate Monica

@gung Natürlich nicht und keiner genommen.
Mike Hunter
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.