Lung Function Analysis of an Asthma Patient
/*--------------------------------------------------------------
SAS Sample Library
Name: ssmex15.sas
Description: Example program from SAS/ETS User's Guide,
The SSM Procedure
Title: Lung Function Analysis of an Asthma Patient
Product: SAS/ETS Software
Keys: Multivariate Modeling, Factor Model
PROC: SSM
Notes:
--------------------------------------------------------------*/
data asth;
input time y @@;
datalines;
8 520
10 500
12 540
14 520
16 500
18 500
20 510
22 500
32 480
34 510
36 500
38 500
40 520
42 540
44 520
46 520
56 500
58 480
60 480
62 520
64 540
66 560
68 520
70 500
80 460
82 470
84 500
86 480
88 520
90 500
92 500
94 510
104 480
106 480
108 510
110 480
112 500
114 520
116 540
118 520
130 470
132 500
134 510
136 520
138 510
140 530
142 520
154 500
156 520
158 500
160 480
162 500
164 520
166 500
176 460
178 450
180 480
182 500
184 520
186 500
188 510
190 510
200 480
202 510
204 500
206 520
208 520
210 520
212 540
224 500
226 520
228 510
230 500
232 520
234 530
236 520
238 520
248 480
250 470
252 480
254 460
256 460
258 500
260 520
262 500
272 470
274 480
276 500
278 500
280 480
282 520
284 500
296 450
298 470
300 460
302 480
304 500
306 520
308 520
310 520
320 480
322 500
324 510
326 500
328 520
330 540
332 560
334 520
344 460
346 480
348 500
350 480
352 520
354 500
356 520
358 500
368 470
370 480
372 470
374 500
376 480
378 520
380 500
392 440
394 460
396 480
398 460
400 480
402 500
404 520
406 520
416 480
418 500
420 520
422 520
424 550
426 530
428 520
430 500
440 500
442 520
444 500
446 530
448 520
450 500
452 520
454 500
464 480
466 470
468 500
470 500
472 500
474 520
476 540
478 520
488 460
490 460
492 480
494 500
496 530
498 500
500 520
502 500
512 450
514 430
516 460
518 460
520 480
522 500
524 480
536 460
538 420
540 450
542 500
544 480
546 460
548 500
550 520
584 420
586 440
588 480
590 460
592 440
594 460
596 480
608 470
610 480
612 500
614 520
616 520
618 500
620 540
622 520
632 480
634 500
636 430
638 520
640 520
642 530
644 540
646 530
656 470
658 480
660 470
662 480
664 500
666 520
668 560
670 520
;
data append(keep=time y);
do i=1 to 30 by 2;
time = 670+i;
y = .;
output;
end;
run;
proc append base=asth data=append; run;
title;
proc ssm data=asth;
id time;
state s1(1) type=cycle(CT) cov(g);
comp c1 = s1[1];
intercept = 1;
irregular wn;
model y= intercept time c1 wn;
output out=for1 press;
eval pattern=intercept+time+c1;
run;
proc sgplot data=for1;
title "Estimated Stochastic Cycle";
title2 "(Period = 24.78 Hours and Damping Factor = 0.97)";
series x=time y=smoothed_c1;
refline 0 / axis=y lineattrs=(pattern=dash);
run;
title;
proc sgplot data=for1;
where time > 300;
title "Estimated Pattern: Time Trend + Stochastic Cycle";
series x=time y=smoothed_pattern;
scatter x=time y=y;
refline 671 / axis=x lineattrs=GraphReference(pattern = Dash)
name="RefLine" label="Start of multistep forecasts";
run;