See SHWNP4 in the SAS/QC Sample LibraryThe following statements create a SAS data set named Battery, which contains the number of alkaline batteries per lot failing an acceptance test. The number of batteries tested in each
lot varies but is approximately 150.
data Battery;
length Lot $3;
input Lot nFailed Sampsize @@;
label nFailed ='Number Failed'
Lot = 'Lot Number'
Sampsize='Number Sampled';
datalines;
AE3 6 151 AE4 5 142 AE9 6 145
BR3 9 149 BR7 3 150 BR8 0 156
BR9 4 150 DB1 9 158 DB2 4 152
DB3 0 162 DB5 9 140 DB6 7 161
DS4 6 154 DS6 1 144 DS8 5 154
JG1 3 151 MC3 8 148 MC4 2 143
MK6 4 150 MM1 4 147 MM2 0 150
RT5 2 154 RT9 8 149 SP1 3 160
SP3 9 153
;
The variable nFailed contains the number of battery failures, the variable Lot contains the lot number, and the variable Sampsize contains the lot sample size. The following statements request an
chart for this data:
title 'Number of Battery Failures';
proc shewhart data=Battery;
npchart nFailed*Lot / subgroupn = Sampsize
outlimits = Batlim
odstitle = title;
label nFailed='Number Failed';
run;
The chart is shown in Output 17.20.1, and the OUTLIMITS= data set Batlim is listed in Output 17.20.2.
Note that the upper control limit and central line on the
chart vary with the subgroup sample size. The lower control limit is truncated at zero. The sample size legend indicates
the minimum and maximum subgroup sample sizes.
Output 17.20.2: The Control Limits Data Set Batlim
| Control Limits for Battery Failures |
| _VAR_ | _SUBGRP_ | _TYPE_ | _LIMITN_ | _ALPHA_ | _SIGMAS_ | _P_ | _LCLNP_ | _NP_ | _UCLNP_ |
|---|---|---|---|---|---|---|---|---|---|
| nFailed | Lot | ESTIMATE | V | V | 3 | 0.031010 | V | V | V |
The variables in Batlim whose values vary with subgroup sample size are assigned the special missing value V.
The SHEWHART procedure provides various options for working with unequal subgroup sample sizes. For example, you can use the LIMITN= option to specify a fixed (nominal) sample size for computing the control limits, as illustrated by the following statements:
ods graphics off;
title 'Number of Battery Failures';
proc shewhart data=Battery;
npchart nFailed*Lot / subgroupn = Sampsize
limitn = 150
alln;
label nFailed='Number Failed';
run;
The ALLN option specifies that all points (regardless of subgroup sample size) are to be displayed. By default, only points for subgroups whose sample size matches the LIMITN= value are displayed. The chart is shown in Output 17.20.3.
All the points are inside the control limits, indicating that the process is in statistical control. Since there is relatively little variation in the sample sizes, the control limits in Output 17.20.3 provide a close approximation to the exact control limits in Output 17.20.1, and the same conclusions can be drawn from both charts. In general, you should be careful when interpreting charts that use a nominal sample size to compute control limits, since these limits are only approximate when the sample sizes vary.