Hallo! Mein Name ist Byron Wingerd und ich bin einer der JMP-Systemingenieure. Normalerweise arbeite ich mit Pharmaunternehmen an der Ostküste. Heute spreche ich über das Erkennen kleiner Veränderungen. Dabei geht es darum, Prozess- oder Testdaten zu untersuchen und zu verstehen, wann kleine Veränderungen auftreten und wie man sie erkennt. Wir gehen in die Vergangenheit zurück und versuchen, Daten zu analysieren und zu verstehen, wann es in der Vergangenheit zu Veränderungen gekommen sein könnte. Wir sprechen darüber, Signale im Rauschen kontinuierlich erfasster Daten zu finden.
Ich habe ein paar Warnungen für Sie. Ihr Prozess ist nicht gerade förderlich für Sie. Ihr System, egal ob Mess-, Fertigungs- oder Reinigungssystem, reagiert empfindlicher auf Eingangsschwankungen als Ihre eingehenden Qualitätskontrollmethoden. Was meine ich damit? Die Dinge, die Sie suchen, wie Reinheit, sind zwar großartig, wenn Sie sie erkennen können, aber Sie werden nicht in der Lage sein, Dinge zu erkennen, die Sie nicht erwarten.
Hinzu kommt, dass die Zertifikate der Lieferanten, insbesondere von Chemikalien, manchmal einfach von Charge zu Charge kopiert werden. Es gibt kaum Warnungen vor kleinen Veränderungen bei den eingehenden Rohstoffen, es sei denn, man verfügt über extrem empfindliche Methoden, um diese zu erkennen. Für die große Mehrheit der Menschen gibt es diese einfach nicht.
Ich habe noch eine Warnung für Sie. Ihre Tracking- und Trendprogramme? Die mögen Sie nicht. Teilweise ist das unsere Schuld. Wir sind selbstgefällig geworden. Alle reden davon, dass die Leute anfangen, zu viele Alarme zu ignorieren. Die Kehrseite davon ist jedoch, dass es keine Alarme gibt. Alles sieht super aus. Alles ist unter Kontrolle. Wir müssen uns um nichts kümmern. Wir hören auch auf, die Daten sorgfältig zu prüfen. Zwischen diesem Problem, dass wir Dinge, die unseren Prozess beeinflussen könnten, nicht erkennen können, und dem Problem, dass alles super aussieht, aber ich nicht so genau hinschaue, können wir in Schwierigkeiten geraten.
Warum verwenden wir Regelkarten? Warum nutzen wir SPC, CPV oder wie auch immer wir es nennen wollen? Das Wichtigste ist, dass wir zwischen allgemeiner und besonderer Ursache unterscheiden wollen. Es ist ein Mechanismus, um auf Veränderungen im Prozess zu reagieren, die wir feststellen. Mit Statistiken können wir unsere Ergebnisse sehr genau bestimmen. Wir können auch Warnmeldungen automatisieren, um Dinge zu finden, wenn wir – ich weiß nicht – nicht aufpassen.
Aber dieses ganze Tracking und die Trendanalyse sind nicht wirklich optional. In der Pharmabranche ist es gesetzlich vorgeschrieben. Auch in anderen Bereichen der Produktion ist dies laut ISO 9000 vorgeschrieben. Es ist nicht optional. Wir alle sollten es tun und unsere Prozesse überwachen.
Eine weitere Warnung: Ihr Prozess könnte Sie heimlich vor Dingen warnen, die Sie später einholen werden. Ich meine Folgendes: Es gibt diese zufälligen Produktionsexperimente. Es gibt Beinahe-Unfälle. Zum Beispiel, als wäre die Sache fast außer Kontrolle geraten oder die Kontrolle über die Charge wäre fast verloren gegangen. Es gibt seltsame Dinge, die nicht außer Kontrolle geraten, aber Sie sehen, dass Sie kleine Änderungen in den Daten finden. Das Problem ist, dass Sie nicht sehen können, wonach Sie nicht suchen.
Auf der anderen Seite möchten Sie sich nicht vom Zufall täuschen lassen und nur zufälligen Signalen nachjagen. Genau darum geht es bei Kontrollkarten. Wir wollen nur auf Variationen mit besonderen Ursachen reagieren, nicht auf allgemeine Ursachen. Wir bewegen uns in diesem Bereich, also betrachten wir die Daten dazwischen.
Ich möchte über die Anwendung einiger unserer Werkzeuge zur Erkennung kleiner Veränderungen sprechen. Wir haben CUSUM-Diagramme. Diese sind fantastisch. Idealerweise werden sie prospektiv eingesetzt, um nach eingetretenen Veränderungen zu suchen. Dabei wird die kumulative Summe der Auf- und Abwärtsbewegungen in einem Prozess betrachtet. Wir haben verschiedene Methoden zur Interpretation dieser Diagramme. Ein weiteres sehr gutes Beispiel sind EWMA-Diagramme (Exponentially Weighted Moving Average Charts). Diese sind wirklich gut.
Anschließend können wir uns mit der Erkennung von Änderungspunkten befassen. Hier kommen einige Aspekte der multivariaten Analyse ins Spiel. Wir sprechen über das sogenannte Fused Lasso und vielleicht auch über Baummethoden wie Partitionierung, Prädiktor-Screening und Bootstrap Forest, um nach kleinen Änderungen, Verschiebungen und Drifts zu suchen. JMP bietet hierfür einige hervorragende Tools, und ich möchte einige der wichtigsten vorstellen.
CUSUM ist ein hervorragendes Tool zum Erkennen kleiner Prozessverschiebungen, insbesondere von Drifts, die langsam auftreten und sich dann beschleunigen. Wir können diese erkennen, indem wir Muster in den Diagrammen betrachten, die deutlich hervortreten. Früher gab es immer diese V-Maske, bei der man die Daten in der V-Maske betrachtete und feststellte, wohin sie gingen. Das wirkte etwas vage. Es funktioniert. Es ist absolut zuverlässig. Aber in JMP haben wir diese Plattform vor einigen Jahren neu entwickelt, sodass sie eher wie eine normale Kontrollkarte aussieht. Sie ist sehr praktisch in der Anwendung.
Dieses Kontrolldiagramm, das CUSUM, verwendet einige Parameter. Es gibt das Sigma, also die Größe des zu erkennenden Unterschieds. Es gibt den Vorsprung, wie die schnelle Anfangsreaktion. Es gibt einen H-Wert und einen K-Wert, die angeben, wie groß die zu erkennende Veränderung ist und was das von uns verwendete Sigma definiert, das K-Sigma-Intervall. Um dies wirklich genau zu erreichen, müssen einige Parameter angepasst werden.
Ein weiteres Kontrolldiagramm, das wir erwähnt haben, ist die EWMA. Dabei handelt es sich um ein Kontrolldiagramm mit begrenztem Gedächtnis, bei dem CUSUM die kumulative Summe betrachtet. Die EWMA verfügt über ein Gedächtnis, und es geht darum, wie weit vorherige Beobachtungen sie beeinflussen. Dieses Gedächtnis kann exponentiell gewichtet werden. Auch hier gibt es einige Parameter. Es gibt das Ziel, das Sigma und insbesondere das Lambda. Das Lambda dient der Glättung, z. B. wie weit im Gedächtnis Sie sich an alles oder nichts oder etwas dazwischen erinnern.
Für beide Methoden, die zum Auffinden von Verschiebungen und Drifts sehr verbreitet sind, sind ein wenig Hintergrundwissen und Fachwissen erforderlich. Sie müssen wissen, wie Sie sie einstellen, um genau das zu finden, wonach Sie suchen. Denn Sie könnten Dinge entdecken, die nicht da sind, oder Dinge übersehen, die da sind, und keine wirklich genauen Aussagen treffen, wenn Sie die Parameter auf die eine oder andere Weise überanpassen.
Wäre es nicht schön, wenn es eine Möglichkeit gäbe, diese Entscheidungen mithilfe eines, ich weiß nicht, maschinellen Lernwerkzeugs zu treffen, das weniger von unserem Hintergrund und unserem Verständnis beeinflusst ist? Das wäre wirklich cool. Es gibt eine Methode, die uns dabei helfen kann: Fused Lasso. Sie ist Teil der Toolbox der modernen Regressionsmethoden. Mit diesem Werkzeug können wir die generalisierte Regression nutzen. Die generalisierte Regression ist eine Funktion von JMP Pro. Es handelt sich um eine bestrafte Regressionsmethode.
In der Vergangenheit wurde dies als Methode zum Auffinden von Änderungspunkten diskutiert. Es handelt sich dabei um komplizierte Mathematik und einige ziemlich komplizierte Ideen, wie man diese Änderungspunkte in den Daten findet. Ich muss jedoch anmerken, dass Clay Barker diese Idee vor zehn Jahren in einem seiner Vorträge über Genreg, Änderungspunkterkennung und Fused Lasso vorstellte.
Ich glaube, das ist eines dieser Dinge, die am Ende nur noch eine Fußnote sind, und es ist wirklich wichtig. Ich benutze es schon seit ein paar Jahren, aber ich habe festgestellt, dass nicht viele Leute davon wissen. Ich meine, ich hänge an jedem Wort, das Clay Barker sagt, er ist mein Held. Aber vielleicht nicht jeder andere.
An dieser Stelle sagen Sie vielleicht: „Hey, Byron, du musst mal ein bisschen auf die Bremse treten. Moderne Regressionsmethoden? Genreg? Ich bin etwas verzweifelt, weil du von JMP Pro und wirklich komplizierter Mathematik sprichst, die ich nicht verstehen will.“ Es stellt sich heraus, dass es nur ein bisschen kompliziert ist. Es ist relativ einfach einzurichten, und Sie können eine Methode zur Signalerkennung einrichten, die gegenüber den einfacheren Methoden einige Vorteile bieten könnte.
Nur ein paar Hintergrundinformationen. Etwas, das schon lange verwendet wird, ist so etwas wie die Partitionsplattform in JMP. Wenn Sie die Zeit als X und Y für die betrachteten Antworten eingeben, können Sie damit Stellen finden, an denen sich der Mittelwert im Laufe der Zeit geändert hat, insbesondere wenn Sie einen regelmäßigen Zeitplan verwenden, beispielsweise Zeilennummern. Es funktioniert ziemlich gut, um herauszufinden, wo sich Ihre Prozessdaten verschoben haben könnten, beispielsweise die Mittelwertverschiebung. Es kann einige dieser Haltepunkte finden. Es ist ziemlich gut darin.
Es gibt ein paar kleine Probleme. Liegen die Haltepunkte zu nahe beieinander, werden sie nicht gefunden. Ist das Rauschen zu groß, werden sie nicht gefunden. Bei vielen Haltepunkten findet das System möglicherweise nur den ersten und keine weiteren. Aber die Idee ist wirklich cool, denn genau wie beim Fused Lasso versucht man, Nachbarn von Gruppen mit ähnlichen Mittelwerten zu finden und dann die Unterschiede in den Mittelwerten zu ermitteln. Genau das passiert bei der Partitionierung.
Zurück zu diesen fortgeschrittenen Regressionstechniken: Wir müssen eine spezielle Datenstruktur mit einer wirklich einfachen – und mit einfach meine ich kurz, nicht wirklich einfach – kleinen JSL-Anweisung erstellen, die eine Matrix für mich erstellt. Diese Matrix sieht so aus wie hier auf der Folie. Stellen Sie sich eine Diagonalmatrix vor, bei der die erste Spalte nur Einsen enthält, die nächste Spalte Nullen und dann wieder nur Einsen. Die nächste Spalte enthält Nullen, Nullen und wieder nur Einsen. Wir haben eine Spalte für jede Zeile, die wir in unserer Datentabelle betrachten möchten.
Bei hundert Datenzeilen erhalten wir hundert Spalten. Bei tausend Datenzeilen erhalten wir tausend Spalten in dieser Diagonalmatrix. Der Einfachheit halber werde ich sie später die Entdeckungsmatrix nennen, aber das ist einfach ein völlig falscher, erfundener Begriff. Für mich funktioniert er aber.
Bei der bisherigen Einrichtung konnten wir die Discovery-Matrix und die Partitionsplattform verwenden und dasselbe erreichen. Dadurch wurde die Erkennung von Brüchen deutlich sensibler, da wir die Spalte fanden, die einer Änderung des Mittelwerts entspricht. Diese Spalte ist die Zeile im Datensatz. Es funktionierte wirklich gut und war recht einfach einzurichten.
JMPs haben sich in den letzten Jahren stark weiterentwickelt. Eine meiner Lieblingsfunktionen in JMP ist das sogenannte Prädiktor-Screening. Dabei werden viele Bäume erstellt und anschließend der Durchschnitt daraus berechnet.
Okay, hier ist der entscheidende Punkt. Beim Prädiktor-Screening werden beispielsweise 100 Bäume erstellt. Dazu werden eine Zufallsstichprobe der Spalten aus der Discovery-Matrix und eine Zufallsstichprobe der Zeilen aus meinen Daten verwendet. Dabei wird nur eine Zufallsstichprobe meines Y betrachtet, das ich zu erklären versuche. Es wird ein Baum erstellt. Und das wird immer und immer wieder und immer wieder und immer wieder wiederholt.
Was passiert, ist, dass der Teil, in dem eine Verschiebung nahe an einer anderen Verschiebung liegt, nicht in allen Bäumen auftaucht. Wir können die anderen Verschiebungen finden, die nahe beieinander liegen. Wir können viele Verschiebungen im gesamten Datensatz finden. Dies löst einige der Probleme der Partitionierung, bei denen es nicht möglich war, nahe beieinander liegende Dinge zu finden und nicht mehr als ein paar Verschiebungen zu finden, wenn sie auftreten. Dadurch können wir viel mehr finden.
Ich habe eine Sandbox eingerichtet, um zu testen, wie gut das tatsächlich funktioniert. Wie klein ist klein und wie sieht meine Sandbox aus? Ich möchte Dinge finden, die eine 1-2-Sigma-Verschiebung darstellen. Ich möchte systematische Veränderungen finden. Das ist vergleichbar mit den zufälligen Fertigungsexperimenten oder Veränderungen bei den Rohstoffen. Sie haben uns nicht außer Kontrolle gebracht, aber sie haben die Menge vielleicht etwas nach oben verschoben. Wenn diese Menge an Material ausgeht, verschiebt sie sich wieder nach unten. Das sind winzige Verschiebungen, die während des laufenden Prozesses auftreten, und so kann ich forensisch zurückgehen und einige davon diagnostizieren. Ich möchte wirklich kleine Dinge, die passieren.
Stellen Sie sich das so vor: In meiner Sandbox habe ich etwa 200 Zeilen. In den ersten hundert Zeilen habe ich eine Verschiebung bei 33 plus eins und dann eine Herunterverschiebung von minus eins bei 66. Nehmen wir an, ich habe einen Mittelwert von 3, verschiebe ihn hoch auf 4 und dann wieder zurück auf 3. Damit ist Rauschen verbunden. Das ist ein wirklich sauberes, schönes Bild. Sie sehen sich das an und denken: „Na, Byron, wenn du dir solche Daten ansiehst, finde ich das ständig.“ Okay, aber ich verrate Ihnen am Ende den Haken.
Im blauen Bereich habe ich keine Verschiebung. Die ersten 100 Zeilen haben eine definierte Verschiebung. Bei der zweiten Verschiebung ist nichts. Hier liegt das Rauschen. Ich sollte in diesem Bereich nie etwas finden, und bei 33 und 66 sollte ich immer eine Verschiebung finden.
Es ist ziemlich gewagt zu behaupten, dass ich eine Methode habe, die das kann, wenn das Signal leicht zu finden ist. Aber nehmen wir an, meine Daten sehen ungefähr so aus. Nehmen wir an, ich habe mehrere tausend Datensätze. Sie sind alle übereinander aufgetragen. Es gibt einen Schleier, und ich möchte immer die Verschiebung bei 33 und 66 finden. Im Durchschnitt kann man sich diese Daten hier ansehen und sagen: „Ja, Byron, das sehe ich genau.“ Aber einige verschieben sich sehr deutlich, andere nicht, und wieder andere weisen nur Rauschen oder zufällige Verschiebungen in dem blauen Bereich dort drüben auf. Wie gut erkenne ich eine Veränderung im Vergleich dazu, wenn ich keine Veränderung erkenne?
Hier ein Beispiel, um das etwas deutlicher zu machen. Bei etwa 33, der ersten Verschiebung, sehe ich schon beim bloßen Hinsehen: Hey, da ist etwas nach oben gegangen. Aber die zweite Verschiebung ist wie ein Abwärtstrend. Es ist nicht ganz klar. Wenn ich gegen Ende keine Drift oder Verschiebung sehe, geht es nach oben? Oder gibt es ein Sägezahnmuster? Ich bin mir nicht sicher. Diese Verschiebungen sind möglicherweise nicht so leicht zu erkennen.
Okay, ich werde jetzt kurz etwas nervös und zeige Ihnen, wie das in der Realität aussieht. Anschließend werten wir einige Ergebnisse aus. Also gut. Hier ist mein Werkzeugkasten. Ich habe eine zufällige Datenstichprobe. Diese hier hat eine Verschiebung nach oben und ist mit einer roten Linie gekennzeichnet, die andere nach unten. Das ist nur eine Kontrollkarte der Daten. Wenn ich mir das nur ansehe, fällt es mir schwer zu sagen: „Ja, da ist wirklich etwas.“
Ich gehe hier runter und schaue mir ein CUSUM-Kontrolldiagramm an. Die violetten Linien zeigen mögliche Verschiebungen an. Hier sehen wir deutlich, dass CUSUM diese Verschiebung erkennt, indem es die roten Linien auf eine Linie bringt. Wenn ich die K-, H- und Sigma-Werte ändere, kann ich die Empfindlichkeit erhöhen. Nehmen wir 0,15. Indem ich den K-Wert ändere, kann ich ihn etwas verkleinern. Ich verkleinere ihn noch weiter. Ich finde zwar nicht 66, aber es findet etwas, und zwar im Bereich von 80-90. Das deutet darauf hin, dass etwas passiert. Das ist aber ein guter Test.
Hier ist mein EWMA-Diagramm. Ich vergrößere es etwas. Ich habe meinen Lambda-Regler und kann ihn ändern. Wenn ich hierhin gehe, gibt es überhaupt keinen Speicher. Wenn ich hierhin gehe, gibt es den gesamten Speicher. Es ist so ziemlich genau wie ein CUSUM-Diagramm. Das habe ich gesagt, und ich weiß, dass es Leute gibt, die viel mit Regelkarten arbeiten und sich das anhören werden. Bitte schmeißt mich nicht raus, weil ich das sage, aber es ist, wie es ist. Hier kann ich durch Verringern oder Erhöhen von Lambda Änderungspunkte um 33 identifizieren, aber bei 66 finde ich nichts.
Schauen wir uns die dritte Methode an. Hier verwende ich Prädiktor-Screening und habe gerade ein kleines Pareto-Diagramm erstellt. Im Prädiktor-Screening habe ich meine Entdeckungsmatrix erstellt. Wir können uns den Datensatz ganz schnell ansehen. Nein, ich werde mir den Datensatz nicht ansehen. Vertrauen Sie mir, er ist da. Was ich hier sehe, ist die erste Vermutung. Sie besagt, dass es in Zeile 33 eine Verschiebung geben könnte, und Vermutung Nummer 2, Rang 2, ist 65. Wir sehen etwas hier draußen bei 142, dann 35, dann 40 und 80, 70. Unsere ersten paar Vermutungen treffen genau ins Schwarze.
Ich habe in diesem Diagramm für jede der im Prädiktorbildschirm angezeigten Zeilen eine blaue Linie eingezeichnet. Die erklärte Proportion entspricht der Dicke der blauen Linie hier. Sie sagt: „Ich denke, wir sehen etwas um 33, und ich denke, wir sehen etwas um 65.“ Damit lässt sich die Verschiebung des Mittelwerts im Verlauf recht gut ermitteln, denn wie Sie hier sehen, gibt es genau hier diesen Punkt. Würde man diesen Punkt komplett ignorieren, sähe es so aus, als gäbe es eine Verschiebung dieses Werts relativ zu jenem. Aber unsere Augen erfassen das, und die anderen Methoden erfassen das auch, und versuchen, es einzubeziehen. Da es aber nicht in allen Bäumen enthalten war, konnten wir die Verschiebung finden, was ziemlich cool ist.
Wie oft funktioniert das korrekt? Das würde mich interessieren. Ich gehe zurück zu PowerPoint. Lassen Sie uns das Ganze noch einmal starten. Ich habe Tausende dieser einzelnen Datensätze simuliert. Jeder war gleich verrauscht, und manche waren leicht zu erkennen, manche schwer, aber Tausende. Ich habe den Vorhersage-Profiler für jeden dieser Datensätze ausgeführt, die ersten zehn Ränge erfasst und überprüft, ob die richtige Zeile ausgewählt wurde oder nicht.
Das habe ich herausgefunden. Meistens liegen wir sehr nah oder genau an den von uns definierten Schaltpunkten. Nur sehr selten wählen wir Punkte, die im Rauschen über 100 liegen, wo ich sicher weiß, dass nichts passiert. Es scheint, als ob es ziemlich gut funktioniert.
Sehen wir uns einige Statistiken an. Dies gilt für 8.000 verschiedene Sandboxen. Bis zur Entdeckung wird die Zahl wahrscheinlich noch höher sein. Wir haben mit Prädiktor-Screening nur 100 Bäume verwendet und uns die Top-10-Ränge angesehen. Wir hatten ein Fenster von plus/minus 3. 33 plus/minus 3 und 66 plus/minus 3. Hat das System in diesem Bereich ausgewählt? Ja, beide waren gleichzeitig in 95 % der Fälle in den Top 10. Es hat 33 gefunden, die Verschiebung bei 33, in 90 % der Fälle, und 66, in 92 % der Fälle. Das Ergebnis ist ziemlich gut, was fantastisch ist.
In diesem Diagramm versuche ich, das Konzept von Sensitivität und Spezifität auszudrücken. Beim Prädiktor-Screening erhalten wir die ersten zehn Ränge, die ersten zehn Dinge. Ich frage: Liegt es in einem Fenster von plus/minus 3 oder plus/minus 12, wie oft? Die erste Wahl war fast immer die richtige. Im Rauschen tauchte die erste Wahl, insbesondere die ersten fünf, nur sehr selten auf. Es ist eine ziemlich gute und sehr sensitive Methode.
Die Schlussfolgerungen. Erstens: Die Erkennung kleiner Verschiebungen ist in JMP mit mehreren Methoden möglich, aber die Idee des Fused-Lasso-Ansatzes ist fantastisch. Ein kleines Easter Egg wird im JMP 19 Graph Builder zu finden sein, einer der Linienpersönlichkeiten. Ich weiß es nicht genau, aber schauen Sie mal vorbei, wenn Version 19 erscheint. Diese fortgeschrittenen Methoden sind recht einfach, da Sie die Erkennungsmatrix einfach mit einem Skript generieren können. Dieser Fused-Lasso-Ansatz funktioniert ohne jegliche Anpassungen wirklich gut. Ein wenig Geschick und viele Möglichkeiten genügen.
Gibt es ein Skript, mit dem ich das selbst machen kann? Werdet ihr das Sandbox-Tool teilen? Ja. Bis zur Veröffentlichung von Discovery wird es ein wirklich nützliches Add-In geben. Ihr könnt eure Daten auswählen, das Sandbox-Tool und das Explorer-Tool für mehrere Methoden zur Schichterkennung verwenden. Außerdem werde ich das Skript, mit dem Clay die Discovery-Matrix erstellt hat, erneut veröffentlichen. Hoffentlich ist das nützlich oder zumindest unterhaltsam. Ich hoffe, wir sehen uns bei Discovery. Wenn ihr mich draußen im Flur seht, sagt Hallo. Ich sollte da sein.
Wir sehen uns später. Bleibt nervös.