home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #3.1 / RBBSIABOX31.cdr / mlpc / mlinreg.bas < prev    next >
BASIC Source File  |  1990-09-29  |  4KB  |  67 lines

  1. 10 CLS:PRINT TAB(27)"MULTIPLE LINEAR REGRESSION"
  2. 20 KEY OFF:PRINT:PRINT
  3. 30 PRINT"This program determines the degree of relationship between a"
  4. 40 PRINT"collection of variables on an individual.  The program gives"
  5. 50 PRINT"you the ability to predict an outcome based on a number of"
  6. 60 PRINT"different variables.  The value we are interested in later"
  7. 70 PRINT"predicting is the dependent variable.":PRINT
  8. 80 PRINT"TO CORRECT ERROR IN PREVIOUS SAMPLE, USE ^C THEN GOTO 400"
  9. 90 PRINT
  10. 100 PRINT"TO CORRECT ERRORS IN CURRENT SAMPLE, USE ^C THEN GOTO 200
  11. 110 PRINT:PRINT:PRINT
  12. 112 INPUT"Title of regression analysis:  ";T$:PRINT
  13. 115 INPUT"Number of observations:  ";N:PRINT
  14. 120 INPUT"Number of independent variables:  ";V
  15. 122 X=INT(FRE(0)/422-V*.5+12):IF (N-V-1)=0 THEN GOTO 500
  16. 124 IF N>X THEN PRINT"There is ONLY memory for ";X;" observations":PRINT:GOTO 115
  17. 126 DIM B(N+V),C(N+V),D(N+V),N$(N+V),A(N+V,N+V):CLS:N$(0)=T$
  18. 140 FOR X=1 TO V:PRINT"Name of independent variable (";X;")";
  19. 145 INPUT N$(X):NEXT X
  20. 150 INPUT"Name of dependent variable:  ";N$(X+1)
  21. 160 B(1)=1:FOR X=1 TO N:PRINT
  22. 195 ' NTR VARS
  23. 200 PRINT"SAMPLE ";X:FOR Y=1 TO V:PRINT TAB(3)N$(Y);:INPUT B(Y+1):NEXT Y:PRINT TAB(3)N$(V+2);:INPUT B(V+2)
  24. 205 '   STOR SUM OF N,X,Y,X^2,XY IN MATRIX
  25. 210 FOR A=1 TO V+1:FOR B=1 TO V+2:A(A,B)=A(A,B)+B(A)*B(B):C(A)=A(A,V+2):NEXT B:NEXT A
  26. 215 '
  27. 220 C(V+2)=C(V+2)+B(V+2)^2:NEXT X
  28. 225 CLS:PRINT"Calculating....."
  29. 230 FOR X=2 TO V+1:D(X)=A(1,X):NEXT X
  30. 235 FOR X=1 TO V+1:Y=X
  31. 240 IF A(Y,X)<>0 THEN 260
  32. 245 Y=Y+1
  33. 250 IF Y<=V+1 THEN 240
  34. 255 PRINT"*****  NO CORRELATION  *****":PRINT CHR$(7):CLS:END
  35. 260 FOR A=1 TO V+2:C=A(X,A):A(X,A)=A(Y,A):A(Y,A)=C:NEXT A
  36. 265 Z=1/A(X,X)
  37. 270 FOR A=1 TO V+2:A(X,A)=Z*A(X,A):NEXT A
  38. 275 FOR Y=1 TO V+1:IF Y=X THEN 290
  39. 280 Z=-A(Y,X)
  40. 285 FOR A=1 TO V+2:A(Y,A)=A(Y,A)+Z*A(X,A):NEXT A
  41. 290 NEXT Y:NEXT X:CLS:PRINT TAB((80-LEN(N$(0)))/2)N$(0):PRINT:PRINT"EQUATION COEFFICIENTS:":PRINT
  42. 300 PRINT"CONSTANT = ";A(1,V+2):PRINT:FOR X=2 TO V+1
  43. 310 PRINT"COEFFICIENT OF (";N$(X-1);") VARIABLE = ";A(X,V+2):NEXT X:E=0
  44. 320 FOR X=2 TO V+1:E=E+A(X,V+2)*(C(X)-D(X)*C(1)/N):NEXT X:F=C(V+2)-C(1)^2/N
  45. 330 Z=F-E:G=N-V-1:PRINT:X=E/F:PRINT"COEFFICIENT OF DETERMINATION = ";X
  46. 340 PRINT"COEFFICIENT OF CORRELATION   = ";SQR(X)
  47. 350 PRINT"STANDARD ERROR OF ESTIMATE   = ";SQR(ABS(Z/G)):PRINT
  48. 360 PRINT"INTERPOLATION: (ENTER 0 TO END) ":PRINT:PRINT N$(V+2);" = ";A(1,V+2)
  49. 370 FOR X=2 TO V+1:PRINT TAB(1+LEN(N$(V+2)))"+ ";N$(X-1);" *";A(X,V+2):NEXT X
  50. 380 PRINT:E=A(1,V+2):FOR Y=1 TO V:PRINT N$(Y);"  ";:INPUT H:IF H=0 THEN CLS:END
  51. 385 E=E+A(Y+1,V+2)*H:NEXT Y
  52. 390 PRINT N$(V+2);" = ";E:PRINT:PRINT:GOTO 380
  53. 395 '   CORRECT ERRORS IN VARIABLE ENTRY
  54. 400 CLS:INPUT"SAMPLE NUMBER OF ERROR:  ";H
  55. 410 PRINT:PRINT"WHAT WAS THE ERROR? (ENTER INCORRECT VALUES FOR SAMPLE ";H;" )"
  56. 420 FOR Y=1 TO V:PRINT TAB(5)N$(Y);:INPUT B(Y+1):NEXT Y:PRINT TAB(5)N$(V+2);:INPUTB(V+2)
  57. 430 FOR A=1 TO V+1:FOR B=1 TO V+2:A(A,B)=A(A,B)-B(A)*B(B):C(A)=A(A,V+2):NEXT B:NEXT A
  58. 440 C(V+2)=C(V+2)-B(V+2)^2:PRINT
  59. 450 PRINT"ENTER CORRECT VALUES FOR SAMPLE ";H:FOR Y=1 TO V
  60. 460 PRINT TAB(5)N$(Y);:INPUT B(Y+1):NEXT Y:PRINT TAB(5);N$(V+2);:INPUT B(V+2)
  61. 470 FOR A=1 TO V+1:FOR B=1 TO V+2:A(A,B)=A(A,B)+B(A)*B(B):C(A)=A(A,V+2):NEXT B:NEXT A
  62. 480 C(V+2)=C(V+2)+B(V+2)^2:X=X-1:NEXT X
  63. 490 GOTO 225
  64. 500 CLS:PRINT"To operate correctly, the number of observations must be at least"
  65. 510 PRINT"two greater than the number of independent variables!!":PRINT CHR$(7)
  66. 520 PRINT:INPUT"Press RETURN key to continue ";A$:CLS:PRINT:GOTO 115
  67.