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]

전파 법칙은 "불확도 0"이라고 답한다 —— 이는 구현의 오류가 아니라 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.