/* donauwoerth_adjustedment.sas */ TITLE1 'Analysis of Adjusted Data'; TITLE2 'Donauwoerth Data'; /* Remove period of 2433 and 365 days */ PROC TIMESERIES DATA=donau SEASONALITY=2433 OUTDECOMP=seasad1; VAR discharge; DECOMP / MODE=ADD; PROC TIMESERIES DATA=seasad1 SEASONALITY=365 OUTDECOMP=seasad; VAR sa; DECOMP / MODE=ADD; RUN; /* Create zero-mean data set */ PROC MEANS DATA=seasad; VAR sa; DATA seasad; MERGE seasad donau(KEEP=date); sa=sa-201.6; /* Graphical options */ SYMBOL1 V=DOT I=JOIN C=GREEN H=0.3; SYMBOL2 V=NONE I=JOIN C=BLACK L=2; AXIS1 LABEL=(ANGLE=90 'Adjusted Data'); AXIS2 LABEL=('January 1985 to December 2004') ORDER=('01JAN85'd '01JAN89'd '01JAN93'd '01JAN97'd '01JAN01'd '01JAN05'd); AXIS3 LABEL=('I' F=CGREEK '(l)'); AXIS4 LABEL=(F=CGREEK 'l'); AXIS5 LABEL=(ANGLE=90 'Autocorrelation') ORDER=(-0.2 TO 1 BY 0.1); AXIS6 LABEL=('Lag') ORDER=(0 TO 1000 BY 100); LEGEND1 LABEL=NONE VALUE=('Autocorrelation of adjusted series' 'Lower 99-percent confidence limit' 'Upper 99-percent confidence limit'); /* Plot data */ PROC GPLOT DATA=seasad; PLOT sa*date=1 / VREF=0 VAXIS=AXIS1 HAXIS=AXIS2; RUN; /* Compute and plot autocorrelation of adjusted data */ PROC ARIMA DATA=seasad; IDENTIFY VAR=sa NLAG=1000 OUTCOV=corrseasad NOPRINT; /* Add confidence intervals */ DATA corrseasad; SET corrseasad; u99=0.079; l99=-0.079; PROC GPLOT DATA=corrseasad; PLOT corr*lag=1 u99*lag=2 l99*lag=2 / OVERLAY VAXIS=AXIS5 HAXIS=AXIS6 VREF=0 LEGEND=LEGEND1; RUN; /* Compute periodogram of adjusted data */ PROC SPECTRA DATA=seasad COEF P OUT=data1; VAR sa; /* Adjust different periodogram definitions */ DATA data2; SET data1(FIRSTOBS=2); p=P_01/2; lambda=FREQ/(2*CoNSTANT('PI')); DROP P_01 FREQ; /* Plot periodogram of adjusted data */ PROC GPLOT DATA=data2(OBS=100); PLOT p*lambda=1 / VAXIS=AXIS3 HAXIS=AXIS4; RUN; /* Test for stationarity */ PROC ARIMA DATA=seasad; IDENTIFY VAR=sa NLAG=100 STATIONARITY=(ADF=(7,8,9)); RUN; QUIT;