对于CPK的计算方法,网络上的资源大多数都遵循教科书中的公式,然而在实际工作中往往缺乏实用性,有时甚至会对人产生误导。
例如这个:
再如这个:
CPK的计算公式看似简单,实际上却隐藏着许多细节。特别是在σ的计算上,网络上的资料往往语焉不详,使得很多想要通过Excel实现CPK计算的朋友感到十分困难。
为了解决这一难题,今天我们将详细解析CPK的计算过程,不仅在Excel中实现计算,还会在Python中实现计算,并附上相应的Excel文件和Python文件供大家下载。
关于数据和算法
CPK算法虽然不复杂,但网上介绍的资料大多没有详细解释σ的计算方法。我们将认真分享σ的算法,并使用与Minitab相同的数据进行核对,让大家更加明白其计算过程。
以下是CPK、CPU和CPL的计算公式:
CP = (USL-LSL)/(3σ)
CPU = (USL-μ)/(3σ)
CPL = (μ-LSL)/(3σ)
CPK取CPU和CPL中的最小值。
第一步:计算组内标准差σ
这里的μ是所有数据的平均值,没有什么疑问。USL和LSL是人工设定的规格限。现在我们来解释如何计算σ,即组内标准差。
我们提供的每行数据中有5个值,我们首先计算每行的平均值,然后每个值分别与行平均值相减后取平方,得到多个结果。将这些结果相加后求平方根,得到公式中的分子部分。
我们需要知道每行有5个值,共25行,所以分子部分的计算涉及到25个这样的值(n-1即为4)。最终得到的结果为sp=0.。
接下来我们计算C4(d+1),其中d是自由度,d=100(每行的5个值减去1得到4,再乘以25行)。
尽管这个公式看起来复杂,但当我们代入具体数据后,就会变得非常简单。Gamma函数我们无法手动计算,但可以通过Excel的函数来轻松实现。
经过计算,gamma(50.5)/gamma(50)的值为7.053412515,分母部分为0.997503164。组内标准差σ的计算结果为0.010050862。
为了验证我们的计算结果,我们将使用Minitab进行核对。
第二步:计算CPK
我们已经得到了组内标准差σ的值,现在可以计算CPK了。
设定USL=74.05,LSL=73.95,以及上面的μ=74.0012。
根据公式,我们可以计算出CPU和CPL的值,然后取其中的最小值作为CPK的结果。
经过计算,CPK的值为1.62。
为了验证我们的结果,我们再次使用Minitab进行核对。大家可以在公众号回复“cpk”来下载Excel文件。
Python实现
我们将CPK的计算过程用Python语言进行实现,具体的代码将附在提供的Python文件中。
这里介绍的CPK计算中使用的组内标准差算法是Minitab进行能力分析时默认采用的合并标准差算法。虽然还有其他算法可以计算组内标准差,但我们认为大家最常用也是最广泛接受的是Minitab的这种算法。
希望这篇文章能帮助大家更清晰地理解CPK的计算过程,不再被网上的照本宣科式教程所误导。