1  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  **************************
2  REM
3  REM         36172  (A410)  ANVAR3  9/71
4  REM         ANVAR3:  ANALYSIS OF VARIANCE FOR TWO-VARIABLES OF
5  REM                  CLASSIFICATION FACTORIAL DESIGN
6  REM
7  REM  **  CONTRIBUTED PROGRAM  *************************************
9000  PRINT "INSTRUCTIONS?- 1=YES, 2=NO"
9001  INPUT P
9002  IF P>1.5 THEN 9007
9003  PRINT "THIS PROGRAM CALCULATES A TWO WAY ANALYSIS OF VARIANCE"
9004  PRINT "TABLE. DATA IS ENTERED USING DATA STATEMENTS AT LINE"
9005  PRINT "9900. ENTER THE NUMBER OF ROWS AND COLUMNS AT 9900 AND"
9006  PRINT "THE OBSERVATIONS IN ROW ORDER STARTING AT LINE 9901."
9007  T=W=E=D=0
9008  DIM X[20,20]
9009  READ R,C
9010  FOR I=1 TO R
9011  U=0
9012  FOR J=1 TO C
9013  READ X[I,J]
9014  U=U+X[I,J]
9015  W=W+(X[I,J]^2)
9016  NEXT J
9017  E=E+(U^2)
9018  T=T+U
9019  NEXT I
9020  FOR J=1 TO C
9021  Q=0
9022  FOR I=1 TO R
9023  Q=Q+X[I,J]
9024  NEXT I
9025  D=D+(Q^2)
9026  NEXT J
9027  G=(T^2)/(R*C)
9028  S1=W-G
9029  S2=(E/C)-G
9030  S3=(D/R)-G
9031  S4=S1-S2-S3
9032  M2=S2/(R-1)
9033  M3=S3/(C-1)
9034  A=(R*C)-1
9035  B=A-R-C+2
9036  M4=S4/B
9037  F2=M2/M4
9038  F3=M3/M4
9039  PRINT 
9040  PRINT TAB(30);"ANOVA TABLE"
9041  PRINT "SOURCE","SUM SQ","DEG FREE","MEAN SQ","F RATIO"
9042  PRINT "ROWS",S2,R-1,M2,F2
9043  PRINT "COLS",S3,C-1,M3,F3
9044  PRINT "RESID",S4,B,M4
9045  PRINT "TOTAL",S1,A
9046  PRINT 
9047  PRINT 
9048  F=F2
9049  M=R-1
9050  N=B
9051  N1=C-1
9052  GOSUB 9057
9053  F=F3
9054  M=N1
9055  GOSUB 9057
9056  STOP 
9057  A=2*INT(M/2)-M+2
9058  B=2*INT(N/2)-N+2
9059  W=F*M/N
9060  Z=1/(1+W)
9061  IF A#1 THEN 9071
9062  IF B#1 THEN 9068
9063  P=SQR(W)
9064  C=.31831
9065  D=C*Z/P
9066  P=2*C*ATN(P)
9067  GOTO 9078
9068  P=SQR(W*Z)
9069  D=.5*P*Z/W
9070  GOTO 9078
9071  IF B#1 THEN 9076
9072  P=SQR(Z)
9073  D=.5*Z*P
9074  P=1-P
9075  GOTO 9078
9076  D=Z^2
9077  P=W*Z
9078  C=2*W/Z
9079  FOR J=B+2 TO N STEP 2
9080  D=(1+A/(J-2))*D*Z
9081  IF A=1 THEN 9084
9082  P=(P+W)*Z
9083  GOTO 9085
9084  P=P+D*C/(J-1)
9085  NEXT J
9086  C=W*Z
9087  Z=2/Z
9088  B=N-2
9089  FOR I=A+2 TO M STEP 2
9090  J=I+B
9091  D=C*D*J/(I-2)
9092  P=P-Z*D/J
9093  NEXT I
9094  P=(P>1) MAX (0<P AND P<1)*P
9095  P=1-P
9096  PRINT 
9097  IF P=1 AND F>1 THEN 9099
9098  IF P >= .001 THEN 9100
9099  P=0
9100  PRINT "PROBABILITY OF F>=";F;"WITH";M;"AND";N;"D.F. IS";P
9101  PRINT 
9102  RETURN 
9900  DATA 3,4
9901  DATA 7,6,8,7
9902  DATA 2,4,4,4
9903  DATA 4,6,5,3
9999  END 
