手算MSA重复性与再现性
苏州中迪企管
2025年09月10日 13:36

提醒:

本文不太适合扫盲入门,是需要一定基础的,默认已经对MSA基本概念和基本流程有认识。手算旨在详细展示MSA中方差分量分析法计算重复性与再现性的相关逻辑与细节计算,让读者清晰了解全部的逻辑推导过程,从而掌握重复性再现性的前提条件而应对不同的变化。这是我学习詹老师的MSA实战班的重复再现性章节的读书笔记,有理解不到位的地方真心希望不吝赐教批评斧正。

目的:

通过设计的试验(测量),收集数据并且使用统计方法将总的变异分解为几个独立的可量化的部分,并且评价由测量系统变异带来的影响与零件本身变异的影响(或公差带)的比值,比值足够小说明测量系统变异带来的影响较小。

变异来源:

1,产品变差(Part Variation):这对于测量系统来说是“好的”变异,因为我们希望通过测量系统来精准的识别它;

2,测量变差(Measurement System Variation):这对于测量系统来说是“坏的”变异,因为由它混杂在测量结果中,会导致显示结果不正确,大于产品的实际变异,导致在SPC评价时得到本不属于产品的更恶劣的评价结果。因此我们希望它越小越好,MSA中重复性与再现性的评价方法目的就是要“摘开”这个变异的影响,并定量的表达出来。测量变差又分为两部分:

①重复性(Repeatbility):测量设备的固有误差,或者叫做“组内变差”,只体现测量设备本身测量这种产品时的水平,如设备传感器,设备内部转换通道等;

②再现性(Reproducibility):测量系统中除却重复性之外的所有变差,如不同的人,不同的设备,不同的测量环境等;再现性又可以分为2部分:

a)“测量员”:注意这里的测量员并不一定指的人,是上述提到的测量系统除却重复性之外一切的影响;

b)“测量员”与产品零件的交互作用:同样的,测量员不只是指的人,指的是“某人”测量固定产品是总是产生一种不完全随机的偏向一边的结果。举个例子就是:某人测量一个产品内径的时候总是喜欢用很大的力量。

交叉测量设计:

我们的目的就是要“摘开”这几种变差,给他们起一些名字:

1,产品引起的随机变差Part

2,重复性引起的随机变差(系统随机误差)Error

3,测量员引起的随机变差Operator

4,测量员与产品交互作用引起的随机变差Operator x Part

步骤如下:

1,取样:

取n个样品(一般10个),理论上需要取到能够代表未来量产真实波动的样品,意思就是样品方差等于总体方差,但这是个悖论:测量系统没信心何来的准确数据评价方差,还没有生产产品呢何来样品让你去获取总体方差。这里有几个办法,如获取相似件历史方差,用过程能力阈值结合公差带去计算等,具体的破解方式参考詹老师的“MSA实战班”,有非常合理并且可操作的方法,全网独一份;

2,安排测量员:

k个测量员(一般3个),一定是将来去实操的测量员,因为他们是测量系统的一部分,不能评价A,但是执行换B,这样所有的分析将失去意义;

3,重复测量次数:

r次重复测量(一般每个零件测3次),注意保持随机,数据独立就行,简单的说,独立性就是测量数据之间不发生相互影响。测量员不能认为前一次测量数据偏小,而认为第二次测量的结果要无限接近第一次的结果。;

4,打乱顺序测量:

这步没啥,就是要数据独立,不独立就不能用统计的方法,就不能用服从大自然规律的数字规则,这步其实非常重要,不能偷懒;

5,收集数据:

规划的数据点位必须要完整的收集,因为如果数据不完整就是不平衡数据,统计方法将会完全不同,因为默认的可以相互抵消的随机变量无法抵消了,这一点也尤其重要;

6,统计分析计算:

本文重点,需要建立数学模型后求解;

以上规划中就包含了我们的目的,将所有的变差引起的随机变量囊括进来。

我已经获取了最后的如上表的测量结果(为了手算简便我只用了3x2x2的矩阵表,但是计算逻辑与n*k*r的完全相同)。

先简单感受一下:

我们再重申一遍“根本目标”,就是要用一种方法将上述的几个随机效应区分开,并且定量的表达出来,这样我们就可以根据这些数字来轻松的看出来谁的影响更大,但是这几个随机效应都隐藏在最终的读数里,且毫无疑问,我们最终是希望来自于测量系统的随机效应很小,小到什么程度呢?有两个选择,一是跟一同抽样的产品的变差比较,叫做“过程比%GRR”,如果这个占比很小我们认为工程应用上完全可以忽略掉测量系统的随机效应;另外一个选择是跟产品的公差带比较,叫做“公差比%P/T”(暂时以双边公差为理解,单边公差理论上不能计算,具体如何操作也参见詹老师的MSA实战(详见文末),有完整的论述,囊括各种情况的做法)。

1,以第一行为例,张三测量产品A两次,结果差了0.05mm,这就是重复性的概念;

