File: POLRG.FT of Tape: Various/ETH/eth11-1
(Source file text) 

C	SAMPLE MAIN PROGRAM FOR POLYNOMIAL REGRESSION - POLRG
C  THE FOLLOWING ROUTINES ARE USED: GDATA,ORDER,MINV,MULTR
C	AND AN OPTIONAL PLOTTING SUBROUTINE COULD BE ADDED
C
C	THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE
C	PRODUCT OF N*(M+1) WHERE N IS THE NUMBER OF OBSERVATIONS AND
C	M IS THE HIGHEST DEGREE POLYNOMIAL SPECIFIED.
	DIMENSION X(75)
C	THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE
C	PRODUCT OF M*M.
	DIMENSION DI(16)
C	THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO
C	(M+2)*(M+1)/2.
	DIMENSION D(15)
C	THE FOLLOWING DIMENSIONS MUST BE GREATER THAN OR EQUAL TO M.
	DIMENSION B(4),SB(4),T(4),E(4)
C	THE FOLLOWING DIMENSIONS MUST BE GREATER THAN OR EQUAL TO
C	(M+1).
	DIMENSION XBAR(5),STD(5),COE(5),SUMSQ(5),ISAVE(5)
C	THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO 10.
	DIMENSION ANS(10)
C	THE FOLLOWING DIMENSION WILL BE USED IF THE PLOT OF OBSERVED
C	DATA AND ESTIMATES IS DESIRED.  THE SIZE OF THE DIMENSION, IN
C	THIS CASE, MUST BE GREATER THAN OR EQUAL TO N*3. OTHERWISE,
C	THE SIZE OF THE DIMENSION MAY BE SET TO 1.
	DIMENSION P(45)
	COMMON IOUT,IN
C
C	OUTPUT CHANNEL = IOUT, INPUT CHANNEL = IN
1	FORMAT(A4,A2,I5,I2,I1)
2	FORMAT(2F6.0)
3	FORMAT(//27H POLYNOMIAL REGRESSION.....,A4,A2)
4	FORMAT(/23H NUMBER OF OBSERVATION,I6)
5	FORMAT(/32H POLYNOMIAL REGRESSION OF DEGREE,I3)
6	FORMAT(/12H   INTERCEPT,F15.5)
7	FORMAT(/26H   REGRESSION COEFFICIENTS/(6F12.5))
8	FORMAT(/8X,24HANALYSIS OF VARIANCE FOR,I4,19H  DEGREE POLYNOMI
	1AL/)
9	FORMAT(/' SOURCE OF VARIATION  DEGREE'6X'SUM OF'8X'MEAN'
	110X'F    IMPROVEMENT'/24X'OF'8X'SQUARES'7X'SQUARE'6X
	2'VALUE  IN TERMS OF'/21X'FREEDOM'39X'SUM OF SQUARES')
10	FORMAT(/' DUE TO REGRESSION',I6,4X,4F13.5)
11	FORMAT(' DEVIATION ABOUT'/8X'REGRESSION',I6,4X,2F13.5)
12	FORMAT(' TOTAL',12X,I6,4X,F13.5///)
13	FORMAT(/17H  NO IMPROVEMENT )
14	FORMAT(//27X,18HTABLE OF RESIDUALS//16H OBSERVATION NO.,5X
	1,7HX VALUE,7X,7HY VALUE,7X,10HY ESTIMATE,7X,8HRESIDUAL/)
15	FORMAT(/,3X,I6,F18.5,F14.5,F17.5,F15.5)
C
	IN=1
	IOUT=2
C	READ PARAMETER CARD
100	READ(IN,1) PR,PR1,N,M,NPLOT
C	PR=PROBLEM NUMBER (MAY BE ALPHAMERIC)
C	PR1=PROBLEM NUMBER (CONTINUED)
C	N=NUMBER OF OBSERVATIONS
C	M=HIGHEST DEGREE POLYNOMIAL SPECIFIED
C	NPLOT=OPTION CODE FOR PLOTTING
C		0 IF PLOT IS NOT DESIRED
C		1 IF PLOT IS DESIRED
	IF(N.EQ.0) STOP
C	PRINT PROBLEM NUMBER AND N.

	WRITE(IOUT,3) PR,PR1
	WRITE(IOUT,4) N
C	READ INPUT DATA
	L=N*M
	DO 110 I=1,N
	J=L+I
C	X(I) IS THE INDEPENDENT VARIABLE, AND X(J) IS THE DEPENDENT
C	VARIABLE.
110	READ(IN,2) X(I),X(J)
	CALL GDATA(N,M,X,XBAR,STD,D,SUMSQ)
	MM=M+1
	SUM=0.0
	NT=N-1
	DO 200 I=1,M
	ISAVE(I)=I
C	FORM SUBSET OF CORRELATION COEFFICIENT MATRIX
	CALL ORDER(MM,D,MM,I,ISAVE,DI,E)
C	INVERT THE SUBMATRIX OF CORRELATION COEFFICIENTS
	CALL MINV(DI,I,DET,B,T)
	CALL MULTR(N,I,XBAR,STD,SUMSQ,DI,E,ISAVE,B,SB,T,ANS)
C	PRINT THE RESULT OF CALCULATION
	WRITE(IOUT,5) I
	IF(ANS(7)) 140,130,130
130	SUMIP=ANS(4)-SUM
	IF(SUMIP) 140,140,150
140	WRITE(IOUT,13)
	GO TO 210
150	WRITE(IOUT,6) ANS(1)
	WRITE(IOUT,7) (B(J),J=1,I)
	WRITE(IOUT,8) I
	WRITE(IOUT,9)
	SUM=ANS(4)
	WRITE(IOUT,10) I,ANS(4),ANS(6),ANS(10),SUMIP
	NI=ANS(8)
	WRITE(IOUT,11) NI,ANS(7),ANS(9)
	WRITE(IOUT,12) NT,SUMSQ(MM)
C	SAVE COEFFICIENTS FOR CALCULATION OF Y ESTIMATES
	COE(1)=ANS(1)
	DO 160 J=1,I
160	COE(J+1)=B(J)
	LA=I
200	CONTINUE
C	TEST WHETHER PLOT IS DESIRED
210	IF(NPLOT) 100,100,220
C	CALCULATE ESTIMATES
220	NP3=N+N
	DO 230 I=1,N
	NP3=NP3+1
	P(NP3)=COE(1)
	L=I
	DO 230 J=1,LA
	P(NP3)=P(NP3)+X(L)*COE(J+1)
230	L=L+N
C	COPY OBSERVED DATA
	N2=N
	L=N*M
	DO 240 I=1,N
	P(I)=X(I)
	N2=N2+1
	L=L+1
240	P(N2)=X(L)
C	PRINT TABLE OF RESIDUALS
	WRITE(IOUT,3) PR,PR1
	WRITE(IOUT,5) LA
	WRITE(IOUT,14)
	NP2=N
	NP3=N+N
	DO 250 I=1,N
	NP2=NP2+1
	NP3=NP3+1
	RESID=P(NP2)-P(NP3)
250	WRITE(IOUT,15) I,P(I),P(NP2),P(NP3),RESID
	CALL PLOT(LA,P,N,3,0,80,1)
	GO TO 100
	END