New knowledges, new paradigm.

Belajar Control Chart.

Control chart merupakan salah satu tools dari 7 tools untuk pengendalian proses.

Control Chart/Diagram Kendali

Control Chart disebut juga sebagai diagram Shewhart, diagram kontrol proses statistik (Statistical Process Control/SPC).

Diagram kontrol adalah diagram yang memeriksa bagaimana suatu proses berubah seiring waktu. Data dicatat dalam urutan kronologis. Diagram kontrol selalu memiliki garis tengah untuk rata-rata, garis atas untuk batas kontrol atas dan garis bawah untuk batas kontrol bawah. Garis-garis ini ditentukan dari data historis. Dengan membandingkan data saat ini dengan garis-garis ini, kita dapat menarik kesimpulan, apakah variasi proses konsisten (terkendali) atau tidak. Apakah hasil proses dapat diprediksi (dapat dikendalikan atau tidak (di luar kendali, dipengaruhi oleh suatu variasi). Alat pengumpulan dan analisis data serbaguna ini dapat digunakan di berbagai bidang dan dianggap sebagai salah satu dari tujuh piranti dasar pengendalian kualitas.

  • Cause-and-effect diagram (also called Ishikawa or fishbone diagrams): Mengindentifikasi kemungkinan-kemungkinan penyebab dari suatu kejadian atau masalahdan mengurutkan kemungkinan-kemungkinan tersebut menurut kategori tertentu.

  • Check sheet: Form yang terstruktur untuk mengumpulkan dan menganalisis data.

  • Control chart: Grafik yang digunakan untuk memonitor proses sebagai fungsi waktu. Perbandingan data saat ini dengan data-data sebelumnya untuk mendapatkan kesimpulan apakah data yang idapat konsisten dengan acuan yang dipakai atau bersifat tidak dapat diprediksi.

  • Histogram: Grafik untuk menunjukan distribusi frekuensi.

  • Pareto chart: Bar chart untuk melihat faktor mana yang lebih signifikan.

  • Scatter diagram: Grafik pasangan data untuk melihat hubungan antara sumbu x dan sumbu y.

  • Stratifikasi: Teknik untuk memisahlkan data dari berbagai sumber agar sehingga pola dari data dapat diamati.

Diagram kontrol variabel data terdiri dari nilai rata-rata data, nilai rata ditambah atau dikurangi beberapa kali nilai simpangan baku dari proses yang disebut sebagai UCL (upper control level) dan LCL (lower control level).

Dr. Walter A. Shewhart pada Tahun 1920 mengembangkan diagram kontrol dengan rumus umum sebagai berikut:

$$UCL = \mu_w + k \sigma_w$$$$Center Line = \mu_w$$$$LCL = \mu_w - k \sigma_w$$

Shewhart Control Charts untuk variabel w mempunyai rata-rata nilai hasil pengukuran \(\mu_w\) dan simpangan baku \(\sigma_w\).

umumnya metode 3 sigma digunakan sebagai nilai k (k = 3).

\(\sigma_w\) adalah simpangan baku rata-rata yang diperoleh dari simpangan baku data m sebanyak n dirata-rata.

Bila \(\sigma^2\) adalah variansi dari probabilitas distribusi data, maka unbiased estimator untuk \(\sigma^2\) adalah sampel variansi yang diperoleh menggunakan persamaan berikut:

$$s^2 = \frac{\sum_{i=1}^n \left( x_i - \overline{x} \right)^2}{n-1}$$

Namun s adalah simpangan baku sampel dan bukan unbiased estimator dari \(\sigma\). Bila diasumsikan distribusi data adalah normal, maka estimator aktual \(c_4\) . \(\sigma\) digunakan. Dimana \(c_4\) adalah konstanta yang nilainya tergantung pada ukuran sampel n. Tabel c4 tersedia di buku statistik dan dapat dihitung menggunakan persamaan berikut:

$$c_4 = \sqrt{\frac{2}{n-1}} \frac{ \left( \frac{n}{2}-1 \right)!} {\left( \frac{n-1}{2}-1 \right)!}$$

Nilai \(c-4\) faktor untuk n = 10 adalah 0.9727.

Rata-rata atau nilai deviasi standar adalah \(c_4 . \sigma\)

Simpangan baku dari simpangan baku sampel adalah

$$\sigma_s = \sigma \sqrt{1 - c_4^2}$$

UCL bisa juga dihitung dari

$$\bar{x} \pm 3s/c_4$$
In [1]:
# import library yang diperlukan
import numpy as np
df=np.random.randn(100, 3) + 100
x=df[1,:]
import scipy as sc
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
import pymc3 as pm
import arviz as az
import pandas as pd
import scipy.stats
import statsmodels.api as sm
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

Control Charts Individual

Diagram kendali untuk pengukuran tunggal, ukuran sampel = 1, variabilitasnya dihitung dari selisih dari dua pengukuran yang berurutan.

$$MR_i = |x_i - x_{i-1}|$$
$$UCL = \bar{x} + 3\frac{\overline{MR}}{1.128}$$$$\mbox{Center Line} = \bar{x}$$$$LCL = \bar{x} - 3\frac{\overline{MR}}{1.128}$$

di mana \(\bar{x}\) adalah rata-rata dari data, \(MR\) adalah rata-rata selisih antara dua pengamatan berurutan. Nilai \(d_2\) untuk \(n\) = 2 adalah 1,128.

Beikut adalah contoh pengukuran 10 data flowrate

In [2]:
df=pd.DataFrame([49.6,47.6,49.9,51.3,47.8,51.2,52.6,52.4,53.6,52.1])
df.columns=['Flowrate']
df
Out[2]:
Flowrate
0 49.6
1 47.6
2 49.9
3 51.3
4 47.8
5 51.2
6 52.6
7 52.4
8 53.6
9 52.1

Perbedaan antar data flowrate adalah

In [3]:
R=np.diff(np.array(df).reshape(1,-1))
R=np.abs(R)
R
Out[3]:
array([[2. , 2.3, 1.4, 3.5, 3.4, 1.4, 0.2, 1.2, 1.5]])

Nilai rata-rata flowrate adalah

In [4]:
X = df.mean()
X
Out[4]:
Flowrate    50.81
dtype: float64

Nilai rata-rata selisihnya adalah sebesar

In [5]:
MR=R.mean()
MR
Out[5]:
1.8777777777777784

Sehingga nilai UCL-nya adalah

In [6]:
UCL=X+((3*MR)/1.128)
UCL
Out[6]:
Flowrate    55.80409
dtype: float64

UWL

In [7]:
UWL=X+((2*MR)/1.128)
UWL
Out[7]:
Flowrate    54.139393
dtype: float64

LCL

In [8]:
LCL=X-((3*MR)/1.128)
LCL
Out[8]:
Flowrate    45.81591
dtype: float64

LWL

In [9]:
LWL=X-((2*MR)/1.128)
LWL
Out[9]:
Flowrate    47.480607
dtype: float64

Diagram kendali yang didapat adalah sebagai berikut

In [10]:
plt.figure(figsize=(12,4))
plt.plot(df,'C0o-')
plt.hlines(UCL,0,10, label='UCL', color='r')
plt.hlines(UWL,0,10, label='UWL', color='orange')
plt.hlines(X,0,10, label='Mean', linewidth=2.5)
plt.hlines(LWL,0,10, label='LWL', color='orange')
plt.hlines(LCL,0,10, label='LCL', color='r')
plt.legend(loc='center left')
Out[10]:
<matplotlib.legend.Legend at 0x7f19e943b358>
  • Misalnya kita mempunyai 100 data pengukuran kadar air pada Biosolar yang di produksi di suatu perusahaan.
  • Sebagai informasi awal, kadar air maksimal yang diperbolehkan ada di biosolar adalah 500 mg/Kg (ASTM standard D6751).

Berikut adalah 100 data hasil pengukuran water content dalam biodisel:

In [11]:
import numpy as np
water_content=np.random.randint(485, 500, size=100)
water_content
Out[11]:
array([499, 499, 493, 486, 495, 492, 487, 498, 492, 492, 490, 487, 497,
       494, 494, 485, 488, 496, 494, 490, 493, 496, 495, 499, 494, 490,
       492, 490, 485, 491, 499, 493, 495, 486, 490, 494, 489, 486, 499,
       492, 494, 495, 491, 492, 488, 491, 489, 487, 496, 498, 488, 485,
       495, 490, 489, 488, 491, 498, 488, 498, 493, 491, 486, 497, 493,
       497, 488, 492, 494, 490, 495, 499, 490, 489, 487, 499, 492, 492,
       488, 485, 491, 494, 493, 493, 495, 495, 489, 485, 488, 495, 487,
       499, 495, 488, 497, 489, 489, 494, 497, 487])

Histogram 100 data tersebut ditampilkan pada Gambar di bawah ini

In [12]:
plt.hist(water_content, bins=20, density=True)
sns.kdeplot(water_content)
Out[12]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f19e93abe80>

Data deskriptif statistik untuk 100 data tersebut dirangkum dalam tabel berikut:

In [13]:
pd.DataFrame(water_content).describe()
Out[13]:
0
count 100.000000
mean 492.040000
std 4.052484
min 485.000000
25% 489.000000
50% 492.000000
75% 495.000000
max 499.000000

Dari data deskriptif statistik bisa digambarkan pada Boxplot di bawah ini. Terlihat bahwa nilai min 472.234661 merupakan outlier. IQ1 (25%) = 488.750000, Median = 492.000000 dan IQ3 (75%) = 496.000000

In [14]:
pd.DataFrame(water_content).plot(kind='box')
Out[14]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f19e93ab828>

Control Chart dibuat dengan menggunakan nilai rata-rata sebagai garis horisontal di tengah,

UCL/upper control level, batas control atas : garis yang berwarna biru

$${\bar x} + {2\sigma}$$

LCL/lower control level, batas control bawah

$${\bar x} - {2\sigma}$$

.

UWL/upper warning level, batas peringatan atas :

$${\bar x} + {3\sigma}$$

dan LWL/lower warning level :

$${\bar x} - {3\sigma}$$
In [15]:
plt.figure(figsize=(12,4))
plt.plot(water_content,'bo-')
plt.hlines(water_content.mean()+3*water_content.std(),0,100, label='UCL', color='r')
plt.hlines(water_content.mean()+2*water_content.std(),0,100, label='UWL', color='orange')
plt.hlines(water_content.mean(),0,100, label='Mean', linewidth=2.5)
plt.hlines(water_content.mean()-2*water_content.std(),0,100, label='LWL', color='orange')
plt.hlines(water_content.mean()-3*water_content.std(),0,100, label='LCL', color='r')
plt.legend(loc='center left')
Out[15]:
<matplotlib.legend.Legend at 0x7f19e8dcf320>

Dari segi aplikasi, control chart yang sebenarnya kita butuhkan untuk kasus di atas hanyalah batas kontrol atas (UCL) dengan nilai sebesar 500,sebagaimana disyaratkan dalam ASTM. Misalnya kita tetapkan untuk memberi batas warning atas 5 point sebelum angka maksimal yang diijinkan, maka UWL yang kita pasang aadalah 495. Sehingga untuk riil kontrol chart yang berguna untuk proses kita, kita bisa mengubah kontrol chart di atas sebagai berikut:

In [16]:
plt.figure(figsize=(12,4))
plt.plot(water_content,'C0-o', color='orange')
plt.hlines(500,0,100, label='UCL', color='r', linewidth=3)
plt.hlines(495,0,100, label='UWL', color='b', linewidth=3)
plt.hlines(water_content.mean(),0,100, label='Mean', linewidth=2.5)
plt.legend(loc='center left', fontsize=15)
Out[16]:
<matplotlib.legend.Legend at 0x7f19e8d45d68>

EWMA Control Charts

EWMA (Exponentially Weighted Moving Average) adalah metode statistik untuk memonitoring proses menggunakan FIIR (first-order infinite impulse response) filter. FIIR filter membuat pengaruh data semakin menurun secara exponensial dengan berjalannya waktu namun tidak pernah mencapai angka nol.

$$\mbox{EWMA}_t = \lambda Y_t + (1-\lambda) \mbox{EWMA}_{t-1} \,\,\, \mbox{for} \,\,\, t = 1, \, 2, \, \ldots,\, n$$
  • \(EWMA_0\) adalah rata-rata data target
  • \(Y_t\) adalah pengamatan pada waktu t
  • n adalah jumlah pengamatan yang dilakukan termasuk \(EWMA_0\)
  • |90≤\lambda≤1\) adalah konstanta yang menentukan memori EWMA