2,以第一列为例,张三和李四测量不同零件获得的均值差了0.03mm,这就是再现性的概念;

3,以3,6行与4,7为例,所有的零件A与零件B的测量结果分别取平均,差了0.39mm,这就是零件变差的概念;

细心的小伙伴可能发现了,数据没有全部都用上啊,例如张三测了两次产品A相差的是0.05mm,但是张三测量B产品两次相差的却是0,这用哪个数字合适啊?没错,我们需要更为严谨的数学方法去统计和计算,并且要充分利用所有的数据,这就是方差分量法,具体过程如下;

建立数学模型:

建立一个数学模型将以上数据用上,并且建立方程求解

这个方程含义特别简单,就是单次的值是由“均值”,“测量员引起的随机变差”,“产品引起的随机变差”,“重复性引起的随机变差(系统随机误差)”与“测量员与产品交互作用引起的随机变差”构成的,很好理解。

建立期望均方EMS(Expected Mean Square)

我们建立的上述数学模型,那么需要求解它,就需要利用随机误差的特性,建立“均方MS”与“期望均方EMS”的方程,即“均方”是利用我们观测到的数据计算出来,然后建立“期望均方”的表达式,组成方程组,看样子我们要求解4个方差分量,那么就需要建立至少4个方程;

其中:

SS代表离差平方和,我们可以比较轻松的从数据矩阵中计算出来(虽然计算繁琐,但理解起来非常简单);

自由度的概念比较复杂,前文也曾经简单涉及过,这里就记住就行了;

以上其实我们已经解决问题了,四个方程四个未知数,有精确的解析解,当我们知道了方差分量之后,就可以描述其方差和标准差,就可以用简单的比值达到我们的目的了。

为什么EMS表达式长这样?

EMS的表达式给的有点突兀,为什么他就是这样了,我们来试着理解一下:

本来嘛,每个表达式里都应该是如下的,那为什么不同项前边的系数有的就删掉了,还有的甚至连对应的方差分量都删掉了?

我的理解:

核心思想是EMS是什么,是由不同随机效应综合之后的“期望”值,就要判断是哪个方差分量协同r,n,k共同对EMS的贡献,我们要求的是”平均”,也就是这一项的变异叠加在一起之后被相互抵消而不再贡献了,那就没系数,但是没有抵消的话,那就要给没被抵消的影响乘以对应的系数。

举个例子:

表达EMS(operator)时,每一次的δ_e这一项,r,n,k的影响都在里边,而且相互抵消了就剩下一些本底了,所以每一个前边都不加系数,再比如δ_p这一项,基于的是所有零件计算的,那么零件效应在计算EMS(operator)时理论上正负相消效了,再比如δ_o这一项,计算的时候是用k个测量员都参与,影响也被“平均了”,但是要通过n个和r次的“放大”才能体现出来,所以r,n保留在系数上。

计算案例:

就以最开始的矩阵数据实际计算一下

1,计算整体均值:=average(C3:D8)=10.47

2,计算总离差平方和SS_T:=sum(C14:D19)=0.7022

就是每一项数据都减掉总均值求平方后相加求和

3,计算零件离差平方和SS_P:=sum(C127:D32)=0.68792

用每个零件的均值“代表”各自的实际值算

4,计算测量员离差平方和SS_O:=sum(C39:D44)=0.00434

用每个测量员的均值“代表”各自的实际值

5,计算交互作用离差平方和SS_I:=sum(C55:D60)=0.00288

稍微复杂一点,计算每个测量员测不同零件的时候的均值,再计算每个单元格里的对应的“贡献度”

6,计算设备误差离差平方和SS_E:=sum(C64:D70)=0.00625

每个数据点的值与其所属的均值的差值的平方相加求和

7,分别除以对应的自由度,得到均方MS

8,解方程组得到终极目标:方差分量δ^2

9,计算比值%GRR或%P/T

%GRR或者%P/T的表达式如下(小帽子代表估计值,因为由有限样本得到的)

由前文分析,其实在正向开发流程里测量系统分析阶段做%GRR是不成熟的,而且%GRR还有致命的问题(跟取样相关,给不法分子提供了可乘之机),因此推荐%P/T去评价的,相对统一和客观,关于这一观点的详细理解,过程比与公差比也可以参考詹老师的MSA实战班,总之啥都可以参考,我一切的认知也都来自于此。

10,判断结果

以上过程展示了如何通过相关策划和计算最终得到重复性与再现性评价,本案例中%GRR=14.05%,还可以,处在灰色地带,一般特性完全能接受了。

深度理解:

通过EMS表达式和具体计算的理解,我们发现重复再现性的方差分量分析法虽然科学严谨,但是有两个非常重要的前提条件:

1,残差正态:

残差的意思就是真实的值与预测的值的差异,有正有负,而且高斯通过观察总结发现这些随机误差是服从正态分布的,简单理解就是可以把所有对称的残差累加起来正负相消。因为我们建立EMS表达式的前提条件就是不相干的因素都通过随机误差的正负值相消了,最终理论上呈现出“0值”,所以残差的正态性就是方差分量分析的基石之一。有兴趣可以搜索一下高斯是如何发明最小二乘法的,也是利用残差正态性的假设基础。

