| Lautsprecher |
Transkript |
| Andrea Coombs, JMP |
Hallo, mein Name ist Andrea Coombs und ich bin Systemingenieurin bei JMP. Heute erzähle ich Ihnen meine Erfahrungen aus der Branche, insbesondere der Pharmaindustrie. |
| |
Hier ist also kurz zusammengefasst, worüber ich heute sprechen werde. |
| |
Bewältigungsstrategien für die Sinnfindung |
| |
von Echtzeit-Produktionsdaten in der Fertigung... in der Impfstoffherstellung. Und in dieser Präsentation habe ich Möglichkeiten zum Umgang mit gekrümmten Daten diskutiert |
| |
die wir in Echtzeit von Sensoren in unserer Fertigungshalle erhielten. |
| |
Und heute möchte ich über einige der neuen Tools sprechen, die wir in JMP haben, insbesondere über den funktionalen Daten-Explorer, und darüber, wie dieser die ganze Arbeit zu einem Kinderspiel gemacht hätte. |
| |
Und ich werde auf Möglichkeiten eingehen, den funktionalen Daten-Explorer zum Prozessverständnis, zur Prozessoptimierung und zur Prozessüberwachung einzusetzen. |
| |
Beginnen wir zunächst mit dem Prozess und den Kurven, mit denen wir es zu tun hatten. Hier links sehen wir ein Beispiel für einen hypothetischen Impfstoffherstellungsprozess. Es beginnt mit der Materialvorbereitung. |
| |
In diesem Fall führen wir eine bakterielle Fermentation in zwei Stufen durch, dann wird das Produkt gefiltert, absorbiert und geerntet. |
| |
Anschließend wird das Produkt zentrifugiert und anschließend werden mehrere Teilchargen des Materials zu einer einzigen Materialcharge zusammengefasst. |
| |
Und heute werde ich mich auf die Fermentationsphasen dieses Prozesses konzentrieren. |
| |
Während Bakterien gären, wachsen sie und die Wachstumskurven sehen etwa so aus wie hier rechts. Während des Wachstums gibt es also eine Verzögerungsphase, eine exponentielle Wachstumsphase, eine stationäre Phase und schließlich eine logarithmische Todesphase. |
| |
Und während ich in diesem Unternehmen war, durchliefen wir eine Entwicklung des Prozessverständnisses, insbesondere im Hinblick auf diese Wachstumskurven. |
| |
Wir begannen also früh damit, nur fünf Proben aus diesen beiden Fermentationsstufen zu entnehmen, diese Proben an das Qualitätskontrolllabor zu schicken und auf die Ergebnisse zu warten. Und wir bekamen |
| |
optische Dichte, sodass wir die Zelldichte in diesen Proben bestimmen konnten, und die Ergebnisse, die wir erhielten, sahen in etwa so aus wie das, was Sie hier rechts sehen. |
| |
Wir hatten eine Ergebnisverteilung zu diesen Zeitpunkten, wussten aber nicht, wie die Wachstumskurven aussahen. Sie hätten genauso gut aussehen können wie die Kurven, die ich unten über die Verteilungen gezeichnet habe. Wir hatten einfach keine Ahnung. |
| |
Aber dann haben wir Inline-Sonden implementiert, also Trübungssonden, damit wir tatsächlich sehen können, wie diese Wachstumskurven aussehen. Allerdings mussten wir uns anziehen und in die Produktionssuite gehen |
| |
die Daten manuell herunterzuladen, sie zu unseren Schreibtischen zurückzubringen und dann herauszufinden, was wir mit all diesen Daten machen würden. |
| |
Und schließlich haben wir unsere SPS so aufgerüstet, dass wir nun alle Daten von allen Sensoren an unserem Schreibtisch haben, ohne uns umziehen und zurück in die Produktion gehen zu müssen; wir hatten alle Daten |
| |
Wir hatten Zugriff auf alle wichtigen Daten, was großartig war. Durch sorgfältige Analyse stellten wir jedoch fest, dass wir zu viele Daten hatten und mit einer großen Datenmenge umgehen mussten. |
| |
Deshalb also... |
| |
aus diesem Grund habe ich diese Präsentation zu Bewältigungsstrategien für die Interpretation von Echtzeitdaten gehalten. |
| |
Wir haben viel Arbeit in die Auswertung unserer Daten gesteckt und ich möchte Ihnen einige Strategien vorstellen, mit denen Sie Ihre Echtzeitdaten sinnvoll nutzen können. |
| |
Das erste, worüber ich gesprochen habe, war die Parametrisierung dieser Wachstumskurven. Wir hatten diese Kurven, aber wir wollten das Wachstum und |
| |
Um zu verstehen, was vor sich ging, haben wir sie parametrisiert. Mit anderen Worten: Wir haben die Wachstumskurve und die Sterberate untersucht und die Dauer der einzelnen Phasen der Bakterien betrachtet. Wir haben uns angesehen |
| |
die Trübung zu bestimmten Zeitpunkten, und jetzt hatten wir eine große Sammlung dieser Wachstumsvariablen, die wir Wachstumsvariablen nannten. |
| |
Und diese Wachstumsvariablen waren für uns sehr nützlich. Wir nutzten sie zum Prozessverständnis, zur Prozessoptimierung und zur Prozessüberwachung. |
| |
Die zweite Gruppe von Bewältigungsstrategien, über die ich gesprochen habe, war die Verarbeitung all dieser Echtzeitdaten |
| |
die wir hatten. Als wir diese Daten für nützlich hielten, wollten wir natürlich sofort darauf zugreifen. |
| |
Das erste, was wir also herausfinden mussten, waren alle unsere Datenquellen und wir mussten sicherstellen, dass wir Zugriff auf alles hatten, was wir hatten, nicht nur auf die Daten unseres Historikers, sondern auch auf die Daten unserer |
| |
ERP-System in unseren Laborinformationsmanagementsystemen. Wir mussten alle Daten an einem Ort zusammenführen. Wir nutzten ein Superjournal, das sozusagen die Kommandozentrale für den Zugriff auf alle unsere Daten und die Ausführung aller unserer Skripte darstellte. |
| |
Das war wirklich eine Menge Arbeit, die wir geleistet haben. Wir waren ziemlich stolz auf uns, aber im Nachhinein betrachtet, |
| |
Wenn wir wissen, welche Tools wir in JMP haben, insbesondere jetzt mit JMP 16, gibt es ein paar Dinge, die diese Arbeit viel einfacher gemacht hätten. |
| |
Mit den Wachstumskurven hätten wir den funktionalen Daten-Explorer zur Analyse unserer Kurven verwenden können. Wir hätten sie nicht parametrisieren müssen, |
| |
wo wir viele Daten verloren haben. Wir können alle Daten im funktionalen Daten-Explorer nutzen. Und dann natürlich die Aktionsaufzeichnung im erweiterten Protokoll. |
| |
Das hätte den Aufwand beim Skripting deutlich vereinfacht. Heute möchte ich mich aber nur darauf konzentrieren, wie ich den funktionalen Daten-Explorer eingesetzt hätte. |
| |
Da ich natürlich keinen Zugriff mehr auf diese Daten habe, habe ich einige Wachstumskurven simuliert. Hier habe ich 20 verschiedene Kurven, die einige der Variabilitäten darstellen, die während der bakteriellen Fermentation auftreten können. |
| |
Und mit dem funktionalen Daten-Explorer läuft es im Grunde auf diese vier Schritte hinaus. Als Erstes nehmen Sie Ihre Kurvensammlung |
| |
und Sie glätten alle einzelnen Kurven. Der zweite Schritt besteht darin, eine mittlere Form und Formkomponenten zu bestimmen, die die gesamte Variabilität beschreiben, die Sie in diesen Kurven sehen. |
| |
Der nächste Schritt besteht darin, die Größe der Formkomponenten für jede Kurve zu extrahieren. |
| |
Und wenn Sie diese beiden Formkomponenten haben, werden sie tatsächlich funktionale Hauptkomponenten genannt. |
| |
Dann können Sie diese für jede beliebige Analyse Ihrer Daten verwenden, unabhängig davon, ob Ihre Kurven Eingaben für Modelle sind, ob sie Ausgaben für Modelle sind oder ob Sie eine Clusteranalyse durchführen möchten. |
| |
Mit diesen funktionalen Hauptkomponenten können Sie jetzt wirklich jede Art von Analyse durchführen. Im heutigen Beispiel sind alle meine Kurven Ausgaben eines Modells, daher verwende ich funktionales DOE. |
| |
um diese Kurven genauer zu betrachten. Schauen wir uns also JMP an. |
| |
Hier habe ich meine Datentabelle, in der ich die Chargennummern habe, ich habe die Zeit in der Trübung, die die Kurven bilden. |
| |
Und ich habe auch eine Reihe von Prozessparametern. Als Erstes möchte ich den Prozess verstehen, um zu sehen, ob einer dieser Prozessparameter |
| |
beeinflussen die Variabilität, die ich in den Kurven sehe. Gehen wir also in den funktionalen Daten-Explorer. Wir setzen die Zeit als X ein, die Trübung als Y. Wir setzen unsere ID-Funktion ein und nehmen dann alle Prozessparameter und geben sie als zusätzliche Variablen ein. |
| |
Der erste Schritt, den wir tun müssen, besteht darin, das flexible Modell an alle unsere Kurven anzupassen, und ich werde dazu eine direktionale, direkte funktionale PCA verwenden. |
| |
Hier sind diese flexiblen Modelle. Der zweite Schritt, den JMP bereits für mich erledigt hat, ist die Bestimmung der Mittelwertkurve |
| |
und unsere Formkomponenten. JMP hat sechs verschiedene Formkomponenten für mich identifiziert. Hier links sehe ich diese sechs verschiedenen Formkomponenten. |
| |
Und hier ist die kumulative Variabilität, die diese Formkomponenten in meinen Daten erklären. |
| |
Sie sehen, dass ich allein mit den ersten beiden Formkomponenten bereits 92 % der Variabilität meiner Kurve beschreibe, was großartig ist. |
| |
Die übrigen Formkomponenten schließe ich aus, da sie wahrscheinlich nur die zufällige Variabilität meiner Daten erklären. Reduzieren wir also die Anzahl der FPCs auf zwei, sodass mir nur noch diese beiden Formkomponenten bleiben. |
| |
Der nächste Schritt besteht nun darin, die Größe jeder dieser Formkomponenten für jede dieser Kurven zu bestimmen, und ich habe sie hier in meinem Punktediagramm. |
| |
Auf der X-Achse habe ich die Formkomponente 1 und auf der Y-Achse habe ich die Formkomponente 2. |
| |
Unten habe ich einen Profiler, in dem ich meine Kurve betrachten kann, die ich hier gelb hervorgehoben habe. Sie können sehen, wie sich die erste Formkomponente auf die Form der Kurve auswirkt. |
| |
hauptsächlich die Wachstumsphase der Kurve, und die zweite Formkomponente beeinflusst hauptsächlich die Absterbephase der Kurve. |
| |
Schauen wir uns einige dieser Chargen genauer an. Sehen wir uns Charge 15 an. Hier ist die Kurve für Charge 15. Wir können die Größe von Formkomponente 1 und Formkomponente 2 sehen. Ich kann diese direkt in meinen Profiler eingeben. |
| |
Sie sehen, dass ich die Kurve für Charge 15 reproduzieren kann. Schauen wir uns noch eine weitere an. Schauen wir uns Charge 2 an. Sie sehen, dass sie im Vergleich zu Charge 15 ganz anders aussieht, und auch die Form … die Größe der Formkomponenten ist sehr unterschiedlich. Also, lasst uns |
| |
schauen Sie sich diese an. |
| |
Und Sie können jetzt sehen, dass wir ... wir sind in der Lage, diese Kurve auch zu replizieren. |
| |
Wenn wir also die mittlere Form kennen, also die beiden Formkomponenten, die die Variabilität um die Kurven darstellen, können wir nun die Größen dieser Formkomponenten für eine Analyse verwenden. |
| |
Und wir können das tun... wenn Ihre Kurven die Antwort in Ihrem Modell sind, können Sie diese Analyse direkt hier im funktionalen Daten-Explorer durchführen. |
| |
Hier unten habe ich einen neuen Profiler. Und diesmal habe ich in meinem Profiler wieder meine Kurve, die ich wieder gelb hervorheben werde. |
| |
Und dann habe ich die Parameter pH-Wert, Temperatur, Druck und Mischgeschwindigkeit. Sie können hier sehen, dass die Mischgeschwindigkeit ziemlich flach ist und diese Form daher nicht beeinflusst. |
| |
Dasselbe gilt für den Druck. Wenn ich mir aber die Temperatur anschaue, sehe ich, wie sich die Form meiner Kurve verändert, vor allem in der Wachstumsphase. Und wenn ich den pH-Wert ändere, wirkt sich das hauptsächlich auf diese Phase meiner Kurve aus. |
| |
Das ist also der Ansatz, den ich zum Prozessverständnis wählen würde. Und wie sieht es mit der Prozessoptimierung aus? Und mit Prozessoptimierung meine ich: |
| |
Wenn wir eine bestimmte Kurve standardisieren möchten, welchen pH-Wert und welche Temperatur benötigen wir, um diese Kurve zu erhalten? Zunächst müssen wir definieren, was das ist. |
| |
Wie die gewünschte Kurve aussieht. Und ich habe hier unten in meiner Datentabelle ein paar Datenpunkte, die die gesuchte Form beschreiben. Sie sehen sie hier auf meiner... |
| |
im Graph Builder. In diesem Fall möchte ich eine Kurve mit einer sehr schnellen Wachstumsrate und einer sehr langsamen Absturzrate erhalten. |
| |
Und das lässt sich ganz einfach in den funktionalen Daten-Explorer integrieren. Wir müssen nur einen zusätzlichen Schritt ausführen. Ich rufe mir auf, was ich vorher gemacht habe. |
| |
Und der einzige zusätzliche Schritt besteht darin, diese Zielfunktion zu laden, zu identifizieren, welche |
| |
Die Funktion stellt unser Ziel dar. Und jetzt werde ich nur wiederholen, was ich vorher gemacht habe. Ich werde meine direkte funktionale PCA durchführen. |
| |
Ich werde meine FPCs auf 2 reduzieren und dies ... diese Ergebnisse sind genau das, was wir vorher gesehen haben, und dann werde ich mein funktionales DOE durchführen. |
| |
Und noch einmal, ich werde meine Kurve hier markieren. Und jetzt, da diese Zielkurve identifiziert ist, kann ich die Erwünschtheit maximieren, d. h., ich kann die Sollwerte für pH und Temperatur bestimmen. |
| |
und Druck und Mischgeschwindigkeit, die mir eine Kurve geben, die der Zielkurve am nächsten kommt. Es gibt also |
| |
wirklich schnelle Wachstumsrate, eine langsame Absturzrate. Und ich müsste nur |
| |
Beginnen Sie mit einem Medium mit einem pH-Wert von 7,2 und verwenden Sie eine Temperatur von 37,9 in meinen Fermentern. Das ist also der Ansatz, den ich zum Prozessverständnis und zur Prozessoptimierung verwendet hätte. |
| |
Wenn wir über die Prozessüberwachung von Wachstumskurven oder Kurvenformen sprechen, gibt es verschiedene Optionen, und ich habe hierzu ein paar unterschiedliche Gedanken. |
| |
Wenn Sie dies tun möchten, empfehle ich Ihnen dringend, sich diese Präsentation aus dem Jahr 2020 anzusehen: Statistische Prozesskontrolle für Prozessvariablen mit funktionaler Form. |
| |
Dies war eine aufgezeichnete Präsentation, und sie ist wirklich großartig. Es wurde darüber gesprochen, wie man diese funktionalen Hauptkomponenten in modellgesteuerte multivariate Kontrollkarten einfügt. |
| |
Sie haben das großartig vorgeführt und anschließend auch über einige mögliche Nachteile dieses Ansatzes gesprochen. |
| |
Ich möchte daher einen anderen Ansatz besprechen, den Sie vielleicht in Betracht ziehen möchten, und zwar die Betrachtung des integrierten Unterschieds zu einem Standard. |
| |
Wie zuvor, als wir die Zielkurve betrachteten, konnten wir diese als Standard verwenden und dann für jede Charge die Differenz zu diesem Standard berechnen. Hier habe ich zum Beispiel |
| |
eine Kurve aus einer Charge, die hier in Blau dargestellt ist ... oder Entschuldigung, in Rot. Die Standardkurve ist in Blau und ich nehme die Differenz und die Differenz hier ist auf dieser grünen Kurve unten. |
| |
Sie können einfach über diese Kurve integrieren, um den Bereich unter der Kurve zu ermitteln. Anschließend können Sie diesen Wert in Ihrem statistischen Prozesskontrollprogramm verwenden. Ich möchte Ihnen kurz die einzelnen Schritte erklären. |
| |
Hier sind meine Zeit und meine Standardtrübungswerte, meine Trübung für die erste Charge, und ich habe gerade die Differenz zwischen diesen beiden berechnet. Und dann können Sie Folgendes tun: |
| |
Verwenden Sie „Y durch X anpassen“, um ein Spline-Modell für diesen Unterschied im Zeitverlauf zu erstellen. Anschließend können Sie die Koeffizienten für dieses Modell in einer Datentabelle speichern. |
| |
Sie erhalten Ihre X-Werte und die vier Koeffizienten, die Sie zum Erstellen des Spline-Modells verwenden können. Und hier ist die Formel zum Erstellen des Spline-Modells: |
| |
und dann integrieren Sie diese Formel. Sie können dies entweder per Skript tun, ich habe mich für den Formeleditor entschieden. Ich habe hier einfach die Fläche für jeden Kurvenabschnitt bestimmt, indem ich die vorherige Formel manuell integriert habe. |
| |
Wenn ich also diese Flächenausschnitte habe, muss ich nur noch die Flächen addieren, die mich interessieren. So kann ich die Fläche für die Gesamtkurve berechnen. |
| |
Ich kann es auch nur für die Wachstumsphase und nur für die Todesphase tun, und ich habe das hier oben getan |
| |
in meiner Tabellenvariable. Ich habe jetzt also eine Variable für meine gesamte integrierte Differenz, für meine integrierte Differenz nur während der Wachstumsphase und meine integrierte Differenz während der Sterbephase. |
| |
Und im Wesentlichen gehen Sie das einfach durch und machen das für jede einzelne Charge. Hier habe ich das für alle 20 Chargen gemacht, und jetzt können Sie Ihre statistische Prozesskontrolle für diese Variablen durchführen. |
| |
Das sind meine Ansätze zur Prozessüberwachung, zum Prozessverständnis und zur Prozessoptimierung mithilfe des Functional Data Explorers. Ich hoffe, Sie sehen es sich an und es ist auch für Sie ein Kinderspiel. Vielen Dank. |