-
Notifications
You must be signed in to change notification settings - Fork 14
/
Chapter 09.sas
143 lines (107 loc) · 3.23 KB
/
Chapter 09.sas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
proc sgplot data=sales_eur;
series x=date y=Sales_EUR;
run;
PROC EXPAND data=sales_eur OUT=sales_smooth METHOD=NONE;
CONVERT Sales_EUR = Sales_Smooth / TRANSFORM = (MOVAVE 12 trimleft 11);
RUN;
proc sgplot data=sales_smooth;
series x=date y=Sales_EUR;
series x=date y=Sales_Smooth;
run;
proc adaptivereg data=sales_smooth;
format date date9.;
model Sales_Smooth = date;
ods output BWDParams=KnotPoints;
output out=Sales_adpt predicted=pred_adpt;
where Year >= 1998 ;
run;
filename reflines 'c:/tmp/reflines.sas';
data _NULL_;
set KnotPoints;
where upcase(variable) ne 'INTERCEPT';
format knot 8.;
file reflines;
put @04 "refline " knot " / axis = x;";
run;
proc sgplot data=Sales_adpt;
series x=date y=Sales_Smooth;
series x=date y=pred_adpt;
%include reflines;
run;
proc shewhart data=work.sales_eur ;
xschart sales_eur*year / outhistory=sales_mean;* lsl=1500;
where 1998 <= year <= 2014;
run;
proc adaptivereg data=sales_mean details=(fwdsummary bwdsummary);
format date date9.;
model sales_eurx = year;
ods output BWDParams=KnotPoints;
output out=Sales_adpt predicted=pred_adpt;
run;
filename reflines 'c:/tmp/reflines.sas';
data _NULL_;
set KnotPoints;
where upcase(variable) ne 'INTERCEPT';
format knot 8.;
file reflines;
put @04 "refline " knot " / axis = x;";
run;
proc sgplot data=Sales_adpt;
series x=year y=sales_eurx;
series x=year y=pred_adpt;
%include reflines;
run;
proc adaptivereg data=sales_mean;
format date date9.;
model sales_eurs = year;
ods output BWDParams=KnotPoints;
output out=Sales_adpt predicted=pred_adpt;
run;
filename reflines 'c:/tmp/reflines.sas';
data _NULL_;
set KnotPoints;
where upcase(variable) ne 'INTERCEPT';
format knot 8.;
file reflines;
put @04 "refline " knot " / axis = x;";
run;
proc sgplot data=Sales_adpt;
series x=year y=sales_eurs;
series x=year y=pred_adpt;
%include reflines;
run;
*** 9.4;
data flights_911_xt;
set flights_911;
Month = month(date);
Year = year(date);
Passengers_Dif = dif12(passengers);
run;
data Visitors_MarchApril;
set flights_911_xt;
Visitors = (Passengers_Dif + 5000000)/100;
format Easter PalmSunday HolidayStart date9.;
if year = 1993 then Easter = '11APR1993'd;
else if year = 1994 then Easter = '03APR1994'd;
else if year = 1995 then Easter = '16APR1995'd;
else if year = 1996 then Easter = '07APR1996'd;
else if year = 1997 then Easter = '30MAR1997'd;
else if year = 1998 then Easter = '12APR1998'd;
else if year = 1999 then Easter = '04APR1999'd;
else if year = 2000 then Easter = '23APR2000'd;
if Month=3 then MonthName = '3-March';
else MonthName = '4-April';
PalmSunday = Easter - 7;
HolidayStart = Easter - 9;
HolidayStartMonth = month(PalmSunday);
If HolidayStartMonth = 3 then UpperBand = 12; else Upperband = 0;
LowerBand=0;
where month in (3,4) and 1992 < year(date) < 2001;
run;
proc sgplot data=Visitors_MarchApril;
series x=year y=Visitors / group=MonthName ;
step x=year y=HolidayStartMonth / y2axis justify=center lineattrs=(color=green );
band x=year upper=upperband lower=0 / transparency=0.8;
yaxis min=0;
y2axis values=(0 to 12 by 1) integer;
run;