Roberts (1959).

Parameter λ menentukan kecepatan data yang lebih lama dihitung ke statistik EWMA. Nilai A value of \(\lambda\) = 1 memberikan implikasi hanya data terbaru yang mempengaruhi EWMA. Jadi, semakin besar nilai λ (nilainya mendekati 1) akan membuat data terbaru lebih berpengaruh. Nilai λ yang kecil, mendekati 0, akan menyebabkan data yang lama lebih berpengaruh. Pada aplikasinya, biasanya nilai λ diatur antara 0.2 - 0.3. Lucas and Saccucci (1990) membuat tabel untuk memilih λ.

Diagram kendali EWMA untuk kadar air dalam biodiesel adalah sebagai berikut:

In [17]:
from pyspc import *
spc(water_content)+ewma()
Out[17]:
<pyspc: (-9223363302526218990)>

CUSUM Control Chart

CUSUM (or cumulative sum control chart) adalah teknik analisis sekuensial yang dikembangkan oleh E. S. Page dari University of Cambridge. CUSUM biasanya digunakan untuk mendeteksi perubahan. Parameter $\theta$ disebut sebagai quality number yang mewakili distribusi probabilitas. Misalnya, nilai rata-rata digunakan sebagai \(\theta\) maka CUSUM bisa digunakan untuk mengamati perubahan mendadak pada data berbasis waktu.
George Alfred Barnard metode visualisasi CUSUM yang disebut V-mask chart untuk mendeteksi perubahan \(\theta\)

