Anfang des Jahres schickte mir mein Vorgesetzter einen sehr interessanten Beitrag von Data Colada, einem Blogbeitrag von drei Verhaltensforschern, der veröffentlichte Forschungsergebnisse untersucht. Die Autoren von Data Colada arbeiteten mit einem Team anonymer Forscher zusammen und fanden einige merkwürdige Anomalien in einem Datensatz zur Kilometerleistung von Autos, der in einer Arbeit aus dem Jahr 2012 verwendet wurde. Ich bin für das Testen der Explore Patterns- Plattform in JMP verantwortlich, mit der ungewöhnliche oder unerwartete Muster in Daten identifiziert werden können. In diesem Beitrag verwende ich Explore Patterns zusammen mit anderen nützlichen Tools in JMP, um nach unerwarteten oder ungewöhnlichen Mustern in den Kilometerdaten des Autos zu suchen.
Hintergrund
Die ersten paar Zeilen und Spalten des Pkw-Kilometerdatensatzes werden unten angezeigt. Diese Daten stammen aus einer Studie, in der 13.488 Kunden einer bestimmten Kfz-Versicherungsagentur gebeten wurden, ihre aktuellen Kilometerstände anzugeben. Die von den Kunden gemeldeten Messwerte sind in den Daten als Spalten „update_car1“ bis „update_car4“ enthalten, da jeder Kunde Informationen für bis zu vier Autos gemeldet hat. Die Daten enthalten auch die Kilometerstände jedes Fahrzeugs zum Zeitpunkt der Erstausstellung der Versicherungspolicen. Diese Spalten heißen baseline_car1 bis baseline_car4. Da nicht alle Policen gleichzeitig ausgestellt wurden, variiert die Zeit, die von der Basislinie bis zur Aktualisierung vergeht, für die Beobachtungen in dieser Studie.

Im Data Colada-Beitrag stellten die Forscher vier Anomalien vor, die in diesem Datensatz gefunden wurden. Lassen Sie uns jeden dieser Erkenntnisse mithilfe von JMP untersuchen.
Anomalie Nr. 1: Die Verteilung der gefahrenen Meilen ist gleichmäßig
Die Autoren von Data Colada stellten fest, dass die Verteilung der gefahrenen Meilen mit einer gleichmäßigen Verteilung im Bereich von 0 bis 50.000 Meilen übereinstimmte.
Da die Daten eine Basislinie und eine Aktualisierungsspalte für die Kilometerstände jedes Autos enthalten, erstellen wir Formelspalten zum Speichern der gefahrenen Meilen, indem wir die Basiswerte von den aktualisierten Werten subtrahieren. In JMP verwenden wir dann die Verteilungsplattform, um die Verteilung für die Basis- und Aktualisierungswerte sowie die insgesamt gefahrenen Meilen für jedes Auto anzuzeigen. Betrachten Sie den Verteilungsbericht des ersten Autos für jeden Kunden.

Die Form der Verteilung des Basiskilometerstands ähnelt der Verteilung des aktualisierten Kilometerstands, wobei der mittlere Kilometerstand zum Zeitpunkt der Aktualisierung etwa 26.000 Meilen höher war. Dieser Befund ist an sich nicht überraschend. Was ich an den Basis- und Aktualisierungswerten am interessantesten finde, ist, dass zwei Teilnehmer Fahrzeuge besaßen, die fast 1 Million Meilen gefahren wurden! Sie müssen über eine sehr gute Mechanik verfügen.
Der alarmierendste Teil des Berichts ist die dritte Verteilung oben, die den Unterschied zwischen den ersten beiden zeigt. Die Verteilung der gefahrenen Meilen zwischen der Basislinie und den Aktualisierungszeiten scheint gleichmäßig zwischen 0 und 50.000 Meilen verteilt zu sein. Es gibt keine Werte über 50.000 Meilen und jeder Abschnitt des Histogramms enthält ungefähr die gleiche Anzahl an Teilnehmern. Eine visuelle Inspektion liefert in diesem Fall einen sicheren Beweis dafür, dass die Daten gleichmäßig verteilt sind. Für Daten, die nicht so offensichtlich sind, können Sie jedoch mithilfe der Option „Fit Beta“ in der Distributionsplattform einen Test auf Güte der Anpassung durchführen .
Der Screenshot unten zeigt die Verteilung der gefahrenen Meilen (Update – Basislinie) für jedes der Teilnehmerautos. Wir stellen fest, dass jede Verteilung auch für das zweite, dritte und vierte Auto gleichmäßig zwischen 0 und 50.000 verteilt erscheint. Basierend auf diesem Verteilungsmuster können wir schließen, dass die aktualisierten Kilometerwerte durch Hinzufügen gleichmäßig verteilter Zufallswerte zu den Basis-Kilometerwerten hätten generiert werden können.

