1  ! PROGRAM RESI, VERSION 1A (31-AUG-73)
   !
2  ! PROGRAM RESI PRINTS AND ANALYZES RESIDUALS FOR REGS AND STEP.
   ! IT IS ONE OF THE SEVERAL PROGRAMS AND FILES WHICH COMPOSE COSAP,
   ! LAWRENCE UNIVERSITY'S CONVERSATIONALLY ORIENTED STATISTICAL
3  ! ANALYSIS PACKAGE.  COSAP IS DISTRIBUTED FOR EDUCATIONAL USE, ON
   ! THE CONDITION THAT IT NOT BE SOLD, RENTED OR LEASED FOR PROFIT.
   !
4  ! IF YOU DESIRE FURTHER INFORMATION ON COSAP, PLEASE CONTACT THE
   ! LAWRENCE UNIVERSITY COMPUTER CENTER, APPLETON, WISCONSIN, 54911.
   !
10 DIM N%(30)  ! FUNCTION TO CREATE FILE EXT. BASED ON JOB#
25 DEF FNZ$ : IF N%(0)=30% THEN 40 
    ELSE CHANGE SYS(CHR$(6)+CHR$(9)+CHR$(0)) TO N% : 
   Z8$=".J"+RIGHT(NUM$(N%(1)/2%),2%)
40 FNZ$=Z8$! EXTENSION IS".J"+JOB #
55 FNEND
70 !****RESI
85 OPEN "DAT1"+FNZ$ AS FILE 1
100 OPEN "STEP1"+FNZ$ AS FILE 2
115 DIM#1,X(200,50),H$(30)=2,C(50,50),M4(0),M5(0),M9(0),N(0),J9(0),
          I4(0),I7(0),N6(0),X2(50),L1$(8)=32%
130 DIM#2,B(50),O2(0),S2(0),Z2(50,50),M2(200),M(0),L2(200),B3(200),
         N2(0)
145 OPEN "PLOTT"+FNZ$ AS FILE 3
160 DIM#3,E6(200),O9(0)
175 DIM C3(30),R6(200)
190 M=M(0):O2=O2(0):S2=S2(0):N2=N2(0):O9(0)=N2(0)
205 PRINT:PRINT"DO YOU WISH TO PRINT THE TABLE OF RESIDUALS";
220 INPUT N$ :J9(0)=0
235 IF N$="YES" THEN 310 
250 IF N$<>"SOS" THEN 1090 
265 PRINT:PRINT"ANSWER 'YES' IF YOU WANT TO PRINT OUT THE TABLE OF "
    "OBSERVED":PRINT"AND ESTIMATED VALUES OF THE DEPENDENT VARIABLE, "
270 PRINT"THE RESIDUALS (OBSERVED MINUS ESTIMATED), AND THE STANDARD"
    "IZED ":PRINT"RESIDUALS (RESIDUAL/STANDARD ERROR OF ESTIMATE)."
275 PRINT "IF YOU DO NOT WANT TO PRINT OUT THIS TABLE, TYPE 'NO'.":
    GOTO 205
310 PRINT : J9(0)=1
325 PRINT"            OBSERVED     ESTIMATED                 RESIDUAL":
    PRINT"            VALUE OF     VALUE OF                  DIVIDED BY"
330 PRINT"OBS. #      DEPENDENT    DEPENDENT     RESIDUAL    S.E. OF E."
340 S6=10 ^36:L6=-S6
355 READ C3(I) FOR I=3 TO 30 
370 DATA .886,.679,.557,.482,.434,.479,.441,.409,.517,.490,.467,.492
385 DATA .472,.454,.438,.424,.412,.401,.391,.382,.374,.367,.360
400 DATA .354,.348,.342,.337,.332
415 F$="##### ########.###  ########.###   ########.###   ###.#######"
430 FOR I=1 TON(0)
445 E6(I)=O2
460 IF I4(0)<>4 THEN 505 
475 K=M2(1)
490 FOR J=1 TO M:E6(I)=E6(I)+B(J)*X(I,K)^J:NEXT J:GOTO 520 
505 FOR J=1 TO M:K=M2(J):E6(I)=E6(I)+B(J)*X(I,K):NEXT J
520 R3=X(I,N2)-E6(I):S8=R3/S2
535 IF J9(0)<=0 THEN 565 
550 PRINT USING F$,I,X(I,N2),E6(I),R3,S8
565 IF N(0)>30 THEN 595 
580 R6(I)=R3:GOTO 655 
595 IF R3>S6 THEN 625 
610 S6=R3
625 IF R3<=L6 THEN 655 
640 L6=R3
655 NEXT I
670 PRINT:PRINT"TEST OF EXTREME RESIDUALS"
685 IF N(0)<=30 THEN 760 
700 R3=L6-S6:L6=R3/S2
715 PRINT:PRINT"RANGE OF RESIDUALS.........."R3
730 PRINT"RANGE/STD. ERROR OF ESTIMATE..........."L6
745 GOTO 1090 
760 FOR I=1 TO N(0):FOR J=1 TO N(0)
775 IF R6(I)<=R6(J) THEN 805 
790 R3=R6(I):R6(I)=R6(J):R6(J)=R3
805 NEXT J:NEXT I:T1=N(0)-1:T2=T1-1
820 IF N(0)<=13 THEN 880 
835 S6=(R6(3)-R6(1))/(R6(T2)-R6(1))
850 L6=(R6(N(0))-R6(T2))/(R6(N(0))-R6(3))
865 GOTO 1045 
880 IF N(0)<=10 THEN 940 
895 S6=(R6(3)-R6(1))/(R6(T1)-R6(1))
910 L6=(R6(N(0))-R6(T2))/(R6(N(0))-R6(2))
925 GOTO 1045 
940 IF N(0)<=7 THEN 1000 
955 S6=(R6(2)-R6(1))/(R6(T1)-R6(1))
970 L6=(R6(N(0))-R6(T1))/(R6(N(0))-R6(2))
985 GOTO 1045 
1000 IF N(0)<= 2 THEN 1090 
1015 S6=(R6(2)-R6(1))/(R6(N(0))-R6(1))
1030 L6=(R6(N(0))-R6(T1))/(R6(N(0))-R6(1))
1045 PRINT"RATIO OF RANGES FOR THE SMALLEST RESIDUAL......"S6
1060 PRINT"RATIO OF RANGES FOR THE LARGEST RESIDUAL......."L6
1075 PRINT"CRITICAL VALUE OF THE RATIO AT ALPHA=.1......."C3(N(0))
1090 GOTO 1165 ! ASK IF A LINE PLOT IS WANTED WHEN IT BECOMES
                 AVAILABLE
1105 IF N$="YES" THEN 1150 ELSE IF N$<>"SOS" THEN 1165 
1120 PRINT:PRINT"IF YOU ANSWER 'YES' A LINE PLOT WILL BE PRINTED"
1135 GOTO 1090 
1150 CLOSE 1,2,3:CHAIN "PLOT"
1165 CLOSE 1,2 : KILL"PLOTT"+FNZ$
1180 K$=SYS(CHR$(7)):N$=LEFT(K$,8):S0=VAL(RIGHT(K$,9))
1195 CHAIN N$  S0
1210 END