rumus yang digunakan pada CUSUM adalah

$$\S_{0} = 0$$

$$S_{n+1} = \max(0,S_{n}+x_n-\omega _n)S_{n+1}=\max(0, S_n+x_n-\omega_n)$$

Ketika S melebihi nilai batas yang ditentukan, perubahan nilai dideteksi. Untuk perubahan ke arah negatif fungsi min digunakan pada persamaan di atas.

Untuk mengases kinerja CUSUM digunakan average run length (A.R.L.) metric, yang didefinisikan: "the expected number of articles sampled before action is taken.

Diagram kendali CUSUM untuk kadar air dalam biodiesel adalah sebagai berikut

In [18]:
spc(water_content)+cusum()
Out[18]:
<pyspc: (-9223363302526228487)>

Control Chart untuk Presisi dan Akurasi

Contoh bagan kendali untuk ketepatan kalibrasi timbangan biasanya dilakukan dengan perbandingan standar kilogram menggunakan timbangan presisi tinggi sebagai pembanding. Simpangan baku hasil pengukuran ini memperkirakan ketepatan timbangan. Kebutuhan akan pemantauan presisi ketepatan timbangan dimonitor untuk memeriksa:

  1. Degradasi timbangan dari waktu ke waktu
  2. Anomali hasil pengukuran yang tidak sesuai pada waktu-waktu tertentu

