gum_expanded — SPC uncertainty op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.gum_expanded(table, u='u', sensitivity='sensitivity', dof='dof', level=0.95, correlation=None, estimate=None, lower_bound=None, upper_bound=None) (implementation को सीधे call करना हो तो import spc; spc.gum_expanded(table, u='u', sensitivity='sensitivity', dof='dof', level=0.95, correlation=None, estimate=None, lower_bound=None, upper_bound=None), registry से लेना हो तो opsspc.get("gum_expanded"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

Welch-Satterthwaite की effective degrees of freedom, coverage factor k, और expanded uncertainty U (table)।

nu_eff = u_c^4 / sum_i (c_i u_i)^4 / nu_i U = k u_c, k = t_{p}(floor(nu_eff))

★ gate के रूप में इस्तेमाल होने वाले 3 सटीक गुण हैं:

• केवल 1 component हो तो nu_eff == nu (सटीक)।

• nu_eff >= min_i nu_i हमेशा सही रहता है। प्रमाण: sum u_i^4/nu_i <= (1/nu_min) sum u_i^4 <= (1/nu_min)(sum u_i^2)^2। effective degrees of freedom सबसे छोटे component से कम हो जाएँ तो गणना टूटी हुई है।

• सभी degrees of freedom अनंत हों तो k normal distribution के quantile पर converge होता है (95 % पर 1.959964)।

अनंत degrees of freedom (ज्ञात constant आदि) के लिए numpy.inf डालें।

★★ correlation होने पर degrees of freedom। Welch-Satterthwaite (GUM G.4.1) inputs के independent होने की मान्यता पर आधारित है; correlation terms वाले u_c पर इसे सीधे लगाने से degrees of freedom बढ़ा-चढ़ाकर आती हैं (दो बराबर components, हर एक nu=4, r=+1 पर nu_eff=32 -- budget की कुल degrees of freedom 8 से भी अधिक)। negative correlation में उलटे यह 1 से नीचे गिर जाती है। इसलिए जब *correlation* में कोई non-zero off-diagonal entry हो, तो non-zero correlation से जुड़े components को एक group में मिलाया जाता है, और Welch-Satterthwaite को group variance w_g' R_g w_g (w = c u) और group की degrees of freedom min_{i in g} nu_i से बनाया जाता है::

nu_eff = u_c^4 / sum_g (w_g' R_g w_g)^2 / min_{i in g} nu_i

आधार: एक ही measurements से estimate किए गए correlated components (साझा nu वाला Wishart covariance) के लिए combined variance का estimator ठीक sigma^2 chi^2_nu / nu होता है, इसलिए effective degrees of freedom r पर निर्भर किए बिना nu ही हैं (Willink, *Metrologia* 44:340, 2007 के generalised Welch-Satterthwaite से संगत, जो r=+1 वाले दो बराबर components के लिए nu देता है)। अलग degrees of freedom वाले components correlated हों तो minimum लिया जाता है -- यह इस implementation का safe side (बड़ा k) की ओर झुकने वाला नियम है, standard का formula नहीं। सभी correlations 0 हों (या matrix identity हो) तो हर group में एक component होता है और मान classical formula के बराबर होता है।

संदर्भ (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_light_section_step_weld_floor — py -3.11 examples/poc_light_section_step_weld_floor.py

• 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_monte_carlo · gum_validate

इसी category के (uncertainty)

gum_standard_uncertainty · gum_propagate · gum_monte_carlo · gum_validate


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