![]()
你的供應商把你要的流程能力圖(process capability charts)發過來了。圖做得相當漂亮,一看就是用什么高級軟件生成的——各種統計指標一應俱全,比如 Cpk、Ppk、σ水準(sigma level)、超出規格的ppm 等等。圖好看得很,看起來你的供應商簡直棒極了。你注意到其中一張能力圖上,Ppk = 1.14,而 Cpk = 2.07。這倆為什么不一樣?算了,不重要。反正 Cpk 大于 1.33,正好是你當初要求供應商達到的。那好,換個事情干吧。
你剛剛,錯過了一個關于供應商品質表現(performance)的非常關鍵信息。知道是什么嗎?
Cpk 和 Ppk 是衡量流程能力(process capability)的兩個常用指標——也就是你的流程滿足顧客規格要求的程度。現在的軟件(software)很方便,只要把數據一丟進去,結果唰地就出來了。但很多時候,我們拿到這些結果,就直接往前走了,根本沒仔細想過它們真正代表什么。本期優 思學院就來深入聊聊 Cpk 和 Ppk:它們是什么?它們在測什么?這些數值到底意味著什么?你該更相信哪一個?有些答案,可能會出乎你的意料。
流程能力回顧(Process Capability Review)
流程能力分析(process capability analysis)要回答的問題是:你的流程在多大程度上滿足規格——不管是顧客給的規格,還是你內部自定的規格。要計算流程能力,你需要三樣東西:
- 流程平均值的估計值
- 流程標準差(standard deviation)的估計值
- 規格限(specification limits)
![]()
算 Cpk 和 Ppk 都是這三樣,我們這里假設數據服從正態分布(normal distribution)。
流程能力指數(process capability indices)可以理解成一個比值:從流程平均值到某個規格限的距離,與流程“自然變差”的比。這里流程的自然變差通常取 3 倍流程標準差。圖1 給出了基于上規格限(USL)計算流程能力指數的一般示意,其中 s 是流程變差的度量。
![]()
流程能力指數:
流程能力指數 = (USL – 平均值)/(3s)
要算流程能力,你必須能“合理地”估計流程平均值和流程標準差。注意,這不只是做個公式計算那么簡單。這兩個統計量必須是“有效的”(valid),后面我們會展開說。
Cpk 和 Ppk 回顧(Cpk and Ppk Review)
Cpk 和 Ppk 都是“兩個能力指數中的較小值”。它們的公式如下:
![]()
Cpk = min{ (USL ? X?)/(3σ), (X? ? LSL)/(3σ) }
Ppk = min{ (USL ? X?)/(3s), (X? ? LSL)/(3s) }
這里 X? 是整體平均值(overall average)。
在 Cpk 的公式里,用 σ 來估計流程變差,這個 σ 是用極差控制圖(R 控制圖)估算出來的流程標準差(standard deviation estimate)。
在 Ppk 的公式里,用 s 來估計流程變差,這個 s 是用全部數據直接算出來的標準差。
所以,Cpk 和 Ppk 的根本差別,就是“流程變差”的估計方式不一樣。那這兩種變差估計,差在哪里呢?
組內變差 vs 整體變差
Cpk vs Ppk 的問題,本質上就是:組內變差(within subgroup variation, σ)和整體變差(overall variation, s)之間的差異。
先看整體標準差 s,它的公式是:
s = √[ Σ (Xi ? X?)2 / (N ? 1) ]
N 是全部數據點的個數。看根號下面那個求和項,就是把每個單個數據點和整體平均值的差值平方后加起來(見圖2)。
![]()
從公式的含義看,你可以把 s 理解為:每個數據點“平均離整體均值有多遠”。由于計算時用到了所有數據,所以這個標準差 s 有時也叫整體變差(overall variation)——它把數據里存在的所有變差都算進去了。
現在我們看 σ,也就是通常說的組內變差(within subgroup variation)。這個 σ 是從極差控制圖(range control chart)估出來的流程標準差。
比如,你用的是 X?-R 控制圖,子組(subgroup)大小為5。每次抽 5 個樣本,這 5 個點的平均值就是 X?,畫在 X? 圖上;這 5 個點的極差 R = 最大值 ? 最小值,畫在 R 圖上(見圖3)。R 就是這個亞組內部的變差度量。
![]()
然后用下面這個公式估計 σ:
σ = R? / d?
其中 R? 是平均極差,d? 是與亞組大小有關的控制圖常數。
所以 σ 只反映“組內”變差。它是否包含了全部變差,要看流程狀態,后面會看到。
那個“小問題”:統計控制!(That Little Issue of Statistical Control!)
我們之前所有關于流程能力的文章,都一再強調一個前提:流程必須處于統計控制狀態(in statistical control)。現實中,這個前提經常被完全忽略。
較早之前,優思學院六西格瑪課程中提出的“流程能力檢查清單”,用來幫你把流程能力的真實情況說清楚。清單有五項:
1)先用控制圖(control chart)把數據畫出來,判斷流程是否處于統計控制狀態(是否一致、可預測);
2)對處于統計控制狀態的流程,畫直方圖(histogram),并在圖上加上規格限;
3)對處于統計控制狀態的流程,計算流程數據的自然變差;
4)對處于統計控制狀態的流程,計算 Cp 和 Cpk;
5)把以上四項結果組合起來一起展示,用來說明流程能力。
你注意到了嗎?“對于處于統計控制狀態的流程”這句話出現了多少次?意思很簡單:只要流程不在統計控制狀態,Cpk(以及 Ppk)這些數值就沒有意義。
關鍵點來了:如果你的流程處于統計控制狀態,那么 Cpk 和 Ppk 的數值會非常接近。實際上,你可以用下面的經驗來判斷:
如果 Cpk ≈ Ppk,則流程在統計控制狀態;
如果 Cpk 和 Ppk 差別很大,則流程不在統計控制狀態。
所以,當你看到供應商給你的圖里,Cpk 和 Ppk 差得很大,其實你已經被“提醒”了一件事:供應商的流程不在統計控制狀態——你拿到的未來產品會是什么樣子,并不靠譜。
同樣,如果流程不在統計控制狀態,Cpk 和 Ppk 就基本沒什么意義了。因為流程不一致、不穩定,你不能指望未來再得到類似的值。下面我們會通過一個例子進一步說明:兩個流程用的是同一批數據,只是順序不同。
兩個流程——同一批數據,同一個 Ppk
我們來看兩個流程(Process 1 和 Process 2),它們的數據來源完全一樣(數據取自上一期文章),只是排序不同。假設你每小時取 4 個樣本,組成一個亞組。你想判斷這個流程能否滿足規格要求:LSL = 65,USL = 145。流程1的 30 個亞組數據見表2(略)。
![]()
流程2的數據和流程1是同一批,只是順序完全打亂了一下,見表3(略)。
![]()
由于本質上是同一批數據,所以表2和表3的數據有同樣的平均值和同樣的標準差:
平均值 = 98.98
標準差 s = 9.89
現在你用表2的數據畫一個直方圖,用表3的數據再畫一個直方圖,然后加上規格限 LSL = 65,USL = 145。你會發現,兩張直方圖一模一樣——這很正常,因為數據是完全相同的一套。圖4就是這個直方圖。
![]()
從圖上看,這個流程表現很不錯——整體分布完全在規格范圍里。你當然很滿意。接下來,你計算流程1和流程2的 Ppk。由于均值和標準差完全一樣,兩個流程的 Ppk 也必然一樣。計算如下:
![]()
所以,流程1和流程2的 Ppk 都是 1.14。
兩個流程——同一批數據,不同的 Cpk
等等,那 Cpk 呢?兩個流程的 Cpk 一樣不一樣?答案:不一樣。
記住,Cpk 是基于組內變差(within subgroup variation)算出來的。雖然兩套數據本質上相同,但亞組的“分組順序”不一樣,就會導致“組內變差”不同。
算 Cpk 時,你需要通過 R 控制圖估算標準差 σ,并通過 X? 控制圖估算整體平均值。注意,這是 Ppk 和 Cpk 之間一個非常重要的區別:Ppk 只是對所有數據直接做計算;Cpk 是通過控制圖來估算平均值和流程變差——這是一種“用于預判未來”的方法。
先看流程1。流程1的 R 圖如圖5所示。
![]()
R 圖處于統計控制狀態,說明組內變差是穩定、一致、可預測的。于是你可以通過下面公式估計標準差:
σ = R? / d? = 22.50 / 2.357 = 9.54(約)
因為 R 圖在統計控制狀態,所以基于組內變差得到的 σ 是“有效的”:產生這些數據的流程是一致、可預測的,只要流程不變,未來也會保持這種水平。
接下來算 Cpk 還需要一個流程平均值,這個來自 X? 控制圖。流程1的 X? 圖如圖6所示。
![]()
X? 圖也處于統計控制狀態,說明你對流程平均值的估計是可靠的“有效”估計。于是你可以用這個平均值和 σ 來算 Cpk:
Cpu = (USL ? X?)/(3σ) = (145 ? 98.98)/(3×9.54) = 1.61
Cpl = (X? ? LSL)/(3σ) = (98.98 ? 65)/(3×9.54) = 1.19
Cpk = min{Cpu, Cpl} = 1.19
現在比較一下流程1的 Ppk 和 Cpk:
流程1:Ppk
s = 9.89
Ppu = 1.55
Ppl = 1.14
Ppk = 1.14
流程1:Cpk
σ = 9.54
Cpu = 1.61
Cpl = 1.19
Cpk = 1.19
你會發現兩套結果非常接近。只要流程在統計控制狀態,情況總是這樣——因為:
當流程處于統計控制狀態時,組內變差是整體變差的一個好估計,也就是說 σ ≈ s;
在這種情況下,Cpk 基本等同于 Ppk,它們在講同一件事。
現在看流程2。流程2的 R 圖如圖7所示。
![]()
R 圖同樣處于統計控制狀態——也就是說組內變差穩定、可預測。于是可以估計標準差:
σ = R? / d? = 12.87 / 2.357 = 5.46(約)
接下來算 Cpk,仍然需要整體平均值 X?,這個要從 X? 控制圖來。流程2的 X? 圖如圖8所示。
![]()
但這一次,X? 圖不在統計控制狀態:有點超出控制限,有長串點都在平均線一側,等等。總之,流程“亞組間”的變差不穩定、不可預測。
這意味著,你對流程平均值并沒有一個“靠譜”的估計。均值在來回飄,你根本說不準下一組的平均值會到哪里。流程不一致、不穩定,所以從未來角度看,你其實“沒法”算一個有意義的 Cpk。
但在實際工作中,很多人對這一點直接視而不見,還是照樣硬算 Cpk。反正算出來的平均值也是 98.98。于是按公式算:
Cpu = (USL ? X?)/(3σ) = (145 ? 98.98)/(3×5.46) = 2.81
Cpl = (X? ? LSL)/(3σ) = (98.98 ? 65)/(3×5.46) = 2.07
Cpk = min{Cpu, Cpl} = 2.07
這就得到流程2的 Cpk = 2.07。現在把流程1和流程2的結果并排比較一下:
流程1 & 流程2:Ppk(相同數據)
s = 9.89
Ppu = 1.55
Ppl = 1.14
Ppk = 1.14
流程1:Cpk
σ = 9.54
Cpu = 1.61
Cpl = 1.19
Cpk = 1.19
流程2:Cpk
σ = 5.46
Cpu = 2.81
Cpl = 2.07
Cpk = 2.07
可以看到,流程2 的 Cpu、Cpl 與 Ppu、Ppl 差別非常大。歸根到底,就是統計控制的問題:當 σ 和 s 差距很大時,Cpu 與 Ppu、Cpl 與 Ppl 之間差距也會很大——這強烈暗示流程不在統計控制狀態。
總結:到底誰更“靠譜”:Cpk 還是 Ppk?
現實中,Cpk 更適合用來評估流程“潛在能達到的水平”(potential capability)。它代表在“理想狀態下”你的流程能做到多好——所謂理想狀態,就是組內變差和組間變差基本一樣,也就是流程處于統計控制狀態。
當流程處于統計控制狀態時,Cpk 和 Ppk 基本相等,因此這時候其實不太需要 Ppk,多看 Cpk 就夠了。
而如果流程不在統計控制狀態,那你真正該干的事,是先讓流程“穩定下來”,而不是糾結 Cpk 或 Ppk 的數值高低。此時這兩個數值大體上都沒什么實際意義——唯一有用的信息就是:如果 Cpk 和 Ppk 差很多,那八成說明流程不穩定、不受控。
不過說實話,你本來就應該知道這些,因為你在用優思 學院的流程能力檢查清單。任何關于流程能力的分析,都應該從控制圖開始——先看看數據是不是在統計控制狀態。只有在這個前提下,談 Cp、Cpk、Ppk 才有意義。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.