gum_monte_carlo — SPC uncertainty op

• 데이터 종류: table → table

• 호출: import fullseye as fs; fs.ledger.gum_monte_carlo(table, u='u', sensitivity='sensitivity', n=200000, seed=0, level=0.95, correlation=None, distribution=None, value=None, power=None)(구현을 직접 호출하려면 import spc; spc.gum_monte_carlo(table, u='u', sensitivity='sensitivity', n=200000, seed=0, level=0.95, correlation=None, distribution=None, value=None, power=None), 원장에서 가져오려면 opsspc.get("gum_monte_carlo"))

사용법

GUM 보충문서 1(JCGM 101)의 몬테카를로 전파 (`table`).

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

各入力量を分布から引いて `y = sum_i c_i x_i` を作り、標本から標準不確かさと

最短の包含区間を返す。既定は正規分布で、*distribution* に列名を渡すと

`gum_standard_uncertainty` と同じ形の名前(rectangular / triangular / ...)を

成分ごとに指定できる(半幅ではなく標準不確かさを持つ分布を作る)。

*value* と *power* に列名を渡すと 冪モデル を回す:

y = sum_i c_i (x_i + e_i)^{p_i}

(`e_i が分布から引いた揺らぎ。既定は x_i = 0 / p_i = 1` = 線形。)

冪までに絞ったのは、台帳に載る op は宣言的でなければならず、任意の関数を

受け取れないため —— それでも規格の非線形の例(二乗の和)はこれで表現でき、

伝播則が破綻する場面を再現できる。

★これは `gum_propagate` の独立な検算である。伝播則は偏微分と分散の代数、

こちらは乱数の標本 —— 導出も実装も別なので、線形モデルでは

`u_mc -> u_c`(1/sqrt(n) の速さ)に近づくはずで、近づかなければどちらかが

壊れている。相関は Cholesky 分解で入れるので、伝播則の相関項とは別の経路を通る。

★★非線形では両者が食い違うのが正しい。規格の例(比較損失

`dY = X1^2 + X2^2、各 u = 0.005)を x1 = x2 = 0` で回すと:

伝播則 感度 `c_i = 2 x_i が**両方 0** になるので u_c = 0`、区間 [0, 0]

モンテカルロ `dy = 50e-6、u = 50e-6、区間 [0, 150e-6]`

伝播則は「不確かさゼロ」と答える —— これは実装の誤りではなく、**1 次近似が

極値で情報を失う**という手法そのものの限界。こういう場面があるから補遺 1 の

モンテカルロが要る。`x1 = 0.010 では伝播則の区間が [-96, +296]e-6` と

負の損失を含み(物理的にありえない)、`x1 = 0.050` まで離れると

`[1520, 3480] 対 [1590, 3543]` と近づく。

★★**正規分布でない入力では、包含区間は `k u_c` と一致しない**。矩形分布を

足し合わせると中心極限定理で正規に近づくが、成分が 1 つだけなら最短 95 % 区間の

半幅は **`0.95 a**(支持の端 a` ではない —— 95 % ぶんの幅しか要らない)で、

`k u = 1.96 a/sqrt(3) = 1.1316 a` より狭い。比は

`1.959964/(sqrt(3) x 0.95) = 1.1911` という閉形式で、実測 1.1914。

これは欠陥ではなく伝播則が分布の形を捨てていることの現れなので、両方返して

読み手に見せる(この 0.95 を最初 `a` と思い込んで門を誤らせた)。

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_measurement_system_analysis — py -3.11 examples/poc_measurement_system_analysis.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

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

같은 카테고리(uncertainty)

gum_standard_uncertainty · gum_propagate · gum_expanded · gum_validate


*Provenance: spc.py — SPC 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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