KEEP SERIEA1-SERIEA&N 47 RUN: 48 PROC TRANSPOSE OUT=GENERATI 49 RUN 50 DATA GENERAT SET GENERATI ID=_ N SERIESA=COLI UTPU DROP COLI 56 RUN 58 ** transpose series b to prepare it for analy 59 DATA GENERAT2 SET GENERATE& J KEEP SERIEBl=SERIEB&N PROC TRANSPOSE OUT=GENERAT2 DATA GENERAT2 ET GENERAT2 SERIESB=COL1 OUTPUT: DROP COLI 70 ** transpose series c to prepare it for analysis 71 DATA GENERAT3 SET GENERATE&. KEEP SERIEC1-SERIEC&N: PROC TRANSPOSE OUT= GENERAT3 75 DATA GENERAT3 SET GENERAT3 SERIESCCOL1 OUTPUT: DROP COLI 81 **k merge the three series by observation 82 DATA GENERATE&J MERGE GENERATI GENERAT2 GENERAT3 BY ID KEEP ID SERIESA SERISEB SERIESC 86 **k* fits the multivariate model to the series data: 87 PROC STATESPACE INTERVALEDAY MAXIT=200 ARMAX=1 LAGMAX=1 NOPRINT OUTMODEL=ARCOEFFS k** outputs the collected statistics var seriesa series seriese TITLE'MULTIVARIATE.ARIMA(1,0,0)_CROSSLAGGED_RESULTS
二 46 KEEP SERIEA1−SERIEA&N; 47 RUN; 48 PROC TRANSPOSE OUT=GENERAT1; 49 RUN; 50 DATA GENERAT1; 51 SET GENERAT1; 52 ID= N ; 53 SERIESA=COL1; 54 OUTPUT; 55 DROP COL1; 56 RUN; 57 58 ∗∗∗ transpose series b to prepare it for analysis ; 59 DATA GENERAT2; 60 SET GENERATE&J; 61 KEEP SERIEB1=SERIEB&N; 62 PROC TRANSPOSE OUT=GENERAT2; 63 DATA GENERAT2; 64 SET GENERAT2; 65 ID= N ; 66 SERIESB=COL1; 67 OUTPUT; 68 DROP COL1; 69 70 ∗∗∗ transpose series c to prepare it for analysis ; 71 DATA GENERAT3; 72 SET GENERATE&J; 73 KEEP SERIEC1−SERIEC&N; 74 PROC TRANSPOSE OUT=GENERAT3; 75 DATA GENERAT3; 76 SET GENERAT3; 77 ID= N ; 78 SERIESC=COL1; 79 OUTPUT; 80 DROP COL1; 81 ∗∗∗ merge the three series by observation; 82 DATA GENERATE&J; 83 MERGE GENERAT1 GENERAT2 GENERAT3; 84 BY ID; 85 KEEP ID SERIESA SERISEB SERIESC; 86 ∗∗∗ fits the multivariate model to the series data; 87 PROC STATESPACE INTERVAL=DAY MAXIT=200 ARMAX=1 LAGMAX=1 NOPRINT 88 OUTMODEL=ARCOEFFS; 89 ∗∗∗ outputs the collected statistics var seriesa seriesb seriesc ; 90 TITLE ’MULTIVARIATE ARIMA (1,0,0) CROSSLAGGED RESULTS’; 91 - 27 -
*** plucks parameter estimates for series a out of statespace output 93 DATA GENERATI SET ARCOEFFS 56g990 KEEP F1 F2 F 3 SIG_1 SIG_2 SIG_3 RESCOVAA=SIG_1: RESCOVAB=SIG_2: RESCOVAC=SIG_3 98 AR_AA=F-1**2: AR_AB=F-2**2: AR_AC=F-3 KEEP AR AA AR AB AR AC RESCOVAA RESCOVAB RESCOVAC OUTPUT 101 102***plucks parameter estimates for series B out of statespace output 103 DATA GENERAT SET ARCOEFFS IFN=3 106 KEEP F1 F2 F3 SIG_1 SIG_2 SIG_3 RESCOVBA=SIG- 1; RESCOVBB=SIG- 2: RESCOVBC=SIG_3 ARBA=F-1**2: AR BB=F_ 2**2: AR__ BC=F-3: KEEP AR__ BA AR_ BB AR_ BC RESCOVBA RESCOVBB RESCOVBC OUTPUT. 112***plucks parameter estimates for series C out of statespace output 113 DATA GENERAT3 114 SET ARCOEFFS 15 IF N=1: 116 KEEP F1 F2 F 3 SIG_1 SIG 2 SIG 3 RESCOVCA=SIG- 1; RESCOVCB=SIG. 2: RESCOVCC=SIG_3: AR CA=F 1**2: AR CB=F 2**2: AR CC=F 3 KEEP AR_CA AR_CB AR_CC RESCOVCA RESCOVCB RESCOVCC OUTPUT 121 *** merges the parameter estimate for each of the three serie 123 DATA ARCOEFFS; 124 MERGE GENERATI GENERAT2 GENERAT3 GENERATE&. SceNaRIO=&SCENARI OUTPUT: KEEP AR_AA AR_ AB AR AC RESCOVAA RESCOVAB RESCOVAC AR_BA AR_ BB AR BC RESCOVBA RESCOVBB RESCOVBC AR_CA AR_CB AR_CC RESCOVCA RESCOVCB RESCOVCC SCENARIO M A MB MC VAR A VAR B VAR_C ** frees some of the memory space for SAS 133 PROC DELETE DATA=GENERATE&. PROC DELETE DATA=GENERAT1 135 PROC DELETE DATA=GENERAT2 PROC DELETE DATA=GENERAT3 *** adds the parameter information to an output file for one of 200
2.15 92 ∗∗∗ plucks parameter estimates for series a out of statespace output; 93 DATA GENERAT1; 94 SET ARCOEFFS; 95 IF N =1; 96 KEEP F 1 F 2 F 3 SIG 1 SIG 2 SIG 3; 97 RESCOVAA=SIG 1; RESCOVAB=SIG 2; RESCOVAC=SIG 3; 98 AR AA=F 1∗∗2; AR AB=F 2∗∗2; AR AC=F 3; 99 KEEP AR AA AR AB AR AC RESCOVAA RESCOVAB RESCOVAC; 100 OUTPUT; 101 102 ∗∗∗ plucks parameter estimates for series B out of statespace output; 103 DATA GENERAT2; 104 SET ARCOEFFS; 105 IF N =3; 106 KEEP F 1 F 2 F 3 SIG 1 SIG 2 SIG 3; 107 RESCOVBA=SIG 1; RESCOVBB=SIG 2; RESCOVBC=SIG 3; 108 AR BA=F 1∗∗2; AR BB=F 2∗∗2; AR BC=F 3; 109 KEEP AR BA AR BB AR BC RESCOVBA RESCOVBB RESCOVBC; 110 OUTPUT; 111 112 ∗∗∗ plucks parameter estimates for series C out of statespace output; 113 DATA GENERAT3; 114 SET ARCOEFFS; 115 IF N =1; 116 KEEP F 1 F 2 F 3 SIG 1 SIG 2 SIG 3; 117 RESCOVCA=SIG 1; RESCOVCB=SIG 2; RESCOVCC=SIG 3; 118 AR CA=F 1∗∗2; AR CB=F 2∗∗2; AR CC=F 3; 119 KEEP AR CA AR CB AR CC RESCOVCA RESCOVCB RESCOVCC; 120 OUTPUT; 121 122 ∗∗∗ merges the parameter estimate for each of the three series ; 123 DATA ARCOEFFS; 124 MERGE GENERAT1 GENERAT2 GENERAT3 GENERATE&J; 125 SCENARIO=&SCENARI; 126 OUTPUT; 127 KEEP AR AA AR AB AR AC RESCOVAA RESCOVAB RESCOVAC 128 AR BA AR BB AR BC RESCOVBA RESCOVBB RESCOVBC 129 AR CA AR CB AR CC RESCOVCA RESCOVCB RESCOVCC 130 SCENARIO M A M B M C VAR A VAR B VAR C; 131 132 ∗∗∗ frees some of the memory space for SAS; 133 PROC DELETE DATA=GENERATE&J; 134 PROC DELETE DATA=GENERAT1; 135 PROC DELETE DATA=GENERAT2; 136 PROC DELETE DATA=GENERAT3; 137 138 ∗∗∗ adds the parameter information to an output file for one of 200 - 28 -
第二章估计方法引论 terations; 139PROC APPEND BASE-MULTITS RESULT(CNTLLEV=MEMBER 141%END; 142%MEND COMPUTE 144*** the following macro statements feed the macro above the parameters for each condition under study; 145% MULTITS(200,100.20,.80 20,60,20, 15,45,10,30,1) 148 49% MULTITS(200,500,20,80, 20.60.20 15,45,10,30,2) 152% MULTITS(200100020,80 15,45,10,30,3) 156 PROC SORT BY SCENARIO 159 **k summmary summarizes the results for each condition 160 PROC SUMMARY PRINT VARDEF=N MAXDEC=2 FW=8 CLASS SCENARIO VAR AR AA AR AB AR AC AR BA AR BB AR BC AR CA AR CB AR CC RESCOVAA RESCOVAB RESCOVAC RESCOVBA RESCOVBB RESCOVBC 666 RESCOVCA RESCOVCB RESCOVCC TITLE1’** SCENARIO.1(N=100)心** TITLE2**** SCENARIO_2-(N=500)-****; TITLE3**** SCENARIO__(N=1000)_k***k TITLE5'AR_AA=80_AR_BB=60_AR__CC= 45 TITLE6'AR_BA=20_AR_CA=10_AR_CB=.30 TITLE7 175RUN
第二章 估计方法引论 iterations ; 139 PROC APPEND BASE=MULTITS.RESULT (CNTLLEV=MEMBER); 140 141 %END; 142 %MEND COMPUTE; 143 144 ∗∗∗ the following macro statements feed the macro above the parameters for each condition under study; 145 %MULTITS(200,100,.20,.80, 146 .20,.60,.20, 147 .15,.45,.10,.30,1) ; 148 149 %MULTITS(200,500,.20,.80, 150 .20,.60,.20, 151 .15,.45,10,.30,2) ; 152 %MULTITS(200,1000,.20,.80, 153 .20,.60,.20, 154 .15,.45,.10,.30,3) ; 155 156 PROC SORT; 157 BY SCENARIO; 158 159 ∗∗∗ summmary summarizes the results for each condition; 160 PROC SUMMARY PRINT VARDEF=N MAXDEC=2 FW=8; 161 CLASS SCENARIO; 162 VAR AR AA AR AB AR AC 163 AR BA AR BB AR BC 164 AR CA AR CB AR CC 165 RESCOVAA RESCOVAB RESCOVAC 166 RESCOVBA RESCOVBB RESCOVBC 167 RESCOVCA RESCOVCB RESCOVCC; 168 169 TITLE1 ’∗∗∗∗ SCENARIO 1 (N=100) ∗∗∗∗’; 170 TITLE2 ’∗∗∗∗ SCENARIO 2 (N=500) ∗∗∗∗’; 171 TITLE3 ’∗∗∗∗ SCENARIO 3 (N=1000) ∗∗∗∗’; 172 TITLE5 ’AR AA=.80 AR BB=.60 AR CC=.45’; 173 TITLE6 ’AR BA=.20 AR CA=.10 AR CB=.30’; 174 TITLE7 ’ ’; 175 RUN; - 29 -
源代码2.4 PROC ARIMA Macro Example for a Monte Carlo Study 1 LIBNAME AUTOREG 'D: MYDOCUMENT\DATASET\( SAS 3 OPTIONS LINESIZE=100 NOSOURCE NOSOURCE2 NONOTES: * **k* Log file will 4 report errors only; 7/*This program was written to consider only six different research 8 situations The number of observations in the series 10*//* ARLAG The squared value of the lag relationship desired 11*//* VARIANCE The squared value of the error variance desired 12*//* SCENARI The designated number id of a given condition 13*//*REP The replications of programme 14 15/米来*****来来本***米本***米本**米来**率本本**米*率本**米*本*率*来**来** 16 ** Lables six conditions 17 PROC FORMAT VALUE SCENE 191= ARAG**2=-40,N=.100 2=ALAG**2_=_60,N=_100 012345 3= ARLAC**2=_80,NL=-100 4=' ARLAC**2=_40.N=500 5= ARLAC**2=_60,N=500 6= ARLAn**2=_80,N=500 Macro begil 27 %MACRO ARI(N, ARLAG, VARIANCE, SCENARI, REP); %DO J=l %TO &REP; *** replications DATA SEM&j. 31 ARRAY SERIE SERIE1-SERIE& N: ** Room is made for observations SERIE(1)=RANNOR(1);*** generate ARl data DOJ=2TO &N: serie(= SQRT(&arlag)*serie(J-1)+ sqrt (& variance)** ANNOR(1) OUTPUT: KEEP SERIE1-SERIE&N: RUN PROC TRANSPOSE OUT=D2; ***Transposes series to a column
2.15 源代码 2.4 PROC ARIMA Macro Example for a Monte Carlo Study 1 LIBNAME AUTOREG ’D:\MYDOCUMENT\DATASET\SAS’; 2 3 OPTIONS LINESIZE=100 NOSOURCE NOSOURCE2 NONOTES; ∗∗∗ Log file will 4 report errors only; 5 6 /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ 7 /∗This program was written to consider only six different research 8 situations . ∗/ /∗Parametes: 9 ∗/ /∗ N The number of observations in the series . 10 ∗/ /∗ ARLAG The squared value of the lag relationship desired. 11 ∗/ /∗ VARIANCE The squared value of the error variance desired. 12 ∗/ /∗ SCENARI The designated number id of a given condition. 13 ∗/ /∗ REP The replications of programme. 14 ∗/ 15 /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ 16 ∗∗∗ Lables six conditions; 17 PROC FORMAT; 18 VALUE SCENE 19 1 = ’ARLAG∗∗2 = .40, N = 100’ 20 2 = ’ARLAG∗∗2 = .60, N = 100’ 21 3 = ’ARLAG∗∗2 = .80, N = 100’ 22 4 = ’ARLAG∗∗2 = .40, N = 500’ 23 5 = ’ARLAG∗∗2 = .60, N = 500’ 24 6 = ’ARLAG∗∗2 = .80, N = 500’ 25 ; 26 ∗∗∗ Macro begins; 27 %MACRO AR1(N,ARLAG,VARIANCE,SCENARI,REP); 28 %DO J=1 %TO &REP; ∗∗∗ replications ; 29 30 DATA SEM&J; 31 ARRAY SERIE SERIE1−SERIE&N;∗∗∗Room is made for observations; 32 33 SERIE(1)=RANNOR(−1); ∗∗∗ generate AR1 data; 34 DO J=2 TO &N; 35 SERIE(J) = SQRT(&ARLAG)∗SERIE(J−1) + SQRT(&VARIANCE)∗ RANNOR(−1); 36 END; 37 OUTPUT; 38 KEEP SERIE1−SERIE&N; 39 RUN; 40 41 PROC TRANSPOSE OUT=D2;∗∗∗Transposes series to a column; 42 RUN; 43 - 30 -
DATA D2 4564490 SET D2 RUN PROC ARIMA DATA=D2 IDENTIFY VAR=COLI NALG=l NOPRINT ESTIMATE P=1 OUTSTAT=ARIMAl OUTMODELEARIMA2 NOPRINT MAXIT=5000 RUN DATA ARIMAI SET ARIMAI KEEP VALUE- STAT IF1<=N<=2; PROC TRANSPOSE OUT=ARIMAl 58901 DATA ARIMAl T ARIMAl SBC=CO OUTPUT KEEP AIC SBC. DATA ARIMA2 ARLAG= VALUE 0m723 ARLAGSTD= STD TTEST=ARLAG/ARLAGSTD OUTPUT KEEP ARLAG TTEST DATA COMBINE MERGE ARIMAI ARIMA2 67898 SCENARIO=&SCENARI DUTPUT PROC APPEND BASE=AUTOREG RESULTI (CNTLLEV=MEMBER) %EN 83 %MEND; ** End of Macro 85%AR1(100,.40,60,1,10) 86%AR1(100,60,.40,2,10) 87%AR1(100.80,20,3,10) 88%AR1(100,40,60,4,10); 89%AR1(100,60,40,5,10);
二 44 DATA D2; 45 SET D2; 46 RUN; 47 48 PROC ARIMA DATA=D2; 49 IDENTIFY VAR=COL1 NALG=1 NOPRINT; 50 ESTIMATE P=1 OUTSTAT=ARIMA1 OUTMODEL=ARIMA2 NOPRINT MAXIT=5000; 51 RUN; 52 53 DATA ARIMA1; 54 SET ARIMA1; 55 KEEP VALUE STAT ; 56 IF 1<= N <=2; 57 PROC TRANSPOSE OUT=ARIMA1; 58 59 DATA ARIMA1; 60 SET ARIMA1; 61 AIC=COL1; 62 SBC=COL2; 63 OUTPUT; 64 KEEP AIC SBC; 65 66 DATA ARIMA2; 67 SET ARIMA2; 68 IF N =6; 69 ARLAG= VALUE ; 70 ARLAGSTD= STD ; 71 TTEST=ARLAG/ARLAGSTD; 72 OUTPUT; 73 KEEP ARLAG TTEST; 74 75 DATA COMBINE; 76 MERGE ARIMA1 ARIMA2; 77 SCENARIO=&SCENARI; 78 OUTPUT; 79 80 PROC APPEND BASE=AUTOREG.RESULT1 (CNTLLEV=MEMBER); 81 82 %END; 83 %MEND ;∗∗∗End of Macro; 84 85 %AR1(100,.40,.60,1,10); 86 %AR1(100,.60,.40,2,10); 87 %AR1(100,.80,.20,3,10); 88 %AR1(100,.40,.60,4,10); 89 %AR1(100,.60,.40,5,10); - 31 -