1 SUB ANALYS & ! & ! 500.28 STAT11 - ANALYS & ! & ! ANALYSIS OF VARIANCE MODULE & ! & 00006 ! THIS MODULE PERFORMS COMPLETELY RANDOMIZED DESIGN ANALYSIS OF & ! VARIANCE AND CRD AOV WITH REPEATED MEASURE FOR SELECTED (OR ALL) & ! VARIABLES (COLUMNS). & ! & 00007 ! AUTHOR: ARDOTH HASSLER WILSON & ! CENTRAL STATE UNIVERSITY & ! EDMOND, OKLAHOMA & ! & 00008 ! DATE: MAY, 1975 & ! & ! & ! & & 00009! MODIFICATIONS: JUNE, 1976 & ! & ! CTRL/C TRAP ADDED & 10 & ! CALLING ARGUMENTS & ! & ! 1) VARIABLE NAME: F1$ & ! RANGE OF VALUES: ANY VALID BASIC-PLUS FILE NAME & ! USE: NAME OF USER'S INPUT DATA FILE & 11 ! 2) VARIABLE NAME: F2$ & ! RANGE OF VALUES: ANY VALID BASIC-PLUS FILE NAME & ! USE: NAME FOR OUTPUT FILE TO SAVE DATA & 12 ! 3) VARIABLE NAME: F3$ & ! RANGE OF VALUES: S00000.RWM - S99999.RWM & ! USE: NAME OF FILE WHERE 250 ROW BY & ! 15 COLUMN DATA MATRIX WILL BE STORED & 13 ! 4) VARIABLE NAME: R% & ! RANGE OF VALUES: 1 - 250 & ! USE: NUMBER OF ROWS IN DATA MATRIX & 14 ! 5) VARIABLE NAME: C% & ! RANGE OF VALUES: 1 - 15 & ! USE: NUMBER OF COLUMNS IN DATA MATRIX & ! & 15 & ! RETURNING ARGUMENTS & ! & ! THE RETURNING ARGUMENTS ARE THE SAME AS THE CALLING & ! ARGUMENTS -- ALL ARE PASSED VIA COMMON STORAGE TO THE & ! NEXT MODULE. & ! & 00030! & ! & ! DESCRIPTION OF FUNCTION 00032! THIS MODULE PERFORMS ANALYSIS OF VARIANCE FOR A & ! COMPLETELY RANDOMIZED DESIGN WITH OR WITHOUT REPEATED & ! MEASURE & 00034! THE MODULE ASKS THE USER WHETHER HE HAS REPEATED MEASURE & ! AND IF HE WISHES TO EXCLUDE ANY VARIABLES FROM THE ANALYSIS & ! & 00036! AFTER COMPUTING THE AOV THE USER IS ASKED IF HE WANTS TO & ! COMPUTE ANY MORE AOV'S. & ! & 00038 ! IF NOT, CONTROL IS RETURNED TO STATCM. & ! & & ! & & ! & & ! & & ! & 90 ! & ! Modifications: August,1981 & ! & ! COMMON (STAT) MODULE$ = 6%, LINE%, SAV.F$ = 127% & ! added to replace core common and also to let STTMGR know & ! who to chain to (MODULE$). Once i MODULE$, LINE% indicates & ! line to begin execution. & ! & \ COMMON (STAT) MODULE$ = 6%, LINE%, SAV.F$ = 127% & 00100 & ! & ! THIS CODE RETRIEVES CALLING ARGUEMENTS AND OPENS THE INPUT & ! DATA FILE & ! & 00110 ON ERROR GOTO 20000 & \ GOSUB 22000 & \ !F$=SYS(CHR$(7%)) & \ F$=SAV.F$ 00120 A9$=MID(F$,62%,9%) & \ A9$=LEFT(A9$,INSTR(5%,A9$,"]")) & \ H9=.9E-38 00130 R%=VAL(MID(F$,46%,5%)) 00140 C%=VAL(MID(F$,51%,5%)) 00150 F3$=MID(F$,31%,15%) 00170 OPEN F3$ FOR INPUT AS FILE 1, VIRTUAL & \ DIM #1%,X(250%,15%) 00180 DIM D%(15%),T(15%),N%(15%) 00200 & ! & ! THE USER IS ASKED IF HE AS REPEATED MEASURE. & ! ALSO, IF HE DESIRES TO OMIT ANY VARIABLES AND IF SO, WHICH ONES & ! & 00220 PRINT "ANALYSIS OF VARIANCE" & \ PRINT 00230 INPUT "DOES YOUR DATA HAVE REPEATED MEASURE";R$ & \ IF LEFT(R$,1%)="Y" THEN F%=1% ELSE F%=0% 00235 D%(I%)=1% FOR I%=1% TO C% & \ T%=0% 00240 PRINT "DO YOU WISH TO OMIT ANY VARIABLES (COLUMNS) FROM" & \ INPUT "THE ANALYSIS";R$ & \ IF LEFT(R$,1%)="N" OR R$="" & THEN GOTO 400 & ELSE IF LEFT(R$,1%)<>"Y" & THEN PRINT "YOU MUST ANSWER YES OR NO" & \ GOTO 240 00260 INPUT "ENTER VARIABLE TO BE OMITTED (0 TO END)";D% 00265 IF D%=0% & THEN GOTO 300 00270 IF D%<1% OR D%>C% & THEN PRINT "VARIABLE MUST BE BETWEEN 1 AND"; C% & \ GOTO 260 00280 D%(D%)=-1% & \ T%=T%+1% & \ GOTO 260 00300 IF T%>=C%-1% & THEN PRINT "YOU HAVE ASKED TO DELETE";T%;" VARIABLES" & \ PRINT "THERE ARE ONLY";C%;" VARIABLES IN ALL" & \ GOTO 220 00400 & ! & ! THIS SECTION COMPUTES GRAND SUMS AND TREATMENT (VARIABLE) & ! TOTALS. ALSO, PERSON TOTALS ARE COMPUTED IF REPEATED & ! MEASURE IS DESIRED & ! & 00410 T%=C%-T% 00420 G=0 & \ G2=0 & \ P=0 & \ P2=0 & \ N=0 00430 MAT T=ZER 00440 MAT N%=ZER 00450 FOR I%=1% TO R% 00460 IF F%=0% GOTO 600 00465 P=0 00470 K%=0% & \ FOR J%=1% TO C% & \ IF D%(J%)=-1% GOTO 500 00480 IF X(I%,J%)=H9 THEN K%=K%+1% & \ GOTO 500 00490 P=P+X(I%,J%) 00500 NEXT J% 00510 F=K%*P/(T%-K%) 00520 P2=P2+(P+F)^2 00530 P=P/(T%-K%) 00600 FOR J%=1% TO C% & \ IF D%(J%)=-1% GOTO 650 00610 IF X(I%,J%)=H9 THEN IF F%=0% GOTO 650 ELSE X=P & \ GOTO 630 00620 X=X(I%,J%) 00630 T(J%)=T(J%)+X & \ G2=G2+X*X 00640 N%(J%)=N%(J%)+1% 00650 NEXT J% 00660 NEXT I% 00700 & ! & ! THIS SECTION COMPUTES AND PRINTS THE AOV & ! & 00710 T=0 & \ FOR J%=1% TO C% & \ IF D%(J%)=-1% GOTO 730 00720 T=T+T(J%)/N%(J%)*T(J%) & \ G=G+T(J%) & \ N=N+N%(J%) 00730 NEXT J% 00735 S$="\ \ ### #########.#### #####.####"+ & " ###.###" 00737 S1$="\ \ ### #########.#### #####.#### "+ & "###.###" 00740 C=G/N*G 00750 S=G2-C 00760 IF F%=1% GOTO 900 00770 S1=T-C & \ E=S-S1 & \ M1=S1/(T%-1%) & \ M2=E/(N-T%) & \ F=M1/M2 00780 GOSUB 9000 00790 PRINT USING S$,"TREATMENTS",T%-1%,S1,M1,F 00800 PRINT USING S$,"ERROR",N-T%,E,M2 00810 GOTO 1000 00900 P2=P2/T% & \ B=P2-C & \ W=G2-P2 & \ S1=T-C & \ E=G2-T-P2+C & \ GOSUB 9000 00905 M1=S1/(T%-1%) & \ M2=E/((R%-1%)*(T%-1%)) & \ F=M1/M2 00910 PRINT USING S$,"BETWEEN SUBJECTS",R%-1%,B,B/(R%-1%) 00920 PRINT USING S$,"WITHIN SUBJECTS",R%*(T%-1%),W,W/(R%*(T%-1%)) 00930 PRINT USING S1$," TREATMENTS",T%-1%,S1,M1,F 00940 PRINT USING S1$," RESIDUAL",(R%-1%)*(T%-1%),E,M2 01000 PRINT USING S$,"TOTAL",N-1,S 01010 PRINT & \ PRINT 02000 & ! & ! HERE THE USER IS ASKED IF HE HAS MORE AOV. IF NO, CONTROL IS & ! RETURNED TO STATCM & ! & 02010 INPUT "DO YOU WISH TO COMPUTE MORE ANALYSIS OF VARIANCE";R$ & \ IF LEFT(R$,1%)="Y" GOTO 200 02020 IF LEFT(R$,1%)="N" OR R$="" GOTO 32000 02030 PRINT "YOU MUST ANSWER YES OR NO" & \ GOTO 2010 09000 PRINT & \ PRINT & \ PRINT & \ PRINT "ANALYSIS OF VARIANCE" & \ PRINT 09020 PRINT "SOURCE DF SUM OF SQUARES MEAN SQUARE"; & \ PRINT " F" 09030 RETURN 20000 IF ERR=28% THEN GOSUB 22000 & !\ RESUME 32000 & \ MODULE$ = "FINISH" & \ GOTO 32750 20010 IF ERR>49% AND ERR<53% & THEN PRINT "YOU TYPED NON-NUMERIC CHARACTERS INSTEAD OF A VARIABLE" & \ PRINT "NUMBER. PLEASE TRY AGAIN." & \ RESUME 260 21000 ON ERROR GOTO 0 22000 V0%=CTRLC ! SYS(CHR$(6%)+CHR$(-7%)) & \ RETURN ! CTRL/C TRAP 32000 & ! & ! CLOSE FILES, REPLACE ARGUEMENTS IN COMMON & ! & 32005 PRINT & \ PRINT 32010 CLOSE 1% 32020 !R$=SYS(CHR$(8%)+F$) & \ SAV.F$ = F$ 32030 !CHAIN "STATCM"+A9$ & \ MODULE$= "STATCM" & \ LINE% = 0% & \ SUBEXIT & 32750 SUBEND