home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE GDATA
- C
- C PURPOSE
- C GENERATE INDEPENDENT VARIABLES UP TO THE M-TH POWER (THE
- C HIGHEST DEGREE POLYNOMIAL SPECIFIED) AND COMPUTE MEANS,
- C STANDARD DEVIATIONS, AND CORRELATION COEFFICIENTS. THIS
- C SUBROUTINE IS NORMALLY CALLED BEFORE SUBROUTINES ORDER,
- C MINV AND MULTR IN THE PERFORMANCE OF A POLYNOMIAL
- C REGRESSION.
- C
- C USAGE
- C CALL GDATA (N,M,X,XBAR,STD,D,SUMSQ)
- C
- C DESCRIPTION OF PARAMETERS
- C N - NUMBER OF OBSERVATIONS.
- C M - THE HIGHEST DEGREE POLYNOMIAL TO BE FITTED.
- C X - INPUT MATRIX (N BY M+1) . WHEN THE SUBROUTINE IS
- C CALLED, DATA FOR THE INDEPENDENT VARIABLE ARE
- C STORED IN THE FIRST COLUMN OF MATRIX X, AND DATA FOR
- C THE DEPENDENT VARIABLE ARE STORED IN THE LAST
- C COLUMN OF THE MATRIX. UPON RETURNING TO THE
- C CALLING ROUTINE, GENERATED POWERS OF THE INDEPENDENT
- C VARIABLE ARE STORED IN COLUMNS 2 THROUGH M.
- C XBAR - OUTPUT VECTOR OF LENGTH M+1 CONTAINING MEANS OF
- C INDEPENDENT AND DEPENDENT VARIABLES.
- C STD - OUTPUT VECTOR OF LENGTH M+1 CONTAINING STANDARD
- C DEVIATIONS OF INDEPENDENT AND DEPENDENT VARIABLES.
- C D - OUTPUT MATRIX (ONLY UPPER TRIANGULAR PORTION OF THE
- C SYMMETRIC MATRIX OF M+1 BY M+1) CONTAINING CORRELA-
- C TION COEFFICIENTS. (STORAGE MODE OF 1)
- C SUMSQ - OUTPUT VECTOR OF LENGTH M+1 CONTAINING SUMS OF
- C PRODUCTS OF DEVIATIONS FROM MEANS OF INDEPENDENT
- C AND DEPENDENT VARIABLES.
- C
- C REMARKS
- C N MUST BE GREATER THAN M+1.
- C IF M IS EQUAL TO 5 OR GREATER, SINGLE PRECISION MAY NOT BE
- C SUFFICIENT TO GIVE SATISFACTORY COMPUTATIONAL RESULTS.
- C
- C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
- C NONE
- C
- C METHOD
- C REFER TO B. OSTLE, 'STATISTICS IN RESEARCH', THE IOWA STATE
- C COLLEGE PRESS, 1954, CHAPTER 6.
- C
- C ..................................................................
- C
- SUBROUTINE GDATA (N,M,X,XBAR,STD,D,SUMSQ)
- DIMENSION X(1),XBAR(1),STD(1),D(1),SUMSQ(1)
- C
- C ...............................................................
- C
- C IF A DOUBLE PRECISION VERSION OF THIS ROUTINE IS DESIRED, THE
- C C IN COLUMN 1 SHOULD BE REMOVED FROM THE DOUBLE PRECISION
- C STATEMENT WHICH FOLLOWS.
- C
- C DOUBLE PRECISION X,XBAR,STD,D,SUMSQ,T1,T2
- C
- C THE C MUST ALSO BE REMOVED FROM DOUBLE PRECISION STATEMENTS
- C APPEARING IN OTHER ROUTINES USED IN CONJUNCTION WITH THIS
- C ROUTINE.
- C
- C THE DOUBLE PRECISION VERSION OF THIS SUBROUTINE MUST ALSO
- C CONTAIN DOUBLE PRECISION FORTRAN FUNCTIONS. SQRT AND ABS IN
- C STATEMENT 180 MUST BE CHANGED TO DSQRT AND DABS.
- C
- C ...............................................................
- C
- C GENERATE INDEPENDENT VARIABLES
- C
- IF(M-1) 105, 105, 90
- 90 L1=0
- DO 100 I=2,M
- L1=L1+N
- DO 100 J=1,N
- L=L1+J
- K=L-N
- 100 X(L)=X(K)*X(J)
- C
- C CALCULATE MEANS
- C
- 105 MM=M+1
- DF=N
- L=0
- DO 115 I=1,MM
- XBAR(I)=0.0
- DO 110 J=1,N
- L=L+1
- 110 XBAR(I)=XBAR(I)+X(L)
- 115 XBAR(I)=XBAR(I)/DF
- C
- DO 130 I=1,MM
- 130 STD(I)=0.0
- C
- C CALCULATE SUMS OF CROSS-PRODUCTS OF DEVIATIONS
- C
- L=((MM+1)*MM)/2
- DO 150 I=1,L
- 150 D(I)=0.0
- DO 170 K=1,N
- L=0
- DO 170 J=1,MM
- L2=N*(J-1)+K
- T2=X(L2)-XBAR(J)
- STD(J)=STD(J)+T2
- DO 170 I=1,J
- L1=N*(I-1)+K
- T1=X(L1)-XBAR(I)
- L=L+1
- 170 D(L)=D(L)+T1*T2
- L=0
- DO 175 J=1,MM
- DO 175 I=1,J
- L=L+1
- 175 D(L)=D(L)-STD(I)*STD(J)/DF
- L=0
- DO 180 I=1,MM
- L=L+I
- SUMSQ(I)=D(L)
- 180 STD(I)= SQRT( ABS(D(L)))
- C
- C CALCULATE CORRELATION COEFFICIENTS
- C
- L=0
- DO 190 J=1,MM
- DO 190 I=1,J
- L=L+1
- 190 D(L)=D(L)/(STD(I)*STD(J))
- C
- C CALCULATE STANDARD DEVIATIONS
- C
- DF=SQRT(DF-1.0)
- DO 200 I=1,MM
- 200 STD(I)=STD(I)/DF
- RETURN
- END