Teknik pemantauan untuk standar deviasi kalibrasi dilacak dan dipantau menggunakan diagram kontrol untuk deviasi standar. Basis data dan batas kontrol diperbarui setiap tahun atau dua tahun sekali dan standar deviasi untuk setiap kalibrasi yang dijalankan pada siklus berikutnya dibandingkan dengan batas kontrol. Dalam hal ini, standar deviasi dikumpulkan untuk mendapatkan deviasi standar pengulangan dengan derajat kebebasan tertentu, dan batas kontrol dihitung pada tingkat signifikansi 1%. Bila didapati ada hasil yang berada di luar batas kontrol, hasil kalibrasi dibuang dan diulang. Dari interpretasi diagram kontrol bisa dilihat pola deviasi standar dari waktu ke waktu ketepatan timbangan secara bertahap. Temuan bisa mengarah pada keputusan untuk mengganti timbangan ini untuk kalibrasi akurasi tinggi.

Kalibrasi dilakukan dengan membandingkan 1 Kg anak timbangan uji dengan 1 Kg anak timbangan reference. Desain anak timbangan uji dan reference untuk kalibrasi biasanya sebagaimana Gambar di bawah ini

Desain kalibrasi dengan pola penurunan massa anak timbangan:

  • desain 1,1,1
  • desain 1,1,1,1
  • desain 1,1,1,1,1
  • desain 1,1,1,1,1,1
  • desain 2,1,1,1
  • desain 2,2,1,1,1
  • desain 2,2,2,1,1
  • desain 5,2,2,1,1,1
  • desain 5,2,2,1,1,1,1
  • desain 5,3,2,1,1,1
  • desain 5,3,2,1,1,1,1
  • desain 5,3,2,2,1,1,1
  • desain 5,4,4,3,2,2,1,1
  • desain 5,5,2,2,1,1,1,1
  • desain 5,5,3,2,1,1,1
  • desain 1,1,1,1,1,1,1,1
  • desain 3,2,1,1,1

