One-sided Cusum Chart
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: CUSONES1 */
/* TITLE: One-sided Cusum Chart */
/* PRODUCT: QC */
/* SYSTEM: ALL */
/* KEYS: Cusum Charts, */
/* PROCS: CUSUM */
/* DATA: */
/* SUPPORT: saswgr */
/* REF: PROC CUSUM, XCHART Statement, Getting Started 1 */
/* */
/****************************************************************/
data Cans;
length comment $16;
label Hour = 'Hour';
input Hour Weight comment $16. ;
datalines;
1 8.024
2 7.971
3 8.125
4 8.123
5 8.068
6 8.177 Pump Adjusted
7 8.229 Pump Adjusted
8 8.072
9 8.066
10 8.089
11 8.058
12 8.147
13 8.141
14 8.047
15 8.125
;
ods graphics off;
options nogstyle;
goptions ftext='albany amt';
symbol v=dot color=salmon h=1.8 pct;
title "One-Sided Cusum Analysis";
proc cusum data=Cans;
xchart Weight*Hour /
mu0 = 8.100 /* target mean for process */
sigma0 = 0.050 /* known standard deviation */
delta = 1 /* shift to be detected */
h = 3 /* cusum parameter h */
k = 0.5 /* cusum parameter k */
scheme = onesided /* one-sided decision interval */
tableall /* table */
cinfill = ywh
cframe = bigb
cout = salmon
cconnect = salmon
climits = black
coutfill = bilg;
label Weight = 'Cusum of Weight';
run;
options gstyle;
ods graphics on;
title 'One-Sided Cusum Analysis';
proc cusum data=Cans;
xchart Weight*Hour /
mu0 = 8.100 /* target mean for process */
sigma0 = 0.050 /* known standard deviation */
delta = 1 /* shift to be detected */
h = 3 /* cusum parameter h */
k = 0.5 /* cusum parameter k */
scheme = onesided /* one-sided decision interval */
outlimits = cusparm
odstitle = title
markers;
label Weight = 'Cusum of Weight';
run;
proc print data=cusparm;
run;
data Cans2;
length pump $ 8;
label Hour = 'Hour';
input Hour Weight pump $ 8. ;
datalines;
16 8.1765 Pump 3
17 8.0949 Pump 3
18 8.1393 Pump 3
19 8.1491 Pump 3
20 8.0473 Pump 1
21 8.1602 Pump 1
22 8.0633 Pump 1
23 8.0921 Pump 1
24 8.1573 Pump 1
25 8.1304 Pump 1
26 8.0979 Pump 1
27 8.2407 Pump 1
28 8.0730 Pump 1
29 8.0986 Pump 2
30 8.0785 Pump 2
31 8.2308 Pump 2
32 8.0986 Pump 2
33 8.0782 Pump 2
34 8.1435 Pump 2
35 8.0666 Pump 2
;
title "One-Sided Cusum Analysis for New Data";
proc cusum data=Cans2 limits=cusparm;
xchart Weight*Hour( pump ) / odstitle=title markers;
label Weight = 'Cusum of Weight';
run;