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.