1 ! PROGRAM FACO, VERSION 1A (31-AUG-73) ! 2 ! PROGRAM FACO IS THE CONTROL PROGRAM FOR FACTOR ANALYSIS. ! IT IS ONE OF THE SEVERAL PROGRAMS AND FILES WHICH COMPOSE COSAP, ! LAWRENCE UNIVERSITY'S CONVERSATIONALLY ORIENTED STATISTICAL 3 ! ANALYSIS PACKAGE. COSAP IS DISTRIBUTED FOR EDUCATIONAL USE, ON ! THE CONDITION THAT IT NOT BE SOLD, RENTED OR LEASED FOR PROFIT. ! 4 ! IF YOU DESIRE FURTHER INFORMATION ABOUT COSAP, PLEASE CONTACT THE ! LAWRENCE UNIVERSITY COMPUTER CENTER, APPLETON, WISCONSIN, 54911. ! 10 DIM N%(30) ! FUNCTION TO CREATE FILE EXT. BASED ON JOB# 25 DEF FNZ$ : IF N%(0)=30% THEN 40 ELSE CHANGE SYS(CHR$(6)+CHR$(9)+CHR$(0)) TO N% : Z8$=".J"+RIGHT(NUM$(N%(1)/2%),2%) 40 FNZ$=Z8$! EXTENSION IS".J"+JOB # 55 FNEND 70 !****FACO 85 OPEN "DAT1"+FNZ$ AS FILE 1 100 OPEN "DISC2"+FNZ$ ASFILE 2 115 OPEN "DISC1"+FNZ$ AS FILE 3 130 OPEN "TMP"+FNZ$ AS FILE 4 135 OPEN L1$(1%) AS FILE 5% 145 DIM#1,X(200,50),H$(30)=2,C(50,50),M4(0),M5(0),M9(0),N(0),J9(0), I4(0),I7(0),N6(0),X2(50),L1$(8)=32% 160 DIM#2,N2(50),M2(50),T9(0),L6(0),G9(0),L1(0) 175 DIM#3,A(50,50),X3(50,50),F9(50),S(50) 190 DIM#4,R(50,50),B(50,50) 191 DIM #5%, N$(50%)=8%,M1$(50%)=64%,O%(50%),P%(50%),D$(50%)=8%, T(50%),D(10000%) 195 R(I%,J%)=0 FOR J%=1% TO 50% FOR I%=1% TO 50% 200 A(I%,J%)=0 FOR J%=1% TO 50% FOR I%=1% TO 50% 205 N1=0 220 PRINT:PRINT"THIS PROGRAM COMPUTES FACTOR ANALYSES.":PRINT "(PRINCIPAL COMPONENTS AND VARIMAX ROTATION)":PRINT:PRINT "DOES YOUR MATRIX CONTAIN RAW DATA"; 235 N1=N1+1:L1(0)=N1 250 INPUT N$:IF N$="YES" THEN 355 ELSE IF N$<>"SOS" THEN 280 265 PRINT:PRINT"ANSWER 'NO' IF IT CONTAINS OTHER DATA":GOTO 250 280 ON N1 GOTO 295 , 310 , 325 295 PRINT:PRINT"IF NOT DOES IT CONTAIN A CORRELATION MATRIX";:GOTO 235 310 PRINT:PRINT"IF NOT DOES IT CONTAIN A FACTOR MATRIX";:GOTO 235 325 PRINT:PRINT"YOUR INPUT DATA MUST BE ONE OF THESE.TRY AGAIN" 340 GOTO 205 355 ON N1 GOTO 370 , 460 , 745 370 I4(0)=-1:CLOSE 1,2,3,4:S$=" FACO 0400":K$=SYS(CHR$(8)+S$) 385 CHAIN "CORE" 400 OPEN "DAT1"+FNZ$ AS FILE 1:OPEN "DISC2"+FNZ$ AS FILE 2 415 OPEN "DISC1"+FNZ$ AS FILE 3 430 OPEN "TMP"+FNZ$ AS FILE 4:I4(0)=0 445 GOTO 520 460 IF M9(0)=N(0) THEN 505 475 PRINT : PRINT "NUMBER OF OBSERVATIONS, "N(0)", AND NUMBER OF"; 480 PRINT "VARIABLES," : PRINT M9(0);", DO NOT"; 490 PRINT " AGREE. PROBLEM TERMINATED!!" : GOTO 1075 505 FOR I=1 TO N(0):FOR J=1 TO M9(0) :A(I,J)=X(I,J):NEXT J:NEXT I 520 CLOSE 1,2,3,4:S$=" FACO 0550":K$=SYS(CHR$(8)+S$) 535 CHAIN "FQCU" 550 OPEN "DAT1"+FNZ$ ASFILE 1:OPEN"DISC2"+FNZ$ AS FILE 2 565 OPEN "DISC1"+FNZ$ AS FILE3 580 OPEN "TMP"+FNZ$ AS FILE 4:L6=L6(0) 585 OPEN L1$(1%) FOR INPUT AS FILE 5% 595 PRINT:PRINT"DO YOU WISH TO PRINT THE CORRELATION MATRIX"; 610 INPUT N$:IF N$="YES" THEN 655 ELSE IF N$<>"SOS" THEN 715 625 PRINT:PRINT"IF YOU ANSWER 'YES' A "L6" BY "L6" MATRIX WILL BE PRINTED." 640 GOTO 595 655 PRINT:FOR I=1 TO L6:L=N2(I) 670 PRINT"ROW "I" ("N$(L)")" 685 PRINTUSING"###.###",A(I,J);FOR J=1 TO L6 : PRINT 700 PRINT:NEXT I 715 FOR I=1 TO L6:FOR J=1 TO L6:R(I,J)=A(I,J):NEXT J:NEXT I 730 GOTO 775 745 I4(0)=-1:L6(0)=N(0):T9(0)=M9(0) 760 FOR I=1 TON(0):FOR J=1 TO M9(0):A(I,J)=X(I,J):NEXTJ:NEXTI 775 CLOSE 1,2,3,4:S$=" FACO 0805":K$=SYS(CHR$(8)+S$) 790 CHAIN "FQLD" 805 OPEN "DAT1"+FNZ$ AS FILE1:OPEN "DISC2"+FNZ$ AS FILE2 820 OPEN "DISC1"+FNZ$ AS FILE3 835 OPEN "TMP"+FNZ$ AS FILE 4:I4(0)=0:N1=L1(0) 850 IF N1<>1 THEN 1015 865 PRINT:PRINT"DO YOU WISH TO COMPUTE FACTOR SCORES";:INPUT N$ 880 IF N$="YES" THEN 940 ELSE IF N$<>"SOS" THEN 1015 895 PRINT:PRINT"ANSWER 'YES' IF YOU WISH TO COMPUTE FACTOR SCORES" 910 PRINT"IN TERMS OF THE OBSERVED VARIANCES FOR ALL CASES IN YOUR SAMPLE" 925 GOTO 865 940 CLOSE 1,2,3,4:S$=" FACO 0970":K$=SYS(CHR$(8)+S$) 955 CHAIN "FQS0" 970 OPEN "DAT1"+FNZ$ AS FILE 1:OPEN "DISC2"+FNZ$ AS FILE2 985 OPEN "DISC1"+FNZ$ ASFILE3 1000 OPEN "TMP"+FNZ$ AS FILE4 1005 OPEN L1$(1%) FOR INPUT AS FILE 5% 1015 PRINT:PRINT"DO YOU WISH MORE ANALYSIS";:INPUT N$ 1030 IF N$="YES" THEN 205 ELSE IF N$<>"SOS" THEN 1075 1045 PRINT:PRINT"ANSWER 'YES' IF YOU WISH TO USE DIFFERENT HYPOTHESIS" 1060 GOTO 1015 1075 CLOSE 1 1090 KILL"DISC2"+FNZ$ :KILL"DISC1"+FNZ$:KILL"TMP"+FNZ$ 1105 S$=" COSAP 0640":K$=SYS(CHR$(8)+S$) 1120 CHAIN"COSAP" 0640 1135 END