Process Capability    g link

What is Process Capability?

Process capability compares the output of an in-control process to the specification limits by using capability indices. The comparison is made by forming the ratio of the spread between the process specifications (the specification "width") to the spread of the process values, as measured by 6 process standard deviation units (the process "width").

Process Capability Indices

A process capability index uses both the process variability and the process specifications to determine whether the process is "capable"We are often required to compare the output of a stable process with the process specifications and make a statement about how well the process meets specification.  To do this we compare the natural variability of a stable process with the process specification limits. 

capable process is one where almost all the measurements fall inside the specification limits. This can be represented pictorially by the plot below:

Diagram demonstrating a capable process 

There are several statistics that can be used to measure the capability of a process: Cp, Cpk, Cpm.

Most capability indices estimates are valid only if the sample size used is 'large enough'. Large enough is generally thought to be about 50 independent data values. 

The Cp, Cpk, and Cpm statistics assume that the population of data values is normally distributed. Assuming a two-sided specification, if mu and sigma are the mean and standard deviation, respectively, of the normal data and USL, LSL, and T are the upper and lower specification limits and the target value, respectively, then the population capability indices are defined as follows:

Definitions of various process capability indicesCp = (USL - LSL)/6*sigma

Cpk = MIN[(USL-mu)/(3*sigma), (mu-LSL)/(3*sigma)]

Cpm = (USL-LSL)/{6*SQRT(s**2 + (mu-T)**2)}

Sample estimates of capability indicesSample estimators for these indices are given below. (Estimators are indicated with a "hat" over them).

Chat(p) = (USL - LSL)/6*s

Chat(pk) = MIN[(USL-m)/(3*s), (m-LSL)/(3*s)]

Chat(pm) = (USL-LSL)/{6*SQRT(s**2 + (m-T)**2)}

The estimator for Cpk can also be expressed as Cpk = Cp(1-k), where k is a scaled distance between the midpoint of the specification range, m, and the process mean, mu.

Denote the midpoint of the specification range by m = (USL+LSL)/2. The distance between the process mean, mu, and the optimum, which is m, is mu - m, where m <= mu <= USL. The scaled distance is

k = |m - mu|/{(USL - LSL)/2},   0 <= k <= 1

(the absolute sign takes care of the case when mu). To determine the estimated value, khat, we estimate mu by xbar. Note that xbar <= USL.

The estimator for the Cp index, adjusted by the k factor, is

Chat(pk) = Chat(p)(1 - k)

Since 0 <= k <= 1, it follows that Chat(pk) <= Chat(p).

Plot showing Cp for varying process widthsTo get an idea of the value of the Cp statistic for varying process widths, consider the following plot
4 plots showing the value of Cp for varying process widths
This can be expressed numerically by the table below:
Translating capability into "rejects"
USL - LSL6sigma8sigma10sigma12sigma
Rejects.27%64 ppm.6 ppm2 ppb
% of spec used100756050

where ppm = parts per million and ppb = parts per billion. Note that the reject figures are based on the assumption that the distribution is centered at mu.

We have discussed the situation with two spec. limits, the USL and LSL. This is known as the bilateral or two-sided case. There are many cases where only the lower or upper specifications are used. Using one spec limit is called unilateral or one-sided. The corresponding capability indices are

One-sided specifications and the corresponding capability indices
C(pu) = (allowable upper spread)/(actual upper spread) =  (USL - mu)/(3*sigma)
C(pu) = (allowable lower spread)/(actual lower spread) =  (mu - LSL)/(3*sigma)
where mu and sigma are the process mean and standard deviation, respectively.

Estimators of Cpu and Cpl are obtained by replacing mu and sigma by Xbar and s, respectively. The following relationship holds

Cp = (Cpu + Cpl) /2.
This can be represented pictorially by
Graph demonstrating upper actual and allowable upper spread

Note that we also can write:

    Cpk = min {Cpl, Cpu}.
Confidence Limits For Capability Indices
Confidence intervals for indicesAssuming normally distributed process data, the distribution of the sample Cphatfollows from a Chi-square distribution and Cpuhat and Cplhat have distributions related to the non-central distribution. Fortunately, approximate confidence limits related to the normal distribution have been derived. Various approximations to the distribution of Cpkhat have been proposed, including those given by Bissell (1990), and we will use a normal approximation.

The resulting formulas for confidence limits are given below:

100(1-alpha)% Confidence Limits for Cp

    Pr{Cphat(L1) <= Cp <= Cphat(L2)} = 1 - alpha
    L1 = SQRT{Chi-Square(nu,alpha/2)/nu}             L2 = SQRT{Chi-Square(nu,1-alpha/2)/nu}

    nu = degrees of freedom

Confidence Intervals for Cpu and CplApproximate 100(1-alpha)% confidence limits for Cpu with sample size n are:
    C(pu)(lower) = Chat(pu)-z(1-beta)*SQRT[(1/(9*n))+Chat(pu)^2/(2*(n-1))]

    C(pu)(upper) = Chat(pu)+z(1-alpha)*SQRT[(1/(9*n))+Chat(pu)^2/(2*(n-1))]

with z denoting the percent point function of the standard normal distribution. If betais not known, set it to alpha.

Limits for Cpl are obtained by replacing Chat(pu) by Chat(pl).

Confidence Interval for CpkZhang et al. (1990) derived the exact variance for the estimator of Cpk as well as an approximation for large n. The reference paper is Zhang, Stenback and Wardrop (1990), "Interval Estimation of the process capability index",Communications in Statistics: Theory and Methods, 19(21), 4455-4470.

The variance is obtained as follows:


    c = SQRT(n)*[mu - (USL+LSL)/2]*sigma

    d = (USL-LSL)/sigma

    Phi(-c) = integral[-infinity to -c][(1/(SQRT(2(*PI))*EXP(-5*z**2 dz]


    = (d**2/36)(n-1)(n-3)

    -(d/(9*SQRT(n))*(n-1)*(n-3)*{SQRT(2*PI)* EXP(-c**2/2) + c[1 - 2*PHI(-c)]}



    *{d*SQRT(n) - 2*SQRT(2*PI)*EXP(-c**2/2) -  2*c*[1 - 2*PHI(-c)]}**2

Their approximation is given by:
    Var(Chatpk) = (n-1)/(n-3) -  0.5*{(GAMMA(n-2)/2)/(GAMMA(n-1)/2)}**2
    n >= 25, 0.75 <= Cpk <= 4, |c| <= 100, and d <= 24
The following approximation is commonly used in practice
    C(pk) = Chat(pk) +/- z(1-alpha/2)*SQRT[(1/(9*n)) + Chat(pk)^2/(2*(n-1))]
It is important to note that the sample size should be at least 25 before these approximations are valid. In general, however, we need n >= 100 for capability studies. Another point to observe is that variations are not negligible due to the randomness of capability indices.
Capability Index Example
An exampleFor a certain process the USL = 20 and the LSL = 8. The observed process average, Xbar = 16, and the standard deviation, s = 2. From this we obtain
    Chatp = (USL-LSL)/(6*s) = (20 - 8)/(6*2) = 1.0
This means that the process is capable as long as it is located at the midpoint, m = (USL + LSL)/2 = 14.

But it doesn't, since xbar = 16. The khat factor is found by

    khat = |m - Xbar|/((USL-LSL)/2) = 2/6 = 0.3333
    Chatpk = Chatp*(1-khat) = 0.6667
We would like to have Chatpk at least 1.0, so this is not a good process. If possible, reduce the variability or/and center the process. We can compute the Chatpu and Chatpl
    Chatpu = (USL - xbar)/(3*s) = (20 - 16)/(3*2) = 0.6667

    Chatpl = (xbar - LSL)/(3*s) = (16 - 8)/(3*2) = 1.3333

From this we see that the Chatpu, which is the smallest of the above indices, is 0.6667. Note that the formula Chat(pk) = Chat(p)(1 - khat) is the algebraic equivalent of the min{ChatpuChatpl} definition.
What happens if the process is not approximately normally distributed?
What you can do with non-normal dataThe indices that we considered thus far are based on normality of the process distribution. This poses a problem when the process distribution is not normal. Without going into the specifics, we can list some remedies.
  1. Transform the data so that they become approximately normal. A popular transformation is the Box-Cox transformation
  2. Use or develop another set of indices, that apply to nonnormal distributions. One statistic is called Cnpk (for non-parametric Cpk). Its estimator is calculated by
       Chatnpk = min[(USL - median)/(p(0.995) - median), (median - LSL)/(median - p(0.005))]
    where p(0.995) is the 99.5th percentile of the data and p(.005) is the 0.5th percentile of the data.

    For additional information on nonnormal distributions, see Johnson and Kotz (1993).

There is, of course, much more that can be said about the case of nonnormal data. However, if a Box-Cox transformation can be successfully performed, one is encouraged to use it.