1 ! PROGRAM STEP, VERSION 1A (31-AUG-73) ! 2 ! PROGRAM STEP IS THE CONTROL PROGRAM FOR STEPWISE REGRESSION. ! 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 ABOUT 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 ! ****STEP 85 OPEN "DAT1"+FNZ$ AS FILE 1 100 OPEN "STEP1"+FNZ$ AS FILE 2 105 OPEN L1$(1%) FOR INPUT AS FILE 5% 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) 135 DIM #5%, N$(50%)=8%,M1$(50%)=64%,O%(50%),P%(50%),D$(50%)=8%, T(50%),D(10000%) 145 DEF FNR(Q):INPUT Z$:Q=INSTR(1,Z$,"SOS"):IF Q>0 THEN 175 160 Q=VAL(Z$):GOTO 190 175 Q=808 190 FNR=Q:FNEND 205 GOSUB 1195 220 S2,R2=0:D9=M-1:FOR I=1 TO D9 :IF N(0)>I+1 THEN 265 235 PRINT:PRINT"DUE TO YOUR SMALL SAMPLE SIZE ANALYSIS CANNOT BE CONTINUED." 250 IF I<=1 THEN 1105 ELSE 1060 265 PRINT:PRINT"STEP "I" *******":S1=0:FOR J=1 TO M9(0): IF J=N2 THEN 310 280 IF L2(J)<=0 THEN 310 295 R3=Z2(J,N2)^2/Z2(J,J):IF S1>=R3 THEN 310 ELSE S1=R3:N9=J 310 NEXT J:IF S1<=0 THEN 325 ELSE IF C(N2,N2)>=S1+S2 THEN 355 325 PRINT:PRINT"SUM OF SQUARES CANNOT BE REDUCED ANYMORE.SELECTION TERMINATED." 340 GOTO 1060 355 PRINT:PRINT"VARIABLE SELECTED: "N$(N9) 370 L2(N9)=0:R3=S1/C(N2,N2) 385 PRINT:PRINT"SUM OF SQUARES REDUCED BY ADDING "N$(N9)"....."S1 400 PRINT"PROPORTION OF VARIANCE REDUCED BY ADDING "N$(N9)"....."R3 415 S2=S2+S1:R2=R2+R3:J=N(0)-I-1:T3=J:R4=(C(N2,N2)-S2)/T3:T3=S1/R4 430 PRINT"F FOR "N$(N9)" (D.F. = 1,"J")....."T3 445 IF I=1 THEN 580 460 PRINT:PRINT"DO YOU WISH TO ENTER THIS VARIABLE IN THE REGRESSION"; 475 INPUT N$ : IF N$="YES" THEN 580 490 IF N$<>"SOS" THEN 1060 505 PRINT:PRINT"IN EACH STEP, THE VARIABLE SELECTED IS THE ONE WHOSE " "ADDITION":PRINT"WILL RESULT IN THE LARGEST REDUCTION IN THE UNEXPL" "AINED SUM" 510 PRINT"OF SQUARES. IF YOU REGARD THE REDUCTION DUE TO THE ADDIT" "ION OF ";N$(N9):PRINT"AS SIGNIFICANT, ANSWER 'YES'; IF NOT, " "ANSWER 'NO', AND THE" 515 PRINT "SELECTION OF VARIABLES WILL BE TERMINATED.":GOTO 460 580 M=I:M2(I)=N9 595 PRINT:PRINT"CUMULATIVE SUM OF SQUARES REDUCED......"S2 610 PRINT"CUMULATIVE PROPORTION REDUCED........."R2" (TOTAL = " C(N2,N2)")" 625 R3=SQR(R2):N3=(N(0)-1)/(N(0)-I):A4=SQR(1-(1-R2)*N3):PRINT 640 PRINT"MULTIPLE CORRELATION COEFFICIENT...."R3 655 R3=I:R3=(S2/R3)/R4 670 PRINT"F FOR ANALYSIS OF VARIANCE (D.F.="I","J")..."R3 685 S3=SQR(R4):A4=S3*SQR(N3) 700 PRINT "STANDARD ERROR OF ESTIMATE..."S3" (ADJUSTED S.E. OF E.="A4")" 715 R4=Z2(N9,N9):FOR J=1 TO M9(0):IF L2(J)<0 THEN 805 730 IF L2(J)>0 THEN 775 745 IF J=N9 THEN 790 760 Z2(J,J)=Z2(J,J)+Z2(N9,J)^2/R4 775 Z2(N9,J)=Z2(N9,J)/R4:GOTO 805 790 LET Z2(N9,N9)=1/R4 805 NEXT J:B(I)=Z2(N9,N2):IF I<=1 THEN 850 ELSE D1=I-1 820 FOR J=1 TO D1:I1=I-J:J2=M2(I1):B(I1)=Z2(J2,N2):FOR K=1 TO J 835 I2=I-K+1:M8=M2(I2):B(I1)=B(I1)-Z2(J2,M8)*B(I2):NEXTK:NEXTJ 850 PRINT: PRINT" STANDARD COMPUTED": PRINT" REGRESSION ERROR OF VALUE OF " " BETA" 855 PRINT"VARIABLE COEFFICIENT COEFFICIENT STUDENT'S T " "COEFFICIENT" 865 O2=X2(N2):B3(I)=SQR(C(N9,N9)/(N(0)-1))/SQR(C(N2,N2)/(N(0)-1)) 880 FOR J=1 TO I:K2=M2(J):S1=S3*SQR(Z2(K2,K2)):T3=B(J)/S1 895 B8=B(J)*B3(J):O2=O2-B(J)*X2(K2) 910 F2$="#######.### #######.### #######.### #######.###" 925 PRINT N$(K2);SPACE$(10%-LEN(N$(K2))); :PRINTUSINGF2$,B(J),S1,T3,B8 940 NEXT J:PRINT :PRINT"INTERCEPT..."O2:PRINT :FOR J=1 TO M9(0) 955 IF L2(J)<=0 THEN 1045 970 FOR K=1 TO M9(0) 985 IF L2(K)<0 THEN 1030 1000 IF K=N9 THEN 1030 1015 Z2(J,K)=Z2(J,K)-Z2(J,N9)*Z2(N9,K) 1030 NEXT K:Z2(J,N9)=Z2(J,N9)/(-R4) 1045 NEXT J:NEXT I 1060 I4(0)=2:O2(0)=O2:S2(0)=S3:M(0)=M:N2(0)=N2 :CLOSE 1,2,5% 1075 S$=" STEP 1090":K$=SYS(CHR$(8)+S$):CHAIN "RESI" 1090 OPEN "DAT1"+FNZ$ AS FILE 1:OPEN "STEP1"+FNZ$ AS FILE 2 1105 PRINT:PRINT"DO YOU WANT TO PERFORM ANOTHER STEPWISE REGRESSION ON " "THIS":PRINT"DATABANK *"; 1120 INPUT N$:IF N$="YES" THEN 205 1135 IF N$<>"SOS" THEN 1150 1150 S$=" COSAP 0640":K$=SYS(CHR$(8)+S$):KILL "STEP1"+FNZ$ :CLOSE 1,5% 1165 CHAIN "COSAP" 0640 1180 PRINT:PRINT"ANSWER YES OR NO":GOTO 1105 1195 N4=0:FOR J=1 TO M9(0):L2(J)=1 :NEXT J 1210 PRINT:PRINT"THIS PROGRAM PERFORMS STEPWISE REGRESSION.":PRINT: PRINT"WHAT IS THE NAME OF THE DEPENDENT VARIABLE";:LET N2=FNC%("") 1225 IF N2<>N6(0) THEN 1270 1240 PRINT:PRINT"THE DEPENDENT VARIABLE IS THE Y VARIABLE IN AN " "EQUATION OF THE FORM" 1255 PRINT"Y=A+B(1)*X(1)+B(2)*X(2)+ ... ENTER THE NAME OF THE Y VAR" "IABLE.":GOTO 1210 1270 PRINT:PRINT"DO YOU WISH TO DELETE ANY VARIABLES";:INPUT N$ 1315 IF N$="YES" THEN 1390 1330 IF N$<>"SOS" THEN 1495 1345 PRINT:PRINT"ALL VARIABLES IN THIS DATABANK WILL BE USED IN THE " "STEPWISE":PRINT"REGRESSION UNLESS YOU DELETE THEM BY ANSWER" "ING 'YES TO THIS" 1350 PRINT"QUESTION (DELETED VARIABLES REMAIN IN THE DATABANK FOR " "USE IN":PRINT"SUBSEQUENT ANALYSES). TO INCLUDE ALL VARIABLES, " "ANSWER 'NO'.":GOTO 1270 1390 PRINT:PRINT"HOW MANY VARIABLES DO YOU WISH TO DELETE"; 1405 N4=FNR(Q):IF N4<>N6(0) THEN 1435 1420 PRINT:PRINT"SPECIFY THE NUMBER TO BE DELETED":GOTO 1390 1435 IF N4<=0 THEN 1495 1450 PRINT:PRINT"ENTER THE NAMES OF THE VARIABLES TO BE DELETED *" 1465 FOR I=1 TO N4 : D7(I)=FNC%("VAR. "+NUM$(I)) : NEXT I 1480 FOR J=1 TO N4:K=D7(J):L2(K)=-1:NEXT J 1495 M=M9(0)-N4:FOR I=1 TO M9(0) 1510 FOR J=1 TO M9(0):Z2(I,J)=C(I,J):NEXT J:NEXT I:RETURN 30000 DEF FNC%(X$) ! FUNCTION TO TRANSLATE VARIABLE NAMES 30010 PRINT X$; UNLESS X$="" : INPUT V$ : IF V$="" THEN PRINT : PRINT "VARIABLE NAME NEEDED "; : GOTO 30010 30020 GOTO 30040 IF V$=N$(I%) FOR I%=1% TO O%(0%) 30025 IF LEFT(V$,3%)="SOS" THEN FNC%=808 : GOTO 30050 30030 PRINT "*NO SUCH VARIABLE* TRY AGAIN." : GO TO 30010 30040 FNC%=I% 30050 FNEND 32767 END