1 Punkte von GN⁺ 2025-11-28 | 1 Kommentare | Auf WhatsApp teilen
  • Einführung, wie sich statistische Prozesskontrolle (SPC) in Python umsetzen lässt, um zeitliche Schwankungen der Produktqualität und Eingriffszeitpunkte zu erkennen
  • Nutzung von pandas, plotnine und scipy für Datenverarbeitung, Visualisierung und statistische Berechnungen
  • Anhand von Onsen-Daten aus der japanischen Präfektur Kagoshima werden Temperatur, pH-Wert und Schwefelgehalt als Qualitätskennzahlen analysiert
  • Subgruppenstatistiken und Regelkarten (X-bar-, S- und Moving-Range-Diagramme) zur Bewertung der Prozessstabilität und zur Erkennung von Ausreißern
  • Darstellung eines datenbasierten Verfahrens, um den Prozesszustand visuell zu diagnostizieren und Verbesserungsentscheidungen zu unterstützen

Überblick über statistische Prozesskontrolle mit Python

  • Statistische Prozesskontrolle (SPC) ist ein statistischer Ansatz, um Schwankungen der Produktqualität zu messen und den Zeitpunkt für Eingriffe zu bestimmen
    • In Python werden mit plotnine Visualisierungen erstellt, mit pandas Daten manipuliert und mit scipy statistische Berechnungen durchgeführt
  • In der Praxisübung werden SPC-Konzepte anhand eines Beispiels zur Qualitätskontrolle von Onsen-Wasser angewendet
    • Temperatur, pH-Wert und Schwefelgehalt der Quelle werden als zentrale Qualitätsindikatoren festgelegt

Pakete und benutzerdefinierte Funktionen

  • Benötigte Pakete: pandas, plotnine, scipy
  • Benutzerdefinierte Funktionen werden aus dem Verzeichnis functions/ des GitHub-Repositoriums geladen
    • functions_distributions.py: Vertrauens- und Verteilungsfunktionen
    • functions_process_control.py: Funktionen für die Prozesskontrolle
  • Mit sys.path.append('functions') wird das Funktionsverzeichnis dem Python-Pfad hinzugefügt und anschließend import verwendet

Fallbeispiel: Qualitätskontrolle japanischer Onsen

  • Japanische Onsen sind eine zentrale Tourismusressource der regionalen Wirtschaft; Temperatur, pH-Wert und Schwefelgehalt dienen als Qualitätsstandards
    • Temperaturkriterien: Extra Hot(>42°C), Hot(41~34°C), Warm(33~25°C)
    • pH-Kriterien: Acidic(pH<3) bis Alkaline(pH>8.5)
    • Schwefelkriterium: Ab 1mg/kg wird die Quelle als Schwefel-Onsen klassifiziert
  • Zur Analyse der Qualitätsschwankungen wurden Onsen-Daten aus der Präfektur Kagoshima über 15 Monate hinweg monatlich 20-mal beprobt

Laden der Daten und deskriptive Statistik

  • Die Datei onsen.csv wird geladen und die Daten zu Temperatur, pH-Wert und Schwefelgehalt überprüft
  • Mit der Funktion describe() werden Mittelwert(mean) und Standardabweichung(sd) berechnet
    • Beispielergebnis: Mittelwert 44.85°C, Standardabweichung 1.99°C
  • Diese Kennzahlen sind grundlegende Indikatoren, um Lage und Streuung des Prozesses zu erfassen

Visualisierung des Prozessüberblicks

  • Mit plotnine wird die zeitliche Temperaturverteilung als Boxplot und Punktverteilung visualisiert
    • Die Mittellinie zeigt den Gesamtmittelwert; Verteilungen je Zeitpunkt lassen sich miteinander vergleichen
  • Ein Histogramm der gesamten Temperaturverteilung zeigt Prozesszentrum und Schwankungsbreite

