1 REM REGCOR       HEWLETT-PACKARD #A404-36054A
2 REM REVISED   JUNE,1972   ANDY ROTH  C.C.G.
5 OPEN"KB:" AS FILE 1%
10 REMARK -- REGRESSION AND CORRELATION PROGRAM
11 DIM A(50),B(50),X(50),Y(50)
20 REM INPUT DATA
21 INPUT"NUMBER OF OBSERVATIONS<TO END TYPE 0>";N
22 IF N=0 THEN 1024
23 PRINT"ENTER FIRST AND SECOND VARIABLE FOR EACH OBSERVATION."
24 PRINT"SEPARATED BY COMMAS"
25 FOR I=1 TO N
26 PRINTI;":";:INPUT#1%,X(I),Y(I)
27 NEXTI
28 GOSUB 200
30 REMARK -- REGRESS VARIABLE 2 ON VARIABLE 1
31 FOR I=1 TO N
32 LET A(I)=X(I)
33 LET B(I)=Y(I)
34 NEXT I
35 GOSUB 500
40 REMARK -- PRINT AVERAGE AND STANDARD DEVIATIONS
41 PRINT
42 PRINT "THE AVERAGE VALUE OF VARIABLE 1 IS",A1
43 PRINT "THE AVERAGE VALUE OF VARIABLE 2 IS",A2
44 PRINT "THE STANDARD DEVIATION OF VARIABLE 1 IS",D1
45 PRINT "THE STANDARD DEVIATION OF VARIABLE 2 IS",D2
46 PRINT "HE CORRELATION COEFFICIENT BETWEEN VARIABLES 1 AND 2 IS",C9
47 LET A9=A2
50 PRINT
51 PRINT "EQUATION 1"
52 PRINT "VARIABLE 2 =",I9,"       +",S9,"*LOG OF VAR 1 "
53 PRINT P9,"PERCENT OF THE VARIANCE IN VARIABLE 2 EXPLAINED"
54 PRINT
60 REMARK -- REGRESS VARIABLE 2 ON LOG OF VARIABLE 1
61 FOR I=1 TO N
62 IF X(I) <= 0 THEN 80
63 LET A(I)=LOG(X(I))
64 NEXT I
65 GOSUB 500
66 PRINT "EQUATION 2"
67 PRINT "VARIABLE 2 =",I9,"       +",S9,"*LOG OF VAR 1 "
68 PRINT P9,"PERCENT OF THE VARIANCE IN VARIABLE 2 EXPLAINED"
69 PRINT
80 REMARK -- REGRESSLOG OF VAR 2 ON VAR 1
81 FOR I=1 TO N
82 LET A(I)=X(I)
83 IF Y(I) <= 0 THEN 20
84 LET B(I)=LOG(Y(I))
85 NEXT I
86 GOSUB 500
87 GOSUB 600
88 PRINT "EQUATION 3"
89 PRINT "LOG(VAR 2)=",I9,"   +",S9,"*  VARIABLE 1"
90 PRINT "ALTERNATE FORM --"
91 PRINT "VARIABLE 2 ="EXP(I9),"    *"EXP(S9),"^VAR 1"
92 PRINT P9,"PERCENT OF THE VARIANCE IN VARIABLE 2 EXPLAINED "
93 PRINT
100 REMARK -- REGRESS LOG OF VAR 2 ON LOG OF VAR 1
101 FOR I=1 TO N
102 IF A(I) <= 0 THEN 20
103 LET A(I)=LOG(X(I))
104 NEXT I
105 GOSUB 500
106 GOSUB 600
107 PRINT "EQUATION 4"
108 PRINT "LOG(VAR 2) =",I9,"*(VAR 1^",S9,")"
109 PRINT "ALTERNATE FORM --"
110 PRINT "VARIABLE 2 ="EXP(I9),"*(VAR 1 ^",S9,")"
111 PRINT P9,"PERCENT OF THE VARIANCE IN VARIABLE 2 EXPLAINED"
120 GOTO 20
200 REMARK -- SUBROUTINE TO READ DATA
202 PRINT
203 PRINT " ","   DATA "
204 PRINT
205 PRINT "  OBSERVATION","  VARIABLE 1","  VARIABLE 2"
206 PRINT
207 FOR I=1 TO N
209 PRINT I,X(I),Y(I)
210 NEXT I
211 RETURN
500 REMARK -- SUBROUTINE TO REGRESS N VALUES OF B(I) ON A(I)
510 REMARK -- COMPUTE SUMS
511 LET S1=0
512 LET S2=0
513 LET S3=0
514 LET S4=0
515 LET S5=0
516 FOR I=1 TO N
517 LET S1=S1+A(I)
518 LET S2=S2+B(I)
519 LET S3=S3+(A(I)^2)
520 LET S4=S4+(B(I)^2)
521 LET S5=S5+(A(I)*B(I))
522 NEXT I
530 REMARK -- COMPUTE AVERAGES
531 LET A1=S1/N
532 LET A2=S2/N
535 REMARK -- COMPUTE VARIANCES
536 LET V1=(S3-(N*(A1^2)))/(N-1)
537 LET V2=(S4-(N*(A2^2)))/(N-1)
540 REMARK -- COMPUTE STANDARD DEVIATIONS
541 LET D1=SQR(V1)
542 LET D2=SQR(V2)
550 REMARK -- COMPUTE DIVISOR FOR REGRESSION LINE
551 LET D0=(N*S3)-(S1^2)
552 REMARK -- COMPUTE INTERECEPT (I9) AND SLOPE (S9)
553 LET I9=((S2*S3)-(S1*S5))/D0
554 LET S9=((N*S5)-(S1*S2))/D0
560 REMARK -- COMPUTE PERCENT OF VARIANCE EXPLAINED (P9)
561 P9=((S9^2)*V1)/V2
570 REMARK -- COMPUTE CORRELATION COEFFIEINET (C9)
571 LET C9=SQR(P9)
572 LET P9=100*P9
580 RETURN
600 REMARK SUBROUTIE TO FIND PERCENT OF VARIANCE IN VAR 2 EXP
601 LET S8=0
602 LET S7=0
603 FOR I=1 TO N
604 LET E=EXP(I9+(S9*A(I)))
605 LET S8=S8+((Y(I)-E)^2)
606 LET S7=S7+((Y(I)-A9)^2)
607 NEXT I
608 LET P9=100*(1-(S8/S7))
609 RETURN
1023 CLOSE 1%
1024 END