2,残差的方差齐性:

同样道理,如果一组数据中各个点的残差的大小不完全随机,其绝对值的大小与被测属性有强相关性(常见的就是随着被测数值越大误差的随机波动也更大),那么就会出现随着取的样件不同导致残差累加在一起不为“0”,这就是方差齐性不好的概念。所以EMS的表达式理论上就不是这样了,所以残差的等方差性(或者叫方差齐性)就是方差分量分析法的基石之二。

以上这两点尤为重要,可能绝大部分企业做MSA是上来就做的,不看什么残差方差齐性和残差正态性,但通过以上分析我们知道这是错误的做法。但你说不做就一定有问题么,大部分情况下是没问题的,为什么?就是因为普遍来说我们的产品公差带是很窄的,在这么窄的范围内残差就会出现不正态或者残差方差不齐是不太可能的。但是某些特殊情况下是必须要考虑的,例如密封性检测设备-氦检,它的公差带横跨3个数量级(10^-8mbar.l/s~10^-5mbar.l/s),而且实测表明,这三个数量级的随机波动是不同的,还有要命问题是被测零件本身在0值附近占绝大多数只有少量泄漏值较大,而且0值附近的残差永远是正值不可能出现负值,这就进一步导致随机波动产生的残差累计相加为“0”不可能,所以这种情况下,以残差的正态性和等方差性为基石的重复再现性在氦检中是不可以被使用的。

你说那咋办,氦检不能做MSA啦,也不是的,还有REML(限制极大似然估计),完全是另外一种思路,他就不要求残差正态和等方差性,是针对不平衡数据设计的,下文我们会在另外一种情况下也提及。

最后的问题:

事情还没有结束,还有一些问题:

1,有没有更简单写的算法呢,这好像有点复杂,有的,统计软件,或者均值极差法,不赘述了,网上教程很多,很容易理解,但是数据是齐全的情况下方差分析法是最准确的;

2,这其实就是方差分析法(ANOVA)的矩阵估计,虽然计算逻辑还可以理解,但是真正计算的小伙伴就会发现,有的时候方差分量会出现负值,这就不对了,方差诶怎么可能出现负值呢?那是因为最初设置的方程组里,既然都是一次方四元方程,那么解着解着就可能出现负值,那就是我们的方程组不对了?但是好像也都是按照逻辑来的啊。物理意义就是:EMS是基于有限的样本得到的“统计量”,是估计值,只要是估计值,那么就会有偏差,会有随机波动,你凭啥就认为这个数字正正好就是整体的“期望”呢,他也有置信区间的。但是是不是以上推导和计算就都不对了呢?也不是的,实际计算你就会发现,负值的出现只有在真实的效应非常小的情况下才会出现,所以一般统计软件把出现负值的情况通通变成0就合情合理了;

3,还有个实际中会频繁遇到的问题:我是要求的很好,收集数据要非常完整,但是总会因为这样那样的原因有些数据就缺失了,有点类似可靠性统计中的删失值,就没有精确数据或者干脆这个数据就没有了,那前文我们说了,数据不完整的话EMS就有问题了,被删掉的项不能随机误差“相抵消”了啊,那怎么办?重来的话测量时间短也比较方便的系统还好说,如果那种成本特别高周期特别长的你根本没办法重来。也有办法,就像可靠性中遇到删失就必须用极大似然MLE一样,这里的“不平衡数据”也得这么搞,但是要用到限制极大似然估计REML(MLE的高阶版)去迭代求取非解析解,我在B站里展示了MLE的推导思路和过程,有兴趣的小伙伴可以继续去研究这块儿;

4,如果我的设备变差再想分到更具体的(比如不同传感器,设备内部通道,内部转化步骤),再现性也想继续分(比如不同地点测量,不同仪器等),也是按照这个思路,当成不同的随机效应就行,这一点实际工作中挺重要的,因为很多时候我们不只是要评价这个测量系统,更重要的是评价之后要知道改哪里和如何改,所以这种变异源分析是必要的,只是计算上,人力应该不行了,用统计软件吧;

5,以上只是交叉分析,针对可重复测量系统和平衡数据的,实际工作中还有很多不可重复测量系统(例如拉伸实验这类破坏性测量,或者扭矩这种测一次改变产品状态进而改变了结果的测量系统),这个时候需要上一些特别手段,如拆解校验报告,分步对传感器做MSA,寻找变异源累加方差分量,嵌套设计,等等,不可重复测量系统詹老师的MSA实战课均有详细分析。

最后,我想说,工具都是好工具,但不能滥用,掌握正确的打开方式,并且有精力的话尽量更深刻的理解和掌握其底层逻辑,避免生搬硬套,我又想起Ella姐跟我说的话:理解的越深刻就能应对更多的变化。希望跟大家一起共勉。