Berechnung von Subgruppenstatistiken

  • Die einzelnen Zeitpunkte (time) werden zu Subgruppen zusammengefasst, um Mittelwert (xbar), Spannweite (r) und Standardabweichung (sd) zu berechnen
    • Beispiel: Mittelwert der ersten Gruppe 44.635°C, Spannweite 4.2°C
  • Zur Festlegung der oberen und unteren Grenzen (±3σ) werden σₛ (Standardabweichung innerhalb der Subgruppe) und der Standardfehler (se) berechnet
  • Dadurch lässt sich die zeitliche Stabilität des Prozesses bewerten

Gesamtstatistiken des Prozesses

  • Durch Zusammenführung aller Gruppen werden Gesamtmittelwert (xbbar), mittlere Spannweite (rbar) und mittlere Standardabweichung (sdbar) berechnet
    • Beispiel: xbbar 44.85, rbar 7.26, sdbar 1.94
  • Im Vergleich mit σₜ (Gesamtstandardabweichung) lassen sich Schwankungen innerhalb und zwischen den Prozessen erkennen

Regelkarten (X-bar- und S-Diagramm)

  • X-bar-Diagramm: Die Mittelwerte jeder Subgruppe werden auf einer Zeitachse dargestellt
    • Mittellinie: Gesamtmittelwert, obere und untere Grenze: ±3σ
    • Der schattierte Bereich zeigt den Bereich der Eingriffsgrenzen
  • Wenn Werte die Eingriffsgrenzen überschreiten oder nichtzufällige Muster auftreten, besteht die Möglichkeit einer Prozessanomalie

Lernkontrolle: Visualisierung des pH-Prozesses

  • Mit derselben Funktion ggprocess() wird ein Prozessüberblicksdiagramm für die pH-Daten erzeugt
    • Mittellinie und Verteilungen je Zeitpunkt lassen sich visuell vergleichen

Moving-Range-Diagramm (n=1)

  • Liegen nur einzelne Messwerte vor, wird der Moving Range verwendet
    • Dabei wird die absolute Differenz zwischen aufeinanderfolgenden Messwerten berechnet, um die Variabilität zu schätzen
  • Mittlere gleitende Spannweite (mrbar), Obergrenze (upper) und Untergrenze (lower=0) werden berechnet
  • Das Moving-Range-Diagramm ist nützlich zur Überwachung von Prozessschwankungen auf Basis einzelner Datenpunkte

Fazit

  • Mit Python lassen sich Prozessüberblick, Subgruppenstatistiken und Moving-Range-Diagramme erstellen
  • Mit SPC-Werkzeugen kann die Stabilität eines Prozesses und das Vorliegen von Anomalien visuell diagnostiziert werden
  • Solche Analysen lassen sich für datenbasierte Qualitätsverbesserung und Entscheidungsfindung nutzen

