/* This is the Airline Passenger data originally analyzed by Box and Jenkins in their classic textbook(1970). This program conducts the OCSB test for Seasonal and Nonseasonal unit roots on the log transformed data. */ data airline; format date monyy5.; input date:monyy5. pass @@; cards; jan49 112 feb49 118 mar49 132 apr49 129 may49 121 jun49 135 jul49 148 aug49 148 sep49 136 oct49 119 nov49 104 dec49 118 jan50 115 feb50 126 mar50 141 apr50 135 may50 125 jun50 149 jul50 170 aug50 170 sep50 158 oct50 133 nov50 114 dec50 140 jan51 145 feb51 150 mar51 178 apr51 163 may51 172 jun51 178 jul51 199 aug51 199 sep51 184 oct51 162 nov51 146 dec51 166 jan52 171 feb52 180 mar52 193 apr52 181 may52 183 jun52 218 jul52 230 aug52 242 sep52 209 oct52 191 nov52 172 dec52 194 jan53 196 feb53 196 mar53 236 apr53 235 may53 229 jun53 243 jul53 264 aug53 272 sep53 237 oct53 211 nov53 180 dec53 201 jan54 204 feb54 188 mar54 235 apr54 227 may54 234 jun54 264 jul54 302 aug54 293 sep54 259 oct54 229 nov54 203 dec54 229 jan55 242 feb55 233 mar55 267 apr55 269 may55 270 jun55 315 jul55 364 aug55 347 sep55 312 oct55 274 nov55 237 dec55 278 jan56 284 feb56 277 mar56 317 apr56 313 may56 318 jun56 374 jul56 413 aug56 405 sep56 355 oct56 306 nov56 271 dec56 306 jan57 315 feb57 301 mar57 356 apr57 348 may57 355 jun57 422 jul57 465 aug57 467 sep57 404 oct57 347 nov57 305 dec57 336 jan58 340 feb58 318 mar58 362 apr58 348 may58 363 jun58 435 jul58 491 aug58 505 sep58 404 oct58 359 nov58 310 dec58 337 jan59 360 feb59 342 mar59 406 apr59 396 may59 420 jun59 472 jul59 548 aug59 559 sep59 463 oct59 407 nov59 362 dec59 405 jan60 417 feb60 391 mar60 419 apr60 461 may60 472 jun60 535 jul60 622 aug60 606 sep60 508 oct60 461 nov60 390 dec60 432 ; data airline; set airline; lpass=log(pass); pass1 = dif(pass); pass12 = dif12(pass); pass112 = dif(pass12); lpass1 = dif(lpass); lpass12 = dif12(lpass); lpass112 = dif(lpass12); data airline; set airline; lp1121 = lag(lpass112); lp1122 = lag2(lpass112); lp1123 = lag3(lpass112); lp1124 = lag4(lpass112); lp1125 = lag5(lpass112); lp1126 = lag6(lpass112); lp1127 = lag7(lpass112); lp1128 = lag8(lpass112); lp1129 = lag9(lpass112); lp11210 = lag10(lpass112); lp11211 = lag11(lpass112); lp11212 = lag12(lpass112); z1 = lag(lpass12); z2 = lag12(lpass1); /* Here we are looking for the right number of lags to put in the OCSB test equation. We initially try 12 lags but some of them turn out to be insignificant. So we eliminate lags until all remaining lags are significant. Thereafter we compute the necessary F-statistic and compare it to the special F-Table appropriate for the OCSB test. */ /* All lags are in this OCSB test equation. */ proc reg data=airline; model lpass112 = z1 z2 lp1121 - lp1129 lp11210 - lp11212; test z1,z2; /* We eliminate some lags. */ /* This is our "final" OCSB test equation. */ proc reg data=airline; model lpass112 = z1 z2 lp1121 lp1129 lp11212; test z1,z2; run;