Resources

Exponentially Weighted Moving Average Chart

/*******************************************************************/
/*          S A S   S A M P L E   L I B R A R Y                    */
/*                                                                 */
/*    NAME: MACEW1                                                 */
/*   TITLE: Exponentially Weighted Moving Average Chart            */
/* PRODUCT: QC                                                     */
/*  SYSTEM: ALL                                                    */
/*    KEYS: Moving Average Charts,                                 */
/*   PROCS: MACONTROL                                              */
/*    DATA:                                                        */
/*                                                                 */
/* SUPPORT: saswgr                                                 */
/*     REF: PROC MACONTROL, EWMACHART Statement, Getting Started   */
/*                                                                 */
/*******************************************************************/

data Clips1;
   input Day @ ;
   do i=1 to 5;
      input Gap @ ;
      output;
   end;
   drop i;
   datalines;
 1  14.76  14.82  14.88  14.83  15.23
 2  14.95  14.91  15.09  14.99  15.13
 3  14.50  15.05  15.09  14.72  14.97
 4  14.91  14.87  15.46  15.01  14.99
 5  14.73  15.36  14.87  14.91  15.25
 6  15.09  15.19  15.07  15.30  14.98
 7  15.34  15.39  14.82  15.32  15.23
 8  14.80  14.94  15.15  14.69  14.93
 9  14.67  15.08  14.88  15.14  14.78
10  15.27  14.61  15.00  14.84  14.94
11  15.34  14.84  15.32  14.81  15.17
12  14.84  15.00  15.13  14.68  14.91
13  15.40  15.03  15.05  15.03  15.18
14  14.50  14.77  15.22  14.70  14.80
15  14.81  15.01  14.65  15.13  15.12
16  14.82  15.01  14.82  14.83  15.00
17  14.89  14.90  14.60  14.40  14.88
18  14.90  15.29  15.14  15.20  14.70
19  14.77  14.60  14.45  14.78  14.91
20  14.80  14.58  14.69  15.02  14.85
;


title 'The Data Set Clips1';
proc print data=Clips1(obs=15) noobs;
run;

ods graphics off;
symbol h = 0.8;
title 'EWMA Chart for Gap Measurements';
proc macontrol data=Clips1;
   ewmachart Gap*Day / weight=0.3;
run;

data Clipsum;
   input Day GapX GapS;
   GapN=5;
   datalines;
 1  14.904  0.18716
 2  15.014  0.09317
 3  14.866  0.25006
 4  15.048  0.23732
 5  15.024  0.26792
 6  15.126  0.12260
 7  15.220  0.23098
 8  14.902  0.17254
 9  14.910  0.19824
10  14.932  0.24035
11  15.096  0.25618
12  14.912  0.16903
13  15.138  0.15928
14  14.798  0.26329
15  14.944  0.20876
16  14.896  0.09965
17  14.734  0.22512
18  15.046  0.24141
19  14.702  0.17880
20  14.788  0.16634
;


title 'The Data Set Clipsum';
proc print data=Clipsum(obs=5) noobs;
run;

options nogstyle;
goptions ftext='albany amt';
symbol color=salmon h=0.8;
title 'EWMA Chart for Gap Measurements';
proc macontrol history=Clipsum;
   ewmachart Gap*Day / weight=0.3
                       cframe = vibg
                       cinfill = ligr
                       coutfill = yellow
                       cconnect = salmon;
run;
options gstyle;

title 'Summary Data Set for Gap Measurements';
proc macontrol data=Clips1;
   ewmachart Gap*Day / weight     = 0.3
                       outhistory = Cliphist
                       nochart;
run;

proc print data=Cliphist(obs=5) noobs;
run;

title 'Control Limit Parameters';
proc macontrol data=Clips1;
   ewmachart Gap*Day / weight    = 0.3
                       outlimits = Cliplim
                       nochart;
run;

proc print data=Cliplim noobs;
run;

title 'Summary Statistics and Control Limits';
proc macontrol data=Clips1;
   ewmachart Gap*Day / weight   = 0.3
                       outtable = Cliptab
                       nochart;
run;

proc print data=Cliptab noobs;
run;

title 'EWMA Chart for Gap Measurements';
proc macontrol table=Cliptab;
   ewmachart Gap*Day ;
run;

data Clips1a;
   label Gap='Gap Measurement (mm)';
   input Day @;
   do i=1 to 5;
      input Gap @;
      output;
   end;
   drop i;
   datalines;
21  14.86 15.01 14.67 14.67 15.07
22  14.93 14.53 15.07 15.10 14.98
23  15.27 14.90 15.12 15.10 14.80
24  15.02 15.21 14.93 15.11 15.20
25  14.90 14.81 15.26 14.57 14.94
26  14.78 15.29 15.13 14.62 14.54
27  14.78 15.15 14.61 14.92 15.07
28  14.92 15.31 14.82 14.74 15.26
29  15.11 15.04 14.61 15.09 14.68
30  15.00 15.04 14.36 15.20 14.65
31  14.99 14.76 15.18 15.04 14.82
32  14.90 14.78 15.19 15.06 15.06
33  14.95 15.10 14.86 15.27 15.22
34  15.03 14.71 14.75 14.99 15.02
35  15.38 14.94 14.68 14.77 14.83
36  14.95 15.43 14.87 14.90 15.34
37  15.18 14.94 15.32 14.74 15.29
38  14.91 15.15 15.06 14.78 15.42
39  15.34 15.34 15.41 15.36 14.96
40  15.12 14.75 15.05 14.70 14.74
;

ods graphics on;
title 'EWMA Chart for Second Set of Gap Measurements';
proc macontrol data=Clips1a limits=Cliplim;
   ewmachart Gap*Day / odstitle=title markers;
run;