gum_validate — SPC uncertainty op

• Datenarten: table × table → table

• Aufruf: import fullseye as fs; fs.ledger.gum_validate(guf, mcm, ndig=2) (die Implementierung direkt: import spc; spc.gum_validate(guf, mcm, ndig=2); aus dem Register: opsspc.get("gum_validate"))

Verwendung

Das Ergebnis des Fortpflanzungsgesetzes mit dem Monte-Carlo-Ergebnis validieren (table).

*guf* ist die Rückgabe von gum_expanded (mit estimate aufgerufen, um ein Intervall zu erzeugen), *mcm* die Rückgabe von gum_monte_carlo. Das Verfahren folgt Abschnitt 8.1.3 der Norm:

1. Die numerische Toleranz delta zu u(y) bilden. Schreibt man z in der Form c x 10^l (c eine ganze Zahl mit *ndig* Stellen), ist delta = 0.5 x 10^l.

2. dlow = |y - U - y_low| und dhigh = |y + U - y_high| bestimmen -- verglichen werden die Endpunkte des Überdeckungsintervalls, nicht U selbst.

3. Sind beide höchstens delta, gilt das Fortpflanzungsgesetz für diese Instanz als validiert.

★ "Es stimmte überein" nicht mit "es hätte übereinstimmen müssen" verwechseln. Dieses op liefert die Übereinstimmung auf *ndig* Stellen betrachtet, nicht Wahrheit. Erhöht man *ndig*, werden dieselben Zahlen zur Abweichung -- gemessen (additives Modell, Rechteck-Eingänge, Endpunktdifferenz 0.04):

ndig=1 -> delta 0.5 übereinstimmend

ndig=2 -> delta 0.05 übereinstimmend (knapp)

ndig=3 -> delta 0.005 abweichend

ndig ist also "bis zu welcher Stelle man etwas behauptet", und verschärft man die Behauptung, fällt das Fortpflanzungsgesetz durch die Validierung. Der Standard 2 ist die obere Seite der Werte, die die Norm als typisch nennt (1 oder 2).

★★ Wenn die Ausgabe symmetrisch ist, ist der Vergleich der Endpunkte grundsätzlich strenger als der Vergleich der Breiten. Die Breite des kürzesten Intervalls W(a) = F(a+w) - F(a) bildet in der Mitte einer symmetrischen Verteilung mit W' = 0 und kleiner Krümmung ein flaches Tal, sodass die Breite genau bestimmt ist, der argmin (die Lage) aber nicht. Gemessen an einem additiven Modell mit 4 Komponenten (normal), je 12 Seeds:

n sd der Halbbreite sd der Intervallmitte Verhältnis

200,000 0.0054 0.0284 5.2

1,000,000 0.0035 0.0146 4.1

5,000,000 0.0011 0.0114 10.0

★ Das gilt nur für symmetrische (oder nahezu symmetrische) Ausgaben. Bei schiefen Ausgaben ist das Optimum eindeutig und stark bestimmt, also konvergiert auch die Lage normal mit 1/sqrt(n) -- misst man auf dieselbe Weise eine Summe von Quadraten (starke Schiefe), ist das Verhältnis sd der Lage / sd der Breite 1.0 (sowohl bei n=200,000 als auch bei n=1,000,000). Im Vergleichsverlust-Beispiel der Norm landet Monte Carlo deshalb glatt auf den veröffentlichten Werten.

Sind dlow / dhigh groß und ist die Ausgabe symmetrisch, ist das daher oft kein Fehler des Fortpflanzungsgesetzes, sondern das Schwanken der Lagebestimmung von Monte Carlo. Selbst bei normalen Eingängen, die theoretisch exakt übereinstimmen müssten, besteht ndig=3 (delta=0.005) bei n=5,000,000 nur 2 von 5 Läufen.

★ Der Intervallschätzer selbst hat keinen Bias. Gegenüber der exakten Lösung für 1 normale Komponente (Halbbreite 1.959964) schrumpft der gemessene Bias von −0.0060 bei n=50,000 auf −0.000008 bei n=5,000,000, und auch die Standardabweichung folgt 1/sqrt(n) (0.0086 → 0.0009).

★ Die Norm empfiehlt, das Validierungs-Monte-Carlo bis zu einer Genauigkeit von delta/5 laufen zu lassen; als Richtwert für die Zahl der Versuche gilt M >= 10^4 / (1 - p) (2 x 10^5 bei 95 %).

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_gauge_rr · msa_bias_linearity · msa_attribute_agreement · gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo

Gleiche Kategorie (uncertainty)

gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo


*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.