Control chart presisi

Parameter pengendalian dari data historis

Prosedur control chart yang dimodifikasi digunakan untuk pengendalian presisi instrumen. Prosedur ini dirancang untuk diimplementasikan secara real time setelah baseline dan batas control instrumen yang diinginkan dibuat dari data deviasi standar dari pengukuran jangka pendek. Diagram kontrol berbeda digunakan untuk masing-masing instrumen, kecuali instrumen dengan tipe dan presisi yang sama, karena dapat dianggap sebagai satu instrumen.

Baseline diperoleh dari deviasi standar proses yang dikumpulkan dari keberulangan standar deviasi masing-masing \(s_k$ , $k = 1, , , ,K\), dengan derajat kebebasan \(v_k\) mempunyai standard deviasi sebagai berikut:

$${\large s}_1 = \sqrt{ \frac{1}{\nu} \sum_{k=1}^K \nu_k \, {\large s}_k^2 }$$

dengan derajat kebebasan

$$\nu = \sum_{k=1}^K \nu_k \,\, .$$

Batas kontrol atas biasanya digunakan untuk memonitor performa timbangan. Rumus Upper Control Limit adalah sebagai berikut

$$UCL = s_1 \sqrt{F_{\alpha, \, \nu_{new}, \, \nu}}$$

F tabel dicari dengan α biiasanya 0.01. $\nu$ adalah derajat kebebasan deviasi standar baru dan deviasi standar proses.

Berikut adalah data kalibrasi timbangan

In [19]:
df=pd.read_csv('/home/van/Pengajaran/01_Pengajaran_Online/Kemometrik/balance_calibration.csv')
df
Out[19]:
DATE ID Y BAL RESSTDEV DESID
0 75.884 41 -19.51836 12 0.0217 41
1 75.922 41 -19.49785 12 0.0118 41
2 76.013 41 -19.47795 12 0.0232 41
3 76.129 41 -19.49223 12 0.0210 41
4 76.642 41 -19.52728 12 0.0265 41
... ... ... ... ... ... ...
212 88.277 41 -19.43458 12 0.0523 41
213 88.315 41 -19.41401 12 0.0275 41
214 88.339 41 -19.44789 12 0.0376 41
215 88.398 41 -19.43033 12 0.0215 41
216 88.433 41 -19.43883 12 0.0403 41