1 Kommentare

 
GN⁺ 2025-11-28
Hacker-News-Kommentare
  • Das erinnert mich an ein früheres Projekt
    Wir haben bei einem FANG-Unternehmen erfolgreich Tausende komplexe Deep-Learning-basierte Zeitreihen-Anomalieerkenner durch statistische Prozesskontrollmodelle (nichtparametrisch, semiparametrisch) ersetzt
    Die neuen Modelle hatten 3 bis 4 Größenordnungen weniger Trainingsparameter und waren so einfach, dass ein Team von 3 bis 4 Personen Tausende von Streams verwalten konnte
    Die Deep-Learning-Modelle waren beim Debugging und in der Interpretation intransparent, sodass sie viel zu schwer zu betreiben waren
    Für kleine Teams würde ich weiterhin einen statistikbasierten Ansatz nachdrücklich empfehlen
    Aus politischen Gründen ist so eine Entscheidung karrieretechnisch aber vielleicht nicht die beste Wahl. Leute, die große Wetten eingegangen sind, mögen es nicht, wenn Gegenbeweise auftauchen

    • Vielen Dank, dass du so eine wirklich tolle Erfahrung geteilt hast
      Genau deshalb bin ich gegenüber der heutigen AI-Hype-Stimmung skeptisch
      In vielen Fällen sind bestehende klassische Methoden viel stabiler und effizienter, deshalb verstehe ich nicht, warum Unternehmen unbedingt komplexe und instabile Verfahren wählen
    • Mein erster Karrierewechsel war ähnlich
      Das Unternehmen prahlte mit schicken ML-Modellen für Konferenzen, aber die Leute im operativen Betrieb waren wegen mangelnder Genauigkeit und Interpretierbarkeit sehr unzufrieden
      Also habe ich den Code auf Basis einfacher mathematischer Regeln neu geschrieben, die die Betreiber tatsächlich nutzten, und deutlich bessere Ergebnisse erzielt
    • Als Machine-Vision-Ingenieur in der Halbleiterbranche habe ich viel Hype um Deep Learning und AI gesehen
      Für OCR passt es gut, aber bei Klassifikationsaufgaben ist es weniger effektiv
      Wenn man sich auf gute Beleuchtung und traditionelle Computer-Vision-Techniken konzentriert, bekommt man oft bessere Ergebnisse
      Die politischen Probleme bei der Einführung neuer Technik kann ich auch nachvollziehen. Deshalb schlage ich meist einen hybriden Ansatz vor, der Deep Learning und klassische Vision kombiniert
    • Das Verwirrende an Deep Learning ist, dass es zu wenig Signal zum Lernen gibt, aber viel zu viele Parameter
      Die meisten Parameter dürften instabil sein oder miteinander korrelieren
    • Ich frage mich, ob ihr auch Dinge wie Matrix Profile verwendet habt. Falls ja, würde mich interessieren, ob ihr das ebenfalls ersetzt habt
  • Ich habe früher ein Lean Six Sigma Green Belt gemacht und mit Minitab ein statistisches Prozesskontrollprojekt für Backoffice-Prozesse einer Investmentbank durchgeführt
    Heute scheint sich niemand mehr an Minitab zu erinnern. Alle verwenden nur noch Python

    • Ich habe um 2018 herum auch mit Minitab meinen Six Sigma Green Belt gemacht
      Es wird immer noch aktualisiert und hat auch ein Python-Interface → mtbpy package
    • Das frühere Minitab hatte wirklich eine hervorragende SPC-Toolbox
      Open-Source-Tools unterstützten nur x-bar/S/R, und bei fortgeschrittenen Funktionen wie multivariater Analyse fehlte es ihnen
    • Ich habe mal in einem Unternehmen gearbeitet, das JMP verwendet hat. Bis heute habe ich daran warme Erinnerungen
    • Ich erinnere mich nur daran, dass es in unserer Universitätsbibliothek ein Minitab-Handbuch gab
  • Ich habe vor ein paar Jahren einen Praxisleitfaden für SPC geschrieben
    Könnte hilfreich sein → Statistical Process Control: A Practitioner’s Guide

  • Bei kleinen Datensätzen wie klinischen Daten ist klassische Statistik nach wie vor zentral
    Das Sammeln und Abgleichen von Metadaten ist schwierig, und bei der Erforschung seltener Krankheiten sind selbst Machine Learning oder Regression oft schwer einsetzbar

  • Daten aus der realen Welt sind nie sauber
    Die meiste Zeit geht für Datenqualitätsmanagement drauf
    Ausreißer können auf Messfehler oder Prozessänderungen zurückgehen, und um das zu verstehen, braucht man Intuition für den Prozess selbst
    Deshalb sind ausgereifte Werkzeuge wichtig, mit denen sich schnell visualisieren und explorieren lässt
    SPC-Cpk-Diagramme direkt per Code zu erstellen, ist ineffizient

  • SPC ist wirklich ein großartiges Werkzeug
    Es ist viel einfacher und funktioniert viel besser als viele andere komplexe Toolsets

  • Es gibt viele Tippfehler

  • Mir gefallen das Design und die Atmosphäre der Seite sehr