-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlnrgs.for
108 lines (108 loc) · 3.06 KB
/
lnrgs.for
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
C
C****************************** ABSTRACT ******************************
C
C THIS SUBROUTINE PERFORMS A LINEAR REGRESSION ON A SET OF (X/Y)
C DATA. IN ADDITION TO DETERMINING THE SLOPE AND INTERCEPT OF THE
C DATA, THE STANDARD ERROR OF THE REGRESSION, THE SLOPE, AND THE
C INTERCEPT ARE DETERMINED. ALSO, THE CORRELATION COEFICIENT AND THE
C NORMALIZED ERROR OF THE REGRESSION ARE CALCULATED.
C
C**************************** NOMENCLATURE ****************************
C
C R- THE CORRELATION COEFICIENT
C RSELR- THE NORMALIZED STANDARD ERROR OF THE LINEAR REGRESSION
C S- THE SLOPE OF THE LINEAR REGRESSION
C SB- THE SUM OF THE SQUARES BETWEEN THE DATA AND THE AVERAGE Y
C SELR- THE STANDARD ERROR OF THE LINERAR REGRESSION
C SES- THE STANDARD ERROR OF THE SLOPE
C SEYI- THE STANDARD ERROR OF THE INTERCEPT
C S2- THE SUM OF THE SQUARES OF THE ERROR
C X(I)- THE ITH VALUE OF THE DEPENDENT VARIABLE
C XAVG- THE AVERAGE VALUE OF X
C XT- THE SUM OF ALL X(I)
C XY- THE SUM OF ALL X(I)*Y(I)
C X2- THE SUM OF ALL X(I)*X(I)
C Y(I)- THE ITH VALUE OF THE DEPENDENT VARIABLE
C YAVG- THE AVERAGE VALUE OF Y
C YI- THE Y-INTERCEPT OF THE REGRESSION LINE
C YT- THE SUM OF ALL Y(I)
C Y2- THE SUM OF ALL Y(I)*Y(I)
C
C************************************************************************
C
C
SUBROUTINE LNRGS(N,X,Y,S,YI,SES,SEYI,SELR,R,RSELR)
IMPLICIT REAL*8(A-H,O-Z)
DIMENSION X(1),Y(1)
C
C DETERMINE XT, YT, X2, XY, AND Y2
C
XT=0.0
YT=0.0
X2=0.0
XY=0.0
Y2=0.0
DO 10 I=1,N
XT=XT+X(I)
YT=YT+Y(I)
X2=X2+X(I)*X(I)
Y2=Y2+Y(I)*Y(I)
10 XY=XY+X(I)*Y(I)
C
C FROM XT, YT, XY, AND X2 CALCULATE THE SLOPE AND Y-INTERCEPT
C
XN=FLOAT(N)
S=(XN*XY-XT*YT)/(XN*X2-XT*XT)
XAVG=XT/XN
YAVG=YT/XN
YI=YAVG-S*XAVG
C
C CALCULATE S2 AND SB
C
S2=0.0
SB=0.0
DO 100 I=1,N
SB=SB+(Y(I)-YAVG)**2
100 S2=S2+(YI+S*X(I)-Y(I))**2
C
C CALCULATE SELR AND THE CORRELATION FACTOR
C
SELR=DSQRT(S2/(XN-2))
R=DSQRT((SB-S2)/SB)
C
C CALCULATE SES AND SEYI
C
XD=0.0
DO 200 I=1,N
200 XD=XD+(X(I)-XAVG)**2
SES=DSQRT(S2/((XN-2.)*XD))
SEYI=DSQRT(S2*X2/(XN*(XN-2)*XD))
C
C CALCULATE RSELR
C
YMAX=Y(1)
YMIN=Y(1)
DO 400 I=2,N
IF(Y(I).LT.YMIN)YMIN=Y(I)
400 IF(Y(I).GT.YMAX)YMAX=Y(I)
RSELR=SELR/DABS(YMAX-YMIN)
C
C PRINT OUT RESULTS
C
WRITE(6,19)
19 FORMAT( ///)
WRITE(6,20)YI,S
20 FORMAT( 19H THE Y-INTERCEPT IS,D14.7,5X,12H THE SLOPE =,D14.7)
WRITE(6,21)SELR
21 FORMAT( 45H THE STANDARD ERROR OF THE REGRESSION LINE = ,D14.7)
WRITE(6,22)R
22 FORMAT( 30H THE CORRELATION COEFICIENT = ,D14.7)
WRITE(6,23)SES
23 FORMAT( 35H THE STANDARD ERROR OF THE SLOPE = ,D14.7)
WRITE(6,24)SEYI
24 FORMAT( 40H THE STANDARD ERROR OF THE Y-INTERCEPT =,D14.7)
WRITE(6,25)RSELR
25 FORMAT( 45H NORMALIZED STANDARD ERROR OF THE REGRESSION=,D14.7)
WRITE(6,19)
RETURN
END