217 rows × 6 columns

In [20]:
import numpy as np
s=df['RESSTDEV']**2
s1=(np.sqrt(3.88))*(np.sqrt(s.mean())) # F(0.01,3,200)
print('s1 = ',s1)
s1 =  0.06751702661513842
In [21]:
sd=df['RESSTDEV']
mean_sd=sd.mean()

plt.figure(figsize=(12,4))
plt.plot(sd,'C0-o')
plt.hlines(s1,0,217, label='UCL', color='r')
plt.hlines(mean_sd,0,217, label='Mean', linewidth=2.5)
plt.legend(loc='lower left')
Out[21]:
<matplotlib.legend.Legend at 0x7f19e632bb00>

Nilai di luar batas control bisa jadi kebetulan dari noise, ketidakstabilan alat, kesalahan perlakuan sehingga perlu dibuang dan diulang untuk mengetahui kesalahan bersifat permanen atau tidak.

Tindakan perbaikan

Periksa kemungkinan penyebabnya

A. Penyebab yang tidak menjamin tindakan korektif (tetapi yang mengharuskan pengukuran saat ini dibuang) adalah:

  • Peluang kegagalan di mana presisi sebenarnya dalam kontrol
  • Kesalahan dalam mengatur atau mengoperasikan proses pengukuran
  • Kesalahan dalam merekam data

B. Perubahan kinerja instrumen dapat disebabkan oleh:

  • Degradasi komponen elektronik atau mekanik
  • Perubahan kondisi lingkungan
  • Efek dari operator baru atau tidak berpengalaman

Ulangi pengukuran

Ulangi urutan pengukuran untuk menentukan apakah sinyal di luar kendali itu hanya kebetulan, kesalahan, atau apakah itu menandai perubahan permanen atau tren dalam proses.

Tetapkan nilai baru untuk menguji item

Dengan proses presisi tinggi, yang ketidakpastiannya dapat dijamin, nilai baru harus ditetapkan ke item uji berdasarkan data pengukuran baru.

Periksa degradasi

Periksa pola deviasi standar terbaru. Jika proses secara bertahap keluar dari kendali karena degradasi dalam instrumentasi atau artefak, instrumen mungkin perlu diperbaiki atau diganti.

Aplikasi Control Chart untuk presisi dan akurasi

Aplikasi praktis control chart untuk presisi dan akurasi, bisa dibuat berdasar kriteria yang ditentukan. Misalnya, kita memutuskan bahwa residu recovery maksimal yang diperbolehkan pada hasil pengukuran sediaan obat, berdasar farmakope, adalah +/- 10% dari yang tertera di etiket. Untuk kepentingan pengendalian, batas peringatan didasarkan pada kriteria rekoveri 5% dari nilai acuan. Dengan demikian untuk semua pengukuran mengacu pada rekoveri 100% dan sisanya/residu yang diperoleh maksimal sebesar 10%. Misalnya kriteria ini diterapkan pada penentuan kadar paracetamol dalam sediaan farmasi, dimana di etiketnya tertera kadar paracetamol 350 gr. Misalnya, data analisis kadar paracetamol dengan spektrofotometri UV dengan 3 kali pengulangan adalah sebagai berikut:

In [22]:
paracetamol=np.random.randint(340, 355,(50,3))
paracetamol
Out[22]:
array([[351, 354, 345],
       [344, 343, 344],
       [343, 348, 354],
       [353, 349, 346],
       [353, 346, 352],
       [350, 353, 353],
       [354, 352, 346],
       [354, 344, 341],
       [347, 351, 350],
       [353, 345, 345],
       [343, 345, 347],
       [346, 340, 346],
       [342, 349, 352],
       [342, 348, 345],
       [343, 343, 347],
       [346, 352, 353],
       [346, 342, 347],
       [343, 351, 347],
       [348, 342, 349],
       [347, 346, 347],
       [354, 348, 344],
       [340, 353, 352],
       [343, 342, 343],
       [351, 341, 344],
       [352, 340, 346],
       [340, 340, 351],
       [340, 347, 341],
       [343, 345, 351],
       [352, 352, 341],
       [349, 340, 341],
       [349, 353, 343],
       [353, 346, 354],
       [354, 351, 348],
       [354, 343, 348],
       [341, 350, 354],
       [345, 342, 340],
       [350, 353, 354],
       [351, 352, 350],
       [348, 341, 342],
       [349, 341, 348],
       [351, 341, 345],
       [354, 348, 343],
       [349, 354, 343],
       [352, 351, 352],
       [354, 346, 348],
       [340, 349, 340],
       [347, 345, 354],
       [340, 344, 342],
       [345, 349, 353],
       [345, 342, 344]])

Shewhart X-bar dan R and S Control Chart

Kita harus menggunakan s-chart terlebih dahulu untuk menentukan apakah karakteristik distribusi proses stabil. Misalnya kita harus memperkirakan \(σ\) dengan menganalisis data yang sudah diperoleh sebelumnya. Misalkan kita memiliki sampel awal sebanyak \(m\), masing-masing tersusun dari \(n\) data, dan \(s_i\) adalah standar deviasi sampel ke-i. Maka rata-rata dari standar deviasi adalah

$$\bar{s} = \frac{1}{m} \sum_{i=1}^m s_i \, .$$

Kita akan menggunakan tabel c4 untuk perhitungan. Dengan \(\bar{s}/c_4\) sebagai unbiased estimator untuk σ maka diagram kontrol dapat dibuat dengan persamaan berikut:

$$UCL = \bar{s} + 3\frac{\bar{s}} {c_4} \sqrt{1 - c_4^2}$$$$\mbox{Center Line} = \bar{s}$$$$LCL = \bar{s} - 3\frac{\bar{s}} {c_4} \sqrt{1 - c_4^2}$$

Dengan langkah yang sama kita bisa membuat diagram kontrol untuk \(\bar{X}\) sebagai berikut:

$$UCL = \bar{\bar{x}} + 3\frac{\bar{s}}{c_4\sqrt{n}}$$$$\mbox{Center Line} = \bar{\bar{x}}$$$$LCL = \bar{\bar{x}} - 3\frac{\bar{s}}{c_4\sqrt{n}}$$

Tabel untuk Control Chart

Diagram kendali \(\bar{X}\) dan \(\bar{S}\) untuk pengukuran paracetamol adalah sebagai berikut

In [23]:
import numpy as np
spc(paracetamol)+xbar_sbar()
Out[23]:
<pyspc: (8734328649164)>
In [24]:
spc(paracetamol)+sbar()
Out[24]:
<pyspc: (-9223363302528996948)>

X dan R Control Charts

¯ Bila sampel relatif sedikit, misalnya kurang dari 10, kita bisa membuat rentang sampel untuk membuat diagram kontrol, bukan menggunakan simpangan baku.

Rentang sampel adalah perbedaan antara nilai pengamatan terbesar dan terkecil. Menurut Patnaik, 1946, ada hubungan statistik antara rata-rata rentang sampel untuk data yang terdistribusi normal dengan nilai $\sigma$, simpangan baku dari distribusi data. Hubungan ini hanya bergantung pada ukuran sampel, Rata-rata rentang, \(R\), adalah \(d_2 \sigma\) dimana nilai \(d_2\) merupakan fungsi n, sehingga estimator untuk \(\sigma\) adalah \(R /d_2\).

Misalnya \(R_1, R_2, R_3,...., R_k\) adalah rentang sampel k, rata-ratanya adalah

$$\bar{R} = \frac{R_1 + R_2 + ... + R_k} {k}$$

Jadi, jika kita menggunakan \(\bar{x}\) sebagai estimator \(\mu\) dan \(R\over{d_2}\) sebagai estimator \(\sigma\), maka parameter untuk \(\bar{X}\) adalah

$$UCL = \bar{\bar{x}} + \frac{3}{d_2\sqrt{n}} \bar{R}$$$$\mbox{Center Line} = \bar{\bar{x}}$$$$LCL = \bar{\bar{x}} - \frac{3}{d_2\sqrt{n}} \bar{R}$$

dengan persamaan \(A_2 = {3\over(d_2√n)}\) maka \(\bar{X}\) menjadi

$$UCL = \bar{\bar{x}} + A_2 \bar{R}$$$$\mbox{Center Line} = \bar{\bar{x}}$$$$LCL = \bar{\bar{x}} - A_2 \bar{R}$$

R Chart

Untuk menghitung batas kendali/kontrol kita perlu mengestimasi simpangan baku $w = R/\sigma$
Simpangan baku W adalah \(d_3\) yang merupakan fungsi sampel n. Karena \(R = W \sigma\) maka simpangan baku R adalah \(\sigma_R = d_3 \sigma\) karena $\sigma$ tidak diketahui kita bisa mengestimasi menggunakan persamaan:

$$\hat{\sigma}_{R} = d_3\frac{\bar{R}} {d_2}$$

Sehingga R chart dengan metode 3 sigma adalah

$$UCL = \bar{R} + 3\hat{\sigma_R} = \bar{R} + 3d_3\frac{\bar{R}}{d_2}$$$$\mbox{Center Line} = \bar{R}$$$$LCL = \bar{R} - 3\hat{\sigma_R} = \bar{R} - 3d_3\frac{\bar{R}}{d_2}$$

Dengan \(D_3 = 1 - 3 d_3/d_2$ dan $D_4 = 1 + 3 d_3/d_2\)

$$UCL = \bar{R} D_4$$$$\mbox{Center Line} = \bar{R}$$$$LCL = \bar{R} D_3$$
In [25]:
#Tabel Perhitungan X dan R
tabel=pd.DataFrame([2,3,4,5,6,7,8,9,10])
tabel.columns=['n']
tabel['A2']=[1.88,1.023,0.729,0.577,0.483,0.419,0.373,0.337,0.308]
tabel['D3']=[0,0,0,0,0,0.076,0.136,0.184,0.223]
tabel['D4']=[3.267,2.575,2.282,2.115,2.004,1.924,1.864,1.816,1.777]
tabel
Out[25]:
n A2 D3 D4
0 2 1.880 0.000 3.267
1 3 1.023 0.000 2.575
2 4 0.729 0.000 2.282
3 5 0.577 0.000 2.115
4 6 0.483 0.000 2.004
5 7 0.419 0.076 1.924
6 8 0.373 0.136 1.864
7 9 0.337 0.184 1.816
8 10 0.308 0.223 1.777

Hubungan efisiensi penggantian R dengan s/c4 dipengaruhi oleh jumlah n

In [26]:
efisiensi=pd.DataFrame([2,3,4,5,6,10])
efisiensi.columns=['n']
efisiensi['Efisiensi Relatif']=[1,0.992,0.975,0.955,0.93,0.85]
efisiensi
Out[26]:
n Efisiensi Relatif
0 2 1.000
1 3 0.992
2 4 0.975
3 5 0.955
4 6 0.930
5 10 0.850

Dengan demikian, sampel dengan ukuran di bawah 5 tidak akan memberikan perbedaan yang relatif besar.

Diagram kendali \(\bar{X}\) dan \(\bar{R}\) untuk pengukuran paracetamol adalah sebagai berikut

In [27]:
import numpy as np
spc(paracetamol) + xbar_rbar() 
Out[27]:
<pyspc: (8734325725462)>
In [28]:
spc(paracetamol) + rbar() + rules()
Out[28]:
<pyspc: (-9223363302528989692)>

LearningBox

Receive updates and latest news direct from our team. Simply enter your email below: