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,導致門檻出錯)。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.