gum_validate — SPC uncertainty op

• Data kinds: table × table → table

• Call: import fullseye as fs; fs.ledger.gum_validate(guf, mcm, ndig=2) (implementation को सीधे call करना हो तो import spc; spc.gum_validate(guf, mcm, ndig=2), registry से लेना हो तो opsspc.get("gum_validate"))

उपयोग

Monte Carlo के परिणाम से propagation law के परिणाम को validate करता है (table)।

*guf* gum_expanded का return है (estimate देकर interval निकाला गया), *mcm* gum_monte_carlo का return है। प्रक्रिया standard के 8.1.3 के अनुसार है:

1. u(y) के अनुरूप numerical tolerance delta बनाएँ। z को c x 10^l (c *ndig* अंकों का integer) के रूप में लिखने पर delta = 0.5 x 10^l।

2. dlow = |y - U - y_low| और dhigh = |y + U - y_high| निकालें -- तुलना coverage interval के endpoint की होती है, U की नहीं।

3. दोनों delta से कम या बराबर हों तो उस instance में propagation law को validated माना जाता है।

★ "मेल खाया" और "मेल खाना चाहिए था" को आपस में न मिलाएँ। यह op जो लौटाता है वह *ndig* अंकों पर देखा गया मेल है, सच-झूठ नहीं। *ndig* बढ़ाने पर वही अंक मेल नहीं खाते -- measured (additive model, rectangular input, endpoint अंतर 0.04):

ndig=1 -> delta 0.5 मेल

ndig=2 -> delta 0.05 मेल (बाल-बाल)

ndig=3 -> delta 0.005 मेल नहीं

यानी ndig "कितने अंकों तक दावा करते हैं" है, और दावा मज़बूत करने पर propagation law validation में फ़ेल होता है। default 2 उन मानों (1 या 2) का ऊपरी पक्ष है जिन्हें standard typical बताता है।

★★ output symmetric होने पर endpoint से तुलना करना width से तुलना करने से मूल रूप से कड़ा है। सबसे छोटे interval की width W(a) = F(a+w) - F(a) symmetric distribution के बीच में W' = 0 और छोटी curvature वाली सपाट valley बन जाती है, इसलिए width सटीक तय होती है पर argmin (स्थान) तय नहीं होता। 4 component वाले additive model (normal) पर 12-12 seed से measured:

n half-width का sd interval केंद्र का sd अनुपात

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

★ यह केवल symmetric (या लगभग symmetric) output की बात है। skewed output में optimum अद्वितीय और मज़बूती से तय होता है, इसलिए स्थान भी सामान्य रूप से 1/sqrt(n) से converge होता है -- उसी तरीक़े से squares के योग (तेज़ skew) को मापने पर स्थान sd / width sd का अनुपात 1.0 है (n=200,000 पर भी और n=1,000,000 पर भी)। standard के comparison loss example में Monte Carlo published value पर सीधे बैठता है, इसका कारण यही है।

इसलिए dlow / dhigh बड़े हों और output symmetric हो, तो अक्सर यह propagation law की ग़लती नहीं बल्कि Monte Carlo के स्थान-निर्धारण का उतार-चढ़ाव होता है। सिद्धांत रूप से बिल्कुल मेल खाने वाले normal input में भी ndig=3 (delta=0.005) n=5,000,000 पर 5 में से केवल 2 बार पास होता है।

★ interval estimator में स्वयं कोई bias नहीं है। 1 component, normal के सटीक हल (half-width 1.959964) के मुक़ाबले measured bias n=50,000 पर −0.0060 से n=5,000,000 पर −0.000008 तक घटता है, और standard deviation भी 1/sqrt(n) का पालन करता है (0.0086 → 0.0009)।

★ standard की सिफ़ारिश है कि validation वाला Monte Carlo delta/5 की precision तक चलाया जाए, और trial की संख्या का अनुमान M >= 10^4 / (1 - p) है (95 % के लिए 2 x 10^5)।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_measurement_system_analysis — py -3.11 examples/poc_measurement_system_analysis.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

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

इसी category के (uncertainty)

gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo


*Provenance: spc.py — SPC operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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