那天 CPK 報告出來,全場沉默了三秒
還記得好幾年前,我們機台換了一批新耗材,大家都很期待。結果第一份 CPK 報告出來,會議室裡瞬間安靜。PM 臉色鐵青,因為報告上密密麻麻的紅字,代表我們有 20 個參數的 CPK 都掉到 1.08 以下,也就是說,良率可能要爆炸了。我盯著那份報告,心想:「靠,這耗材是祖宗十八代有仇是不是?怎麼會爛成這樣?」PM 轉頭問我:「這批料是不是有問題?」我心裡也打鼓,但經驗告訴我,事情沒這麼單純。
問題出在哪
說穿了,這就是「多重檢定問題」在搞鬼。你想想看,我們有 20 個參數,每個參數都會做一次假設檢定,判斷它的 CPK 是否達標。假設我們把 alpha 值設在 0.05(也就是有 5% 的機率會誤判),那當你只做一次檢定時,誤判率確實是 5%。
但是,當你做了 20 次獨立檢定時,每一次都有 5% 的機會誤判。你猜猜看,這 20 次裡面,至少有一次誤判的機率是多少?算一下,1 – (1 – 0.05)^20 大約是 0.64!換句話說,有高達 64% 的機會,你至少會看到一個「假紅字」,但實際上根本沒問題。這就像你連續買了 20 張樂透,卻只中一張刮刮樂的安慰獎一樣。
所以重點是,當你同時檢定很多項目時,個別的 alpha 值已經不能代表整體錯誤率了,你會看到很多「假陽性」,浪費時間去追查根本不存在的問題。
實際上怎麼做
針對這種多重檢定問題,有兩種常用的方法:「Bonferroni 校正」和「FDR 控制」。
- Bonferroni 校正:這個方法最簡單粗暴。它直接把你的 alpha 值除以檢定次數。像我們有 20 個參數,原本 alpha 是 0.05,校正後新的 alpha 就變成 0.05 / 20 = 0.0025。也就是說,只有當 p 值小於 0.0025 時,我們才認為這個參數真的有問題。這種方法的好處是能有效控制「家庭錯誤率」(Family-Wise Error Rate, FWER),也就是保證所有檢定中至少一次誤判的機率不超過你設定的 alpha。但壞處是它太保守了,可能會讓很多真的有問題的參數被「漏掉」(假陰性)。
- FDR 控制 (False Discovery Rate):這個方法比較聰明,它控制的是「錯誤發現率」,也就是在所有你判斷為「有問題」的結果中,有多少比例其實是誤判的。FDR 會先把所有參數的 p 值由小到大排序,然後給每個 p 值一個新的臨界值。這個方法在半導體廠這種需要同時監控大量參數的環境特別好用,它比 Bonferroni 沒那麼保守,能讓我們發現更多潛在的問題,同時又不會被太多假陽性結果淹沒。
坦白講,現在很多統計軟體都有內建這些功能,你只要選對方法,數字就會幫你算好。
最常見的坑
我那時就踩過一個大坑。我們為了「不漏掉任何問題」,一開始根本沒做任何校正,直接盯著 20 個參數的原始 p 值。結果就是,只要有參數的 CPK 稍稍低於 1.33( DPMO 6210),我們就開始派人去拆機台、換零件,甚至停線檢查。搞到最後,發現很多所謂的「問題」根本是統計上的假象,只是為了那 5% 的隨機性在窮忙。
有一次,為了追一個「紅字」,大家忙了一整週,結果最後發現只是量測誤差加上多重檢定的效應,那個參數的真實 CPK 根本沒問題。那次我才真正意識到,統計分析如果用錯方法,比亂猜還慘,因為你還會為它投入真金白銀跟人力時間。
今天能做的一件事
下次報告出來看到一堆紅字,先問問自己:「這份報告做了幾次檢定?」