File: CHISQR.FC of Tape: Sources/Focal/fc3
(.FC,.FO Focal format converted to 'WRITE' listing)
C-PS/8 FOCAL, 1971 01.01 C FROM CHISQR BY M.J. MC KEOWN (DECUS: FOCAL8-40) 01.02 C MODIFIED BY JOHN HUISMAN 01.03 C OMSI SOFTWARE DEVELOPMENT GROUP 01.04 C LAST CHANGE: 9/9/71 01.05 01.06 C THE PROGRAM WILL PRINT THE DATA MATRIX WITH TWO 01.07 C VALUES IN EACH CELL. ONE IS THE OBSERVED VALUE AND 01.08 C THE OTHER IS THE EXPECTED VALUE AS CALCULATED. YOU MAY HAVE UP TO 01.09 C 10 DIGIT PRECISION, BUT IT IS VARIABLE. YOU MAY ENTER A 01.10 C MATRIX NO LARGER THAN 25 ELEMENTS. THE WIDTH THAT THE MATRIX 01.11 C MAY BE DEPENDS ON THE PRECISION YOU CHOOSE, AND THE WIDTH 01.12 C OF YOUR OUTPUT DEVICE. 01.13 01.14 C ** RS IS THE ROW SUM. 01.15 C ** CS IS THE COLUMN SUM. 01.16 E 01.17 I (FITR(#/30)-(#/30)) 1.18,1.3,1.18 01.18 T "YOU DO NOT HAVE ENOUGH FEATURES. " 01.19 T "RESTART FOCAL WITH FEATURES 2 AND 3.",!;Q 01.20 01.30 S X=FOUT(24)+FOUT(1);F K=1,100;E 01.31 T "HOW MANY PLACES ACCURATE?";A AC;S X1=(100*AC+3)/100;T %(X1) 01.32 A "ROWS:"R,"COLUMNS:"C;S DF=(R-1)*(C-1);S L=R*C 01.33 S K=0;F I=1,R;S RS(I-1)=RP;S RP=0;D 1.4 01.34 S RS(I-1)=RP 01.35 T %(X1),!"NO MORE INPUT!"!;G 2.01 01.40 F J=1,C;D 1.41 01.41 S K=K+1;D 11;T !"SAMPLE"I,%1,","J,": ";G 1.42 01.42 A N(K);I (10^AC-N(K)) 1.43,1.43;S RP=RP+N(K);S CS(J)=CS(J)+N(K) 01.43 T "TOO MANY DIGITS - INPUT AGAIN OR INCREASE ACCURACY",!,"?";G 1.42 02.01 F J=1,1,R;S T=T+RS(J) 02.02 S J=1;S I=1;S K=1 02.03 S E(K)=(RS(I)/T)*CS(J);S J=J+1;S K=K+1 02.04 I (C-J)2.05,2.03,2.03 02.05 S J=1;S I=I+1 02.06 I (R-I)3.01,2.03,2.03 03.01 F K=1,1,L;S X2=X2+((N(K)-E(K))^2)/E(K) 04.01 T !!;S K=1;S Y=1;S N=1;S I=1;D 10;D 8.0;T ! 04.02 F J=1,1,C;D 6.0 04.03 T "*",!,"*";F J=1,C;D 5;T "*" 04.04 T "* ","RS:"RS(N);S N=N+1;T ! 04.05 F J=1,1,C;D 7.0 04.06 T "*";T !;D 8.0;T !;S I=I+1;I (R-I)4.07,4.02,4.02 04.07 T !;F J=1,1,C;D 9.0 04.08 T %," TOTAL:"T,!!,"CHI-SQUARED:"X2 04.09 T %(X1)," DEGREES OF FREEDOM:"DF,!! 04.10 A "MORE?"Z;I (Z-0YES) 4.11,1.3,4.11 04.11 Q 05.01 T :(1+J*(9+AC)) 06.01 T "* O:"N(K),;D 5.01;S K=K+1 07.01 T "* E:"E(Y),;D 5.01;S Y=Y+1 08.01 F M=1,(C*(AC+9)+1);T "*" 09.01 T " CS:"CS(J)," " 10.01 T "E = EXPECTED VALUE O = OBSERVED VALUE",!! 11.10 S ZF=1+FITR(FLOG(I)/FLOG(10));T %(ZF);R