那天 CPK 報告出來,全場沉默了三秒,然後我看到課長臉綠了
你們還記得,去年 Q3 有批貨,良率突然掉了一截嗎?那時候追良率追到人仰馬翻,從機台參數、料況、甚至連隔壁廠的 PM 都問遍了,還是找不到關鍵原因。大家就只能像無頭蒼蠅一樣,每個製程都試著調一點,結果就是越調越糟,Cpk 從 1.08 掉到 0.95,DPMO 衝到 6210。那次會議,課長看著報告,臉色鐵青,說了句:「這批貨根本是薛丁格的貓,誰都不知道到底哪裡出了問題。」那時候我就在想,會不會根本不是某個單一製程的問題,而是有一群製程,他們「很像」,所以一起出包?
問題出在哪?不是單一製程,而是「一群」製程
說穿了,在製程分析裡,我們常常把資料全部混在一起看。但坦白講,很多時候,不同的製程,雖然步驟很像,但它們的「行為模式」可能天差地遠。想像一下,你有一堆蘋果跟橘子,如果全部放在一起稱重,你只會得到一個「水果的平均重量」,但這根本無法告訴你蘋果和橘子各有多重。
所以重點是,我們需要把這些製程先「分門別類」。集群分析(Cluster Analysis)就是這個意思,它會幫你找出資料裡那些「相似」的製程,把他們自動歸成一群。你可以把它想像成一個超級聰明的分類員,它會根據製程的各種特性,比如溫度、壓力、時間、甚至機台型號,把那些「臭味相投」的製程找出來。
實際上怎麼做?用數字找出你的「麻吉製程」
其實步驟很簡單,不需要什麼高深的數學公式。
- 收集你的製程資料:把你認為可能影響良率的製程參數全部拉出來。像是製程步驟 A 的溫度、時間、壓力,製程步驟 B 的真空度、氣體流量等等。資料越多越好,但也不要貪多嚼不爛,挑那些你覺得關鍵的。
- 選擇適合的演算法: 最常用也最直觀的就是 K-Means。它會幫你把資料分成 K 個群,K 就是你要設定的群數。
舉個例子,假設我們有 100 個製程步驟,每個步驟都有 5 個關鍵參數。我們把這些數據丟進 K-Means 演算法,設定 K=3。它跑出來的結果可能會告訴你:
- 第一群: 30 個製程,他們的共同特徵是「高溫、短時間、低壓力」,而且良率表現都比較差,Cpk 平均只有 0.98。
- 第二群: 50 個製程,特徵是「中溫、長時間、高壓力」,良率表現穩定,Cpk 平均有 1.25。
- 第三群: 20 個製程,特徵是「低溫、短時間、中壓力」,良率有時好有時壞,Cpk 落在 1.05 到 1.15 之間。
這樣一來,你就知道,當第一群的製程良率掉下來時,你應該優先去檢查「高溫、短時間、低壓力」這三個共通點,而不是漫無目的地亂調一通。換句話說,你找到了你的「麻吉製程」,當一個出問題,其他麻吉可能也跟著出問題。
最常見的坑:數字多不代表有用,還有「分幾群」
我以前也踩過這個坑。第一次用集群分析,想說資料越多越好,把所有製程參數、機台型號、甚至操作員班別都丟進去。結果跑出來的群根本沒有意義,像是一群「週一早班王工程師操作的機台」,這跟良率根本沒關係。
所以,最關鍵的一點就是:輸入的特徵(Feature)要跟你的問題有關。如果你的目標是提升良率,那就應該多放那些你認為會影響良率的參數。
另一個大坑就是「到底要分幾群(K 值)」。一開始你會不知道要設 K=3 還是 K=5。這個沒關係,你可以多試幾次,看看哪個分群結果最有解釋力。最常見的方法是看「肘部法則 (Elbow Method)」,它會給你一個視覺化的建議,告訴你哪個 K 值是甜蜜點。但說實話,這還是需要你憑經驗和對製程的了解去判斷。
今天能做的一件事
把你手邊的製程數據,先整理出你覺得最重要的三個參數,試著用 Excel 的散佈圖功能,初步看看有沒有什麼群聚現象。這就是集群分析的起點。