msa_gauge_rr — SPC msa op

• 数据种类:table → table

• 调用: import fullseye as fs; fs.ledger.msa_gauge_rr(table, part='part', operator='operator', value='value', tolerance=None, pool_interaction='auto', pool_alpha=0.25)(要直接调用实现,import spc; spc.msa_gauge_rr(table, part='part', operator='operator', value='value', tolerance=None, pool_interaction='auto', pool_alpha=0.25);从台账取用则 opsspc.get("msa_gauge_rr"))

用法

基于方差分析法的量具重复性与再现性(table)。

重复性 EV(同一人重新测量同一物体时的离散)、再现性 AV(换人时的离散。含交互作用)、两者合成的 GRR、部件间 PV、总变差 TV、%GRR = 100 GRR/TV、可区分的类别数 ndc = 1.41 PV/GRR。

传入 *tolerance* 时还返回相对于公差的比 %tolerance = 100 GRR/tolerance。

★方差分量由均衡交叉设计的期望均方求得:

var_repeat = MS_err

var_inter = (MS_inter - MS_err) / r

var_oper = (MS_oper - MS_inter) / (p r)

var_part = (MS_part - MS_inter) / (o r)

★★负的方差分量截为 0,但不隐瞒截断这件事(clamped 列)。期望均方之差是估计量,所以真实分量接近 0 时可能为负。默默设为 0 会被读成"不存在测量者差异",正确的读法是"无法估计"。而且这并非罕见的边界情况 —— 部件 60 x 测量者 4 x 重复 5、测量者差异 严格为 0 的合成数据用 40 个种子运行,有 31 个的再现性分量为负(实测 2026-09-23)。不申报截断的实现会在这 31 个中全部断言 "没有差异"。

★估计量的波动也不隐瞒。同样 60x4x5 下,真值 0.4 的重复性在 40 个种子上得到均值 0.39710、标准差 0.00788 —— 与理论的 sigma/sqrt(2 df) (df = 960 时为 0.00913)同一数量级,不能以 1 % 的精度相信 1 个种子。再现性更差,它是从 4 名测量者(自由度 3)估计的,因此相对真值 0.5 标准差为 0.159 —— 数量级对上就算不错的量。

★★保留交互作用还是并入误差,答案会变。标准的步骤是 "交互作用的 F 检验不显著时,去掉交互作用项重新计算", *pool_interaction* 就是这一选择:

• "auto"(默认)—— 交互作用的 p 值超过 *pool_alpha*(默认 0.25)时合并。

★★0.25 不是标准明确写出的数。参考手册正文所说的只是 "为降低漏掉交互作用的风险,应选择较高的显著性水平"这一定性的指示, 没有写数值。0.25 是软件方面惯例的多数派, 另一种实现以 0.05 为默认。把 α 调大会使 p > alpha 更难成立 = 更容易保留交互作用,所以 0.25 是忠于正文方针的(保守的)一侧。另一方面,标准的 worked example 表在脚注中写着"以 α = 0.05 判定",所以 声称再现该表的检验应明确传入 pool_alpha=0.05 (默认值的问题与再现公开例题的条件是两回事)。此例题中 F = 0.434 在任一 α 下都不显著,结果不变,但在边界附近的数据上默认值的差异会使 EV / AV 变动几 % —— 实测中模型切换使 EV 变动了 7.3 %。

• False —— 始终保留交互作用。

• True —— 始终合并。

返回的 interaction_pooled / interaction_p / pool_alpha 中必定记录用了哪一种。若默默切换,同一工具对同一工序会返回不同的数字, 而其原因在输出中无处可寻。

★实测(标准的例题,10 部件 x 3 测量者 x 3 次共 90 点): 保留交互作用时 EV = 0.214435,合并时 EV = 0.199933 —— 相差 7.3 %。选择由 p 值的阈值决定,所以数据稍有变动模型就会跳变。此例题中 F = 0.4337 / p = 0.9741,交互作用完全没有作用,因此标准以合并一侧作为公开值(本实现以 3e-7 再现该值)。

★可作为门禁的严格关系: TV^2 == GRR^2 + PV^2 与 GRR^2 == EV^2 + AV^2 (即定义本身)、贡献率合计 100 %,以及测量者为 1 人时的 EV 严格等于各格子样本方差的平均(numpy 成为真值)。

参考(示例数据、文献)

• 示例数据目录(下载 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_bias_linearity · msa_attribute_agreement · gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo · gum_validate

同类别(msa)

msa_anova_table · msa_bias_linearity · msa_attribute_agreement


*Provenance: spc.py — SPC 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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