Anomalie Nr. 2: Der Basiskilometerstand wurde gerundet, bei den aktualisierten Kilometerständen jedoch nicht
Die Autoren von Data Colada stellten fest, dass der Basiskilometerstand viele auf Tausender gerundete Werte aufwies, während der aktualisierte Kilometerstand diese Rundung nicht enthielt.
Die Forscher von Data Colada untersuchten das Runden, indem sie sich die letzten drei Ziffern der Kilometerangaben ansahen. Wir könnten JSL verwenden, um einen ähnlichen Ansatz zu verfolgen, aber verwenden wir stattdessen Explore Patterns! Wenn Sie Explore Patterns noch nie verwendet haben, können Sie es finden, indem Sie Analysieren > Screening auswählen.

Nachdem wir Explore Patterns gestartet haben, um jede Baseline- und Update-Spalte zu erkunden, erhalten wir die im folgenden Screenshot gezeigte Ausgabe. Wählen Sie im Bericht „Univariate Muster“ die Basislinie und die Aktualisierungswerte für das erste Auto aus, um die Muster zu vergleichen.

Standardmäßig enthält Explore Patterns die Berichte für die am häufigsten duplizierten Werte in jeder Spalte, die längsten Läufe in jeder Spalte und die längsten Duplikatsequenzen in jeder Spalte. Für das erste Auto, das den Teilnehmern gehört, ist aus den Berichten „Longest Runs“ oder „Longest Duplicate Sequences“ nicht viel zu gewinnen. Der Bericht „Most Duplicated Values“ zeigt jedoch einen interessanten Kontrast. Bei den Basisfahrleistungen für das erste eigene Auto gibt es viele Werte, die scheinbar auf die nächsten 10.000 gerundet sind. Dabei handelt es sich nicht unbedingt um ein unerwartetes Muster; Wenn ich nach dem Kilometerstand meines Fahrzeugs gefragt werde, runde ich bei der Antwort immer auf.
Der Bericht „Am häufigsten duplizierte Werte“ für die aktualisierten Meilen sieht ganz anders aus. In diesem Bericht gibt es weitaus weniger Duplikate und die angezeigten Duplikate sind nicht wie die Basiswerte gerundet. Dies würde passieren, wenn die Aktualisierungsspalten durch Hinzufügen gleichmäßig verteilter Zufallswerte zu den Basiswerten generiert würden. Daher stimmt dieser Befund mit Anomalie Nr. 1 überein.
Anomalie Nr. 3 – Die Daten wurden in zwei Schriftarten eingegeben und jede Beobachtung hat einen „Zwilling“ in der anderen Schriftart
Den Forschern fiel auf, dass in der Originaldatendatei die Beobachtungen in zwei verschiedenen Schriftarten aufgezeichnet wurden. Durch eine clevere Sortierung fanden die Forscher heraus, dass jede Basisbeobachtung in einer Schriftart einer sehr ähnlichen Zeile in der anderen Schriftart entsprach.
Ich begrüße die Forscher dafür, dass sie die verschiedenen Schriftarten bemerkt und diesen Ansatz gewählt haben. Nehmen wir jedoch an, dass die Daten alle in derselben Schriftart vorliegen und dieses Warnsignal nicht angezeigt wird. Können wir JMP verwenden, um seltsame Beziehungen zwischen Zeilen und Spalten zu identifizieren? Natürlich können wir das – das ist schließlich der JMP-Blog.
Mit Explore Patterns können wir untersuchen, ob es lineare Beziehungen zwischen Spalten für zusammenhängende Zeilen gibt. Betrachten Sie das folgende einfache Beispiel. In den ersten vier Zeilen haben die Spalten eine exakte lineare Beziehung mit Y=2*X. In den nächsten drei Zeilen haben die beiden Spalten wiederum eine exakte lineare Beziehung mit Y=0,5*X.

