"Multi-vari" charts[30] are used in a variety of industries to analyze process data with nested (hierarchical) patterns of variation
within-sample variation (for example, position within wafer)
sample-to-sample variation within batches of samples (for example, wafer within lot)
batch-to-batch variation (for example, across lots)
This example illustrates the construction of a "multi-vari" display. The following statements create a SAS data set named
Parm
that contains the value of a measured parameter (Measure
) recorded at each of five positions on wafers produced in lots.
data Parm; length _phase_ $ 5 Wafer $ 2 Position $ 1; input _phase_ $ & Wafer $ & Position $ Measure ; datalines; Lot A 01 L 2.42435 Lot A 01 B 2.44150 Lot A 01 C 2.42143 Lot A 01 T 2.44960 Lot A 01 R 2.50050 Lot A 02 L 2.68188 Lot A 02 B 2.57195 Lot A 02 C 2.54678 Lot A 02 T 2.65978 Lot A 02 R 2.69208 Lot A 03 L 2.18005 Lot A 03 B 2.13593 Lot A 03 C 2.44303 Lot A 03 T 2.29052 Lot A 03 R 2.25963 Lot B 01 L 2.46573 Lot B 01 B 2.44898 Lot B 01 C 2.52365 ... more lines ... Lot G 03 C 2.66303 Lot G 03 T 2.65913 Lot G 03 R 2.84378 ;
The following statements create an ordinary side-by-side box-and-whisker display for the measurements.
ods graphics off; title 'Box-and-Whisker Display for Measured Parameter'; proc shewhart data=Parm; boxchart Measure*Wafer / nolimits boxstyle = schematic idsymbol = square readphase = all phaselegend nolegend; label Measure = 'Measurement' Wafer = 'Wafer Within Lot'; run;
The display is shown in Output 18.7.1. Here, the subgroup-variable is Wafer
, and the option BOXSTYLE=
SCHEMATIC is specified to request schematic box-and-whisker plots for the measurements in each subgroup (wafer) sample. The
lot values are provided as the values of the special variable _PHASE_
, which is read when the option READPHASE=
ALL is specified. The option PHASELEGEND
requests the legend for phase (lot) values at the top of the chart, and the NOLEGEND
option suppresses the default legend for sample sizes. The NOLIMITS
option suppresses the display of control limits. This option is recommended whenever you are using the BOXCHART statement
to create side-by-side box-and-whisker plots.
Output 18.7.1: Box-and-Whisker Plot Using BOXSTYLE=SCHEMATIC
The box-and-whisker display in Output 18.7.1 is not particularly appropriate for these data because there are only five measurements in each wafer and because the variation within each wafer might depend on the position, which is not indicated. The next statements use the BOXCHART statement to produce a multi-vari chart for the same data.
symbol v=none; title 'Multi-Vari Display for Measured Parameter'; proc shewhart data=Parm; boxchart Measure*Wafer / nolimits boxstyle = pointsjoin idsymbol = square cphaseboxfill = ywh cphasebox = black cphasemeanconnect = bib phasemeansymbol = dot readphase = all phaselegend nolegend; label Measure = 'Measurement' Wafer = 'Wafer Within Lot'; run;
The display is shown in Output 18.7.2.
Output 18.7.2: Multi-Vari Chart Using BOXSTYLE=POINTSJOIN
The option BOXSTYLE=POINTSJOIN specifies that the values for each wafer are to be displayed as points joined by a vertical line. The IDSYMBOL= option specifies the symbol marker for the points. The option V=NONE in the SYMBOL statement is specified to suppress the symbol for the wafer averages shown in Output 18.7.1. The option CPHASEBOX= BLACK specifies that the points for each lot are to be enclosed in a black box, and the CPHASEBOXFILL= option specifies the fill color for the box. The option CPHASEMEANCONNECT= BLACK specifies that the means of the lots are to be connected with black lines, and the PHASEMEANSYMBOL= option specifies the symbol marker for the lot means.
The following statements create a slightly different multi-vari chart using the values of the variable Position
to identify the measurements for each wafer. Note that the option BOXSTYLE=POINTSID is specified and that Position
is specified as the ID variable. The display is shown in Output 18.7.3.
symbol v=none; title 'Multi-Vari Display for Measured Parameter'; proc shewhart data=Parm; boxchart Measure*Wafer / nolimits cphaseboxfill = ywh cphasemeanconnect = black boxstyle = pointsid phasemeansymbol = dot readphase = all phaselegend nolegend; label Measure = 'Measurement' Wafer = 'Wafer Within Lot'; id Position; run;
Output 18.7.3: Multi-Vari Chart Using BOXSTYLE=POINTSID