10 REM ********************************************************************** 20 REM 30 REM L I N R E G 40 REM 50 REM PROGRAM: LINREG 60 REM 70 REM PROGRAMMER: DR. DAVID G. SIMPSON 80 REM DEPARTMENT OF PHYSICAL SCIENCE 90 REM PRINCE GEORGE'S COMMUNITY COLLEGE 100 REM LARGO, MARYLAND 20774 110 REM 120 REM DATE: JANUARY 21, 2002 130 REM 140 REM LANGUAGE: BASIC 150 REM 160 REM DESCRIPTION: THIS PROGRAM PERFORMS A LINEAR REGRESSION ANALYSIS FOR 170 REM A SET OF DATA GIVEN AS (X,Y) PAIRS. THE OUTPUT FROM 180 REM THE PROGRAM IS THE SLOPE AND Y-INTERCEPT OF THE LEAST- 190 REM SQUARES BEST FIT STRAIGHT LINE THROUGH THE DATA POINTS. 200 REM 210 REM ********************************************************************** 220 REM VARIABLES 230 REM 240 REM B Y-INTERCEPT OF LEAST-SQUARES BEST FIT LINE 250 REM M SLOPE OF LEAST-SQUARES BEST FIT LINE 260 REM N NUMBER OF DATA POINTS 270 REM R CORRELATION COEFFICIENT 280 REM STR$ INPUT STRING 290 REM SUMX SUM OF X 300 REM SUMX2 SUM OF X^2 310 REM SUMXY SUM OF X * Y 320 REM SUMY SUM OF Y 330 REM SUMY2 SUM OF Y^2 340 REM X INPUT X DATA 350 REM Y INPUT Y DATA 360 REM ********************************************************************** 370 REM 380 REM PRINT INTRODUCTORY MESSAGE 390 REM 400 PRINT "LINREG - PERFORM LINEAR REGRESSION" 410 PRINT "(ENTER X=-9999 TO STOP DATA ENTRY AND COMPUTE LINEAR REGRESSION)" 420 REM 430 REM INITIALIZE SUMS 440 REM 450 LET N = 0.0 460 LET SUMX = 0.0 470 LET SUMX2 = 0.0 480 LET SUMXY = 0.0 490 LET SUMY = 0.0 500 LET SUMY2 = 0.0 510 REM 520 REM START OF DATA ENTRY LOOP 530 REM 540 INPUT "ENTER X Y: ", X, Y 550 IF (X = -9999) THEN GOTO 690 560 REM 570 REM COMPUTE SUMS 580 REM 590 LET N = N + 1.0 600 LET SUMX = SUMX + X 610 LET SUMX2 = SUMX2 + X * X 620 LET SUMXY = SUMXY + X * Y 630 LET SUMY = SUMY + Y 640 LET SUMY2 = SUMY2 + Y * Y 650 GOTO 540 660 REM 670 REM COMPUTE SLOPE (M), Y-INTERCEPT (B), AND CORRELATION COEFFICIENT (R) 680 REM 690 LET M = (N * SUMXY - SUMX * SUMY) / (N * SUMX2 - SUMX^2) 700 LET B = (SUMY * SUMX2 - SUMX * SUMXY) / (N * SUMX2 - SUMX^2) 710 LET R = (SUMXY - SUMX * SUMY / N) 720 LET R = R / SQR((SUMX2 - SUMX^2/N) * (SUMY2 - SUMY^2/N)) 730 REM 740 REM PRINT RESULTS 750 REM 760 PRINT "SLOPE M = ", M 770 PRINT "Y-INTERCEPT B = ", B 780 PRINT "CORRELATION R = ", R 790 END