msa_gauge_rr — SPC msa op

• Datenarten: table → table

• Aufruf: import fullseye as fs; fs.ledger.msa_gauge_rr(table, part='part', operator='operator', value='value', tolerance=None, pool_interaction='auto', pool_alpha=0.25) (die Implementierung direkt: import spc; spc.msa_gauge_rr(table, part='part', operator='operator', value='value', tolerance=None, pool_interaction='auto', pool_alpha=0.25); aus dem Register: opsspc.get("msa_gauge_rr"))

Verwendung

Wiederhol- und Vergleichpräzision eines Messmittels nach dem Varianzanalyseverfahren (table).

Wiederholpräzision EV (die Streuung, wenn dieselbe Person dasselbe Teil erneut misst), Vergleichspräzision AV (die Streuung, wenn die Person wechselt; enthält die Wechselwirkung), deren Kombination GRR, Teil-zu-Teil PV, Gesamtstreuung TV, %GRR = 100 GRR/TV und die Anzahl unterscheidbarer Klassen ndc = 1.41 PV/GRR.

Wird *tolerance* übergeben, kommt auch das Verhältnis zur Toleranz %tolerance = 100 GRR/tolerance zurück.

★ Die Varianzkomponenten stammen aus den erwarteten mittleren Quadraten eines balancierten gekreuzten Designs:

var_repeat = MS_err

var_inter = (MS_inter - MS_err) / r

var_oper = (MS_oper - MS_inter) / (p r)

var_part = (MS_part - MS_inter) / (o r)

★★ Negative Varianzkomponenten werden auf 0 gekappt, aber das Kappen wird nicht verborgen (Spalte clamped). Eine Differenz erwarteter mittlerer Quadrate ist ein Schätzer, kann also negativ werden, wenn die wahre Komponente nahe 0 liegt. Stillschweigend 0 zu setzen liest sich als "es gibt keinen Prüferunterschied", richtig ist aber "es ließ sich nicht schätzen". Und das ist kein seltener Randfall -- synthetische Daten mit 60 Teilen x 4 Prüfern x 5 Wiederholungen und einem Prüferunterschied von exakt 0 über 40 Seeds ergeben in 31 Seeds eine negative Komponente der Vergleichspräzision (gemessen 2026-09-23). Eine Implementierung, die das Kappen nicht meldet, behauptet in allen 31 "kein Unterschied" mit voller Bestimmtheit.

★ Auch die Schwankung des Schätzers wird nicht verborgen. Beim selben 60x4x5 ergibt eine Wiederholpräzision mit Ground Truth 0.4 über 40 Seeds Mittelwert 0.39710 und Standardabweichung 0.00788 -- dieselbe Größenordnung wie das theoretische sigma/sqrt(2 df) (0.00913 bei df = 960), also nie 1 Seed auf 1 % Genauigkeit vertrauen. Die Vergleichspräzision ist schlechter: Sie wird aus 4 Prüfern (3 Freiheitsgrade) geschätzt, gegenüber der Ground Truth 0.5 liegt die Standardabweichung bei 0.159 -- eine Größe, bei der schon die richtige Größenordnung gut ist.

★★ Die Antwort ändert sich, je nachdem ob die Wechselwirkung behalten oder in den Fehler gepoolt wird. Das Verfahren der Norm lautet "ist der F-Test der Wechselwirkung nicht signifikant, den Wechselwirkungsterm weglassen und neu rechnen", und *pool_interaction* ist diese Wahl:

• "auto" (Standard) -- wenn der p-Wert der Wechselwirkung *pool_alpha* (Standard 0.25) überschreitet, wird gepoolt.

★★ 0.25 ist keine in der Norm genannte Zahl. Der Text des Referenzhandbuchs gibt nur die qualitative Anweisung "ein hohes Signifikanzniveau wählen, um das Risiko zu senken, die Wechselwirkung zu übersehen" und nennt keinen Zahlenwert. 0.25 ist die Mehrheitskonvention auf Softwareseite, und eine andere Implementierung nimmt 0.05 als Standard. Ein größeres α macht p > alpha seltener = die Wechselwirkung bleibt leichter erhalten, also ist 0.25 die dem Text treue (konservative) Seite. Andererseits steht in der Fußnote der worked-example-Tabelle der Norm "beurteilt bei α = 0.05", daher sollte eine Prüfung, die diese Tabelle zu reproduzieren beansprucht, pool_alpha=0.05 explizit übergeben (die Frage des Standardwerts und die Reproduktionsbedingungen eines veröffentlichten Beispiels sind zwei Dinge). In diesem Beispiel ist F = 0.434 bei beiden α nicht signifikant, das Ergebnis ändert sich also nicht, aber bei Daten nahe der Grenze verschiebt der unterschiedliche Standard EV / AV um einige % -- gemessen verschob der Modellwechsel EV um 7.3 %.

• False -- behält die Wechselwirkung immer.

• True -- poolt immer.

Die Rückgaben interaction_pooled / interaction_p / pool_alpha halten immer fest, welche Variante verwendet wurde. Ein stilles Umschalten ließe dasselbe Werkzeug für denselben Prozess andere Zahlen liefern, ohne dass der Grund irgendwo in der Ausgabe stünde.

★ Gemessen (Beispiel der Norm, 90 Punkte aus 10 Teilen x 3 Prüfern x 3 Durchgängen): mit behaltener Wechselwirkung EV = 0.214435, gepoolt EV = 0.199933 -- 7.3 % Unterschied. Die Wahl hängt an einer Schwelle des p-Werts, also springt das Modell, wenn sich die Daten leicht bewegen. In diesem Beispiel ist F = 0.4337 / p = 0.9741, die Wechselwirkung wirkt also überhaupt nicht, daher nimmt die Norm die gepoolte Seite als veröffentlichten Wert (diese Implementierung reproduziert ihn auf 3e-7).

★ Exakte Beziehungen, die als Gate taugen: TV^2 == GRR^2 + PV^2 und GRR^2 == EV^2 + AV^2 (die Definitionen selbst), Beitragsanteile summieren sich zu 100 %, und bei 1 Prüfer stimmt EV exakt mit dem Mittel der Stichprobenvarianzen je Zelle überein (numpy wird zur Ground Truth).

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_measurement_system_analysis — py -3.11 examples/poc_measurement_system_analysis.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

msa_anova_table · msa_bias_linearity · msa_attribute_agreement · gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo · gum_validate

Gleiche Kategorie (msa)

msa_anova_table · msa_bias_linearity · msa_attribute_agreement


*Provenance: spc.py — SPC Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.