gum_validate — SPC uncertainty op

• Data kinds: table × table → table

• Call: import fullseye as fs; fs.ledger.gum_validate(guf, mcm, ndig=2) (to call the implementation directly, import spc; spc.gum_validate(guf, mcm, ndig=2); from the registry, opsspc.get("gum_validate"))

Usage

Validate the propagation-law result against the Monte Carlo result (`table`).

> The detailed description below is the original text — the summary and the headings are translated.

*guf* は `gum_expanded(estimate` を渡して区間を出したもの)、*mcm* は

`gum_monte_carlo` の返り。手続きは規格 8.1.3 のとおり:

1. `u(y) に対応する**数値許容差** delta を作る。z` を

`c x 10^l(c は *ndig* 桁の整数)の形に書いたとき delta = 0.5 x 10^l`。

2. `dlow = |y - U - y_low| と dhigh = |y + U - y_high|` を求める

—— 比べるのはカバレッジ区間の端点であって `U` そのものではない。

3. 両方が `delta` 以下なら、そのインスタンスで伝播則は検証されたとする。

★「一致した」と「一致すべきだった」を混同しない。この op が返すのは

*ndig* 桁で見たときの一致であって、真偽ではない。*ndig* を上げれば同じ数字でも

不一致になる —— 実測(加法モデル、矩形入力、端点差 0.04):

ndig=1 -> delta 0.5 一致

ndig=2 -> delta 0.05 一致(きわどい)

ndig=3 -> delta 0.005 不一致

つまり ndig は「どこまでの桁を主張するか」であり、**主張を強くすれば伝播則は

検証に落ちる**。既定の 2 は規格が典型と述べる値(1 か 2)の上側。

★★出力が対称なとき、端点で比べるのは幅で比べるより本質的に厳しい。最短区間の

幅 `W(a) = F(a+w) - F(a) は対称分布の中央で W' = 0` かつ曲率が小さい

平らな谷になるので、幅は精度よく決まるのに `argmin`(位置)が定まらない。

4 成分の加法モデル(正規)で種 12 本ずつ測った実測:

n 半幅の標準偏差 区間の中心の標準偏差 比

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

★これは対称(または近対称)の出力に限った話である。歪んだ出力では最適点が

一意に強く決まるので位置も普通に `1/sqrt(n)` で収束する —— 同じ測り方で

二乗の和(強い歪み)を測ると 位置 sd / 幅 sd の比は 1.0(n=200,000 でも

n=1,000,000 でも)。規格の比較損失の例でモンテカルロが公表値に素直に乗るのは

そのため。

したがって `dlow / dhigh` が大きいとき、出力が対称ならそれは伝播則の

誤りではなくモンテカルロの位置決めの揺れであることが多い。理論上は厳密に

一致するはずの正規入力でも `ndig=3(delta=0.005`)は n=5,000,000 で

5 本中 2 本しか通らない。

★区間の推定器そのものに偏りは無い。1 成分・正規の厳密解(半幅 1.959964)に対し

実測の偏りは n=50,000 で −0.0060、n=5,000,000 で −0.000008 まで縮み、

標準偏差も `1/sqrt(n)` に従う(0.0086 → 0.0009)。

★検証用のモンテカルロは `delta/5` の精度まで回すことが規格の推奨で、試行数の

目安は `M >= 10^4 / (1 - p)`(95 % なら 2 x 10^5)。

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_measurement_system_analysis — py -3.11 examples/poc_measurement_system_analysis.py

Ops the type connects to (they accept table as input)

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

Same category (uncertainty)

gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo


*Provenance: spc.py — SPC operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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