Wir können „Muster erkunden“ verwenden, um nach solchen linearen Beziehungen zwischen den Basisspalten zu suchen. Wenn uns Anomalie Nr. 1 nicht bereits aufgefallen wäre, wäre es sinnvoll, auch in den aktualisierten Spalten nach linearen Beziehungen zu suchen.

Wenn es viele exakte lineare Beziehungen oder möglicherweise große Mengen linearer Beziehungen gab, kann dies ein Zeichen dafür sein, dass die Werte in einer Spalte mithilfe eines Vielfachen einer anderen Spalte generiert wurden. Hier gibt es nur wenige Zeilen, bei denen die Basisspalten einen exakten linearen Zusammenhang haben. Wir könnten die Option „Einfärben“ verwenden, um diese Zellen anzuzeigen und auf Unregelmäßigkeiten zu prüfen, aber bei einem Datensatz dieser Größe mit vielen gerundeten Werten ist es nicht überraschend, einige lineare Beziehungen zu finden.
Mithilfe von „Muster erkunden“ haben wir untersucht, ob es verdächtige lineare Beziehungen zwischen Zeilen für zwei Spalten für die Basiswerte gibt. Allerdings waren die Ergebnisse nicht sehr aussagekräftig. Lassen Sie uns nun auch nach linearen Beziehungen zwischen Spalten in zwei Zeilen suchen, wiederum für die Basiswerte. Dazu müssen wir Explore Patterns für die Transponierung unserer Daten verwenden.
Ich habe die Option „Transponieren“ in JMP verwendet, um die Daten anhand der Basisspalten für Teilnehmer zu transponieren, die den Kilometerstand für mindestens drei Fahrzeuge angegeben haben. Ich habe Reihen ausgeschlossen, in denen die Teilnehmer zwei oder weniger Autos hatten, da diese nicht dabei helfen würden, lineare Beziehungen zu erkennen.

Im Bericht „Muster erkunden“ für diese transponierten Daten gibt es viele exakte lineare Beziehungen, bei denen die Steigung ungefähr eins beträgt. Daher gibt es in der ursprünglichen Datentabelle viele Zeilen, die nahezu eine Doppelzeile mit Basiswerten für alle Autos aufweisen. (Hinweis: Sie können mit der rechten Maustaste auf die Spalte „Steigung“ klicken und die Funktion „Wo auswählen“ verwenden, um alle Zeilen hervorzuheben, in denen die Steigung nahe bei eins liegt. Es gibt 69 Paare, bei denen die Steigung zwischen 0,99 und 1,01 liegt.)

Sie können über der Tabelle der linearen Beziehungen die Option „Einfärben“ auswählen, um alle Werte in einer exakten linearen Beziehung einzufärben, oder Sie können mit der rechten Maustaste auf die Y-Spalte klicken, um bestimmte Werte einzufärben. Die folgende Tabelle enthält die farbigen Werte für die ersten drei Zeilen des Berichts „Lineare Beziehungen“.

Explore Patterns hat mehrere Paare von „Fahrzwillingen“ identifiziert, bei denen die Basisfahrleistungswerte bei allen Fahrzeugen sehr ähnlich waren und eine exakte lineare Beziehung aufwiesen. Wir könnten dem nachgehen und nach weiteren Paaren suchen, die keine exakte lineare Beziehung haben, aber dennoch sehr eng miteinander verbunden sind. Wie im Data Colada-Beitrag dargestellt, ist es leicht, viele fahrende Zwillinge zu identifizieren, wenn man nach dem Basiswert für das vierte Auto sortiert.
Anomalie Nr. 4 – Eine Schriftart hat viele abgerundete Grundlinienwerte, die andere nicht
Die Forscher stellten fest, dass die Grundwerte in der Schriftart Calibri gerundet waren, die Werte in der Schriftart Cambria jedoch nicht.
Angenommen, wir wüssten, dass einige Zeilen in einer Schriftart und die anderen Zeilen in einer zweiten Schriftart geschrieben wurden und dass wir in unseren Daten eine Spalte mit der Schriftart für jede Zeile haben. Wir können „Muster erkunden“ mit dem Schriftartnamen als Spalte „Nach“ verwenden.

Wie in den „Explore Patterns“-Berichten zu sehen ist, weisen die Grundlinienwerte für die Zeilen in der Schriftart Calibri viele gerundete Werte auf, während die Grundlinienwerte für die Cambria-Zeilen nicht gerundet sind. Da wir davon ausgehen würden, dass die vom Kunden gemeldeten Kilometerstände gerundet sind, deutet dies darauf hin, dass die ursprünglich gemeldeten Werte die Zeilen mit der Schriftart Calibri waren und die „Driving Twin“-Daten erstellt und dann in der Schriftart Cambria eingegeben wurden.
Abschluss
Wann immer Sie einen neuen Datensatz erwerben, führen Sie wahrscheinlich eine explorative Analyse und Datenbereinigung durch. Vielleicht suchen Sie nach Ausreißern , überprüfen die Daten auf fehlende Werte oder sehen sich die Verteilung jeder Variablen an. Ich hoffe, dieser Beitrag hat Sie dazu ermutigt, mit Explore Patterns nach ungewöhnlichen Mustern in Ihren Daten zu suchen. Nicht alle Muster, die Sie mit „Muster erkunden“ finden, sind ein Beweis dafür, dass etwas falsch oder besorgniserregend ist, aber das Dienstprogramm stellt Ihnen ein Tool zur Verfügung, mit dem Sie Muster finden können, die eine weitere Untersuchung erfordern.
Hallo @madhu . Vielen Dank für diese Frage. Ich werde Ihnen zwei Lösungen vorstellen, damit die Spaltentitel für die Tabelle „Transponierte Daten“ dieses Format verwenden.
Zunächst können Sie in der Originaldatentabelle eine neue Spalte erstellen, die die im Screenshot unten gezeigte Formel verwendet.

Nachdem Sie diese Spalte erstellt haben, können Sie sie beim Transponieren als Beschriftungsspalte verwenden.

Eine zweite Option, die Sie verwenden können, da Sie die Tabelle „Transponierte Daten“ bereits erstellt haben, besteht darin, JSL zum Bearbeiten der Spaltentitel zu verwenden. Öffnen Sie dazu bitte Ihre Transponierte Datentabelle, wählen Sie dann Datei > Neu > Skript und fügen Sie das Skript unten in das Skript-Editor-Fenster ein. Durch die Ausführung dieses Skripts werden die Spaltentitel auf das gewünschte Format aktualisiert.
dt = Data Table("Transpose of Car Mileage Data");
colNames = dt << Get Column Names(string);
For(i=2, i <= Length(colNames), i++,
Column(dt, i) << Set Name("id=" || char(colNames[i]))
);
Ich hoffe das hilft. Nochmals vielen Dank für Ihre Kommentare.
Hallo @madhu . Sie finden „Wo auswählen“ unter „Zeilen“ > „Zeilenauswahl“ > „Wo auswählen“.

Wenn Sie jedoch JMP interaktiv verwenden möchten, um diese Zeilen anstelle von JSL auszuwählen, würde ich empfehlen, eine neue Spalte hinzuzufügen und eine Formel zur Identifizierung dieser Zeilen zu erstellen. Versuchen Sie dazu bitte die folgenden Schritte.
- Wählen Sie im oberen Menü Spalten > Neue Spalten... aus
- Wählen Sie im Menü „Neue Spalte“ die Option „Spalteneigenschaften“ > „Formel“ aus
- Geben Sie im Formeleditor die Formel wie folgt ein

Wenn Sie die Formel eingegeben haben, klicken Sie auf „OK“, um die Spalte zu erstellen. In der neuen Spalte entsprechen die Zeilen mit dem Wert 1 Teilnehmern mit drei oder mehr Autos. Sie können alle Zeilen mit dem Wert 1 auswählen, indem Sie mit der rechten Maustaste auf eine Zeile mit dem Wert 1 klicken und wie unten auf „Übereinstimmende Zellen auswählen“ klicken.

Wenn Sie dazu Fragen zur Verwendung von JSL haben, können Sie zunächst im erweiterten Protokoll nach JSL suchen, das für die von Ihnen interaktiv ausgeführten Aktionen generiert wurde. Der folgende Screenshot zeigt beispielsweise das Protokoll nach dem Öffnen der an diese Seite angehängten Datentabelle, dem Erstellen der oben beschriebenen neuen Formelspalte und dem Transponieren der Daten mithilfe der ausgewählten Zeilen. Sie können das Skript aus dem Protokoll in einem neuen Skript speichern, das Sie jederzeit erneut ausführen können.

Ich hoffe, das ist hilfreich. Nochmals vielen Dank fürs Lesen.