SPC自動

以VBA自動繪製統計製程管制圖(SPC Control Chart)

Excel、VBA

邱秉誠
Carrot Cheng的數據分析
Apr 16, 2021

--

本文將初步介紹統計製程管控(SPC)的概念,並利用VBA程式語言繪製SPC管制圖,以達到自動化的目的。

統計製程管控(Statistical Process Control, SPC)

統計製程管控(Statistical Process Control, SPC)是由Shewhart博士於貝爾實驗室發展出來,當時主要用於監控軍事武器的生產製程,希望能讓生產流程更加穩定、有效率,於是藉由統計的手法來分析製程的品質,並根據不同的時機建立以下七項重要的工具

  1. 直方圖(Histogram)
  2. 柏拉圖(Pareto chart)
  3. 查核表(Check Sheet)
  4. 特性要因圖(Cause-and-effect)
  5. 缺陷分布圖(Defect concentration diagram)
  6. 散佈圖(Scatter diagram)
  7. 管制圖(Control Chart)

製程的變異

Shewhart博士認為製程的變異可分為機遇原因 (Chance Causes)非機遇原因(Assignable Causes)兩種。

Chance Causes就是在正常製程中自然存在的變異,這些變異只能盡量降低,但是無法避免,通常對製程影響微小。如果製程中的變異只有Chance Causes表示製程為穩定狀態(statistical control)。

Assignable Causes就是Chance Causes以外的變異,這些變異通常影響很大,導致產品品質不能達到需要水準,例如參數設定錯誤、人員不當操作等。如果製程中出現Assignable Causes,表示製程out-of-control,需要立刻找出失效源頭,而偵測Assignable Causes存在的重要工具,就是本文的主角管制圖(Control Chart),下文隆重登場。

管制圖(Control Chart)

管制圖(Control Chart)的最大目的就是要偵測Assignable(special) Causes的存在,並提出警訊。下圖是透過管制圖監控製程的經典演變。透過管制圖可以觀察到

第一階段(最左邊)有觀察數據超出管制界線,這表示存在Assignable Causes,使製程out-of-control,因此必須找出製程缺陷,進而消除不穩定。

第二階段的所有觀測點都在管制界線內,表示製程穩定,系統內只存在Chance Causes。

第三階段,則是致力於降低Chance Causes,使變異越來越小。

資料來源:How to Use Control Charts for Continuous Improvement

管制圖的種類

管制圖的種類分為計量值管制圖(variable control charts)計數值管制圖(attribute control charts)兩種。

  • 計量管制圖適用於品質特性屬於連續性之數據。像是長度、重量、溫度
  • 計數值管制圖適用於品質特性屬於離散之數據。像是缺點數、不合格率、報廢率等等。

如何計算上下界限(以X bar為例)

管制方法很多種,這裡僅以X bar作為例子講解,往後有時間再逐一補充。

X bar管制圖非常直覺單純,其實就是將收集到的一組sample以平均值表示,計算這些平均值的平均值作為中心水平位置,並以平均值的三倍樣本標準差作為管制界線,公式如下。

在基於常態分佈的假設下,觀測平均值落在三倍樣本標準差內的機率會有99.7%,這就是著名的68–95–99.7法則。

樣本平均值會服從常態分佈是基於中央極限定理,有興趣的讀者可以參考這篇中央極限定理(Central Limit Theorem , CLT)

舉例(For example)

假如,我們針對某產品寬度建構管制圖,我們在固定間隔時間連續抽取3個產品進行量測,每次量測的三個產品寬度就是一組sample,計算平均如下。

則根據上述公式,樣本平均值的平均值為10.76,樣本標準差為0.439317653,則可以建構出以下管制界線。

管制圖的意涵

管制圖上的每個sample可當作進行一次統計的假設檢定,如果落在管制界限內就無法拒絕虛無假設,表示sample為正常,反之落在管制界限外則表示拒絕虛無假設,sample為異常。

用VBA實現自動繪製管制圖

1. 開啟開發人員功能

開啟excel,打開選項的自訂功能區,核取開發人員選項,按下確定。

2. 填入樣本數據X_bar 和R

在Excel填入欲相關的樣本資訊,等一下會自動計算上下管制界線,並且繪製管制圖。

3. 插入命令按鈕

來到開發人員的功能頁面,按下設計模式,然後在你想要放置的地方插入ActiveX的按鈕控制項。

4.撰寫程式碼

點擊按鈕兩下,會彈出VBA程式的編輯環境,開始撰寫程式碼。以下程式碼都有註解,稍微有程式經驗的讀者應該能很快上手,如果執行上有問題在寫信給我~。

5.按下按鈕執行畫面

Reference

--

--

邱秉誠
Carrot Cheng的數據分析

畢業於台大工業工程所,目前任職於台積電。