When a single subgroup value is used for several consecutive PROCESSNAME and SUGROUPNAME combinations, PROC SPC might generate incorrect results. One or more processes can be omitted from the analysis, and the results for remaining processes might have incorrect values.
The following example generates the problematic results when PROC SPC is run in single-machine mode or SMP:
data casuser.process;
input processname $ subgroupname $ subgroup process;
datalines;
Amount Batch 1 12.01
Amount Batch 1 11.97
Amount Batch 1 11.93
Amount Batch 1 11.98
Amount Batch 1 12.00
Kwatts Day 2 3196
Kwatts Day 2 3507
Kwatts Day 2 4050
Kwatts Day 2 3215
Kwatts Day 2 3583
Kwatts Day 2 3617
Kwatts Day 2 3789
Kwatts Day 2 3180
Diameter Batch 2 35.00
Diameter Batch 2 34.99
Diameter Batch 2 34.99
Diameter Batch 2 34.98
Diameter Batch 2 35.00
Time Lot 2 8.05
Time Lot 2 7.90
Time Lot 2 8.04
Time Lot 2 8.06
Time Lot 2 8.01
Time Lot 2 7.99
Time Lot 2 8.03
Time Lot 2 8.06
Time Lot 2 8.02
Time Lot 2 8.02
Time Lot 2 7.97
Time Lot 2 8.03
;
proc spc data=casuser.process;
xrchart;
run;
The problem is unpredictable because it is data-specific, and it also depends on how the data are distributed across worker nodes and the threads within each node. The incorrect results have been observed only when there are a small number of subgroups.