mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
242 lines
19 KiB
Plaintext
242 lines
19 KiB
Plaintext
COMMENT BIVARIATE CORRELATION AND REGRESSION ANALYSIS. THE LONG 00000100
|
|
METHOD OF DIFFERENCES FROM THE AVERAGE IS USED 00000200
|
|
RATHER THAN THE SHORT-CUT SUM OF SQUARES. BOTH 00000300
|
|
Y = AX + B AND X = A"Y + B" ARE FITTED. THE LINE MAY BE 00000400
|
|
FORCED THROUGH THE ORIGIN . 00000500
|
|
MODIFIED FOR TELETYPE JULY 1967 F. LUCAS ; 00000600
|
|
BEGIN 00000700
|
|
COMMENT CUBE LIBRARY NUMBER IS G200010. THE PROGRAM NAME IS 00000800
|
|
"B0301/TTY". THIS VERSION DATED 5/3/68; 00000900
|
|
INTEGER J, N, NAME ; 00001000
|
|
00001100
|
|
ALPHA MORDAT; 00001200
|
|
BOOLEAN S, SWF, SWP ; 00001300
|
|
00001400
|
|
REAL IJ, DJ, ESTIMATE, RESIDUAL, SUMX, SUMY, SUMXY, SUMX2, 00001500
|
|
SUMY2, DXY, DX2, DY2, AVERAGEX, AVERAGEY, DIFFX, DIFFY, 00001600
|
|
VARIANCEX, VARIANCEY, SE, SA, SB, TA, TB, R2, 00001700
|
|
R, A, B, VARIANCE ; 00001800
|
|
FORMAT CARD2(2F12.5), 00001900
|
|
CARD3 (X10, 4I5) ; 00002000
|
|
LIST SIZES (SWF, SWP, NAME, N) ; 00002100
|
|
FILE IN FID DISK SERIAL "AAAAAAA" "BBBBBBB" (2,10,30); 00002200
|
|
ALPHA FILE IN TTIN 14 (2,8); 00002300
|
|
ALPHA FILE OUT TOUT 14 (2,8); 00002400
|
|
FORMAT IN F1(X8,I1), F2(X8,I*), F3(X8,A1,A6), F4(X8,A3); 00002500
|
|
ARRAY TZ[0:7]; 00002600
|
|
INTEGER STA,NC; 00002700
|
|
ALPHA AA,BB,AA1,BB1,ID1,ID2; 00002800
|
|
FORMAT OUT HEAD(X8,"{!!!SIMPLE REGRESSION ANALYSIS{!!~"), 00002900
|
|
FORM1(X8,"CASE NO.",I11,"{!!~"), 00003000
|
|
FORM2(X8,"DATA POINTS",I8 ,"{!!~"), 00003100
|
|
FORM3(X8,"CONSTANT TERM{!!~"), 00003200
|
|
AVERAGEF(X8,"{!AVERAGE X",E14.6,X5,"AVERAGE Y",E14.6,"{!~"),00003300
|
|
VARIANCEF(X8,"VARIANCE X",E14.6,X4,"VARIANCE Y", 00003400
|
|
E14.6,"{!~"), 00003500
|
|
RF1(X8,"CORRELATION COEFFICIENT",E14.6,"{!~"), 00003600
|
|
RF2(X8,"FRACTION OF VARIANCE REMOVED",E14.6,"{!~"), 00003700
|
|
HEAD1(X8,"{!Y = AX + B{!!~"), 00003800
|
|
AF1(X8,"SLOPE",E14.6,"{!~"), 00003900
|
|
AF2(X8,"SLOPE ERROR",E14.6,"{!~"), 00004000
|
|
AF3(X8,"SLOPE T-VALUE",E14.6,"{!~"), 00004100
|
|
BF1(X8,"INTERCEPT",E14.6,"{!~"), 00004200
|
|
BF2(X8,"INTERCEPT ERROR",E14.6,"{!~"), 00004300
|
|
BF3(X8,"INTERCEPT T-VALUE",E14.6,"{!~"), 00004400
|
|
ERRORF1(X8,"VARIANCE OF FIT",E14.6,"{!~"), 00004500
|
|
ERRORF2(X8,"STANDARD ERROR OF ESTIMATE",E14.6,"{!!~"), 00004600
|
|
HEAD2(X8,"{!X = AY + B{!!~"), 00004700
|
|
RESIDUALS(X8," INDEPENDENT DEPENDENT ESTIMATE", 00004800
|
|
" RESIDUALS{!!~"), 00004900
|
|
RESF(X8,3(E13.5,X1),E13.5"~"), 00005000
|
|
FCRLF(X8,"{!~"), 00005100
|
|
FORCE(X8,"{!NO CONSTANT TERM{!~"), 00005200
|
|
TITLE1(X8,"{!!Y = AX{!!~"), 00005300
|
|
TITLE2(X8,"{!!X = AY{!!~"), 00005400
|
|
FNOF1(X8,"{!YOUR FILE NOT FOUND. TRY AGAIN.{!!~"), 00005500
|
|
FSWF(X8,"{!TO FORCE LINE THRU ORIGIN TYPE 1 ELSE 0 ~"), 00005600
|
|
FSWP(X8,"{!TO PRINT DIFFERENCES TYPE 1 ELSE 0 ~"), 00005700
|
|
FNAME(X8,"{!ENTER CASE NO. ~"), 00005800
|
|
FSTR(X8,"{!!BEGINNING OF SIMPLE REGRESSION ANALYSIS{!~"),00005900
|
|
FSTT(X8,"ENTER YOUR SETUP VALUES AS ASKED FOR{!!~"), 00006000
|
|
FDPT(X8,"{!NO. OF DATA POINTS = ~"), 00006100
|
|
FMOR(X8,"{!TO DO ANOTHER SET TYPE YES {!~"), 00006200
|
|
FPGM(X8,"{!ENTER YOUR DATA NAMES{!~"), 00006300
|
|
FSX(X8,"{!SUFFIX = ~"), 00006400
|
|
FPX(X8,"PREFIX = ~"); 00006500
|
|
LIST CASE (NAME, N), 00006600
|
|
AVERAGEO (AVERAGEX, AVERAGEY), 00006700
|
|
VARIANCEO (VARIANCEX, VARIANCEY), 00006800
|
|
RO (R, R | R), 00006900
|
|
AO (A, SA, TA), 00007000
|
|
BO (B, SB, TB), 00007100
|
|
ERRORO (VARIANCE, SE), 00007200
|
|
RESO (IJ, DJ, ESTIMATE, RESIDUAL), 00007300
|
|
RFOO (R, R2) ; 00007400
|
|
LABEL START,EXIT; 00007500
|
|
DEFINE WT=WRITE(TOUT(STA)#, RT=READ(TTIN(STA)#,PAPER=TOUT(STA)#;00007600
|
|
PROCEDURE BLANKIT(XX); 00007700
|
|
ALPHA XX; 00007800
|
|
BEGIN 00007900
|
|
IF XX.[12:6]="~" THEN XX.[12:36]~" " ELSE 00008000
|
|
IF XX.[18:6]="~" THEN XX.[18:30]~" " ELSE 00008100
|
|
IF XX.[24:6]="~" THEN XX.[24:24]~" " ELSE 00008200
|
|
IF XX.[30:6]="~" THEN XX.[30:18]~" " ELSE 00008300
|
|
IF XX.[36:6]="~" THEN XX.[36:12]~" " ELSE 00008400
|
|
IF XX.[42:6]="~" THEN XX.[42:06]~" " ELSE 00008500
|
|
END OF BLANKIT; 00008600
|
|
INTEGER STREAM PROCEDURE FINDGP(B); 00008700
|
|
BEGIN 00008800
|
|
LABEL HERE; 00008900
|
|
SI~B; 40(IF SC="~" THEN JUMP OUT 1 TO HERE; 00009000
|
|
SI~SI+1; TALLY ~TALLY+1); 00009100
|
|
HERE: FINDGP~TALLY; 00009200
|
|
END OF FINDGP; 00009300
|
|
STA~STATUS(TZ[*]); 00009400
|
|
STA.[9:9]~TZ[0].[9:9]; WT,FSTR); 00009500
|
|
WT,FSTT); 00009600
|
|
START: WT,FSWF); RT,F1,SWF); 00009700
|
|
WT,FSWP); RT,F1,SWP); 00009800
|
|
WT,FNAME); RT,4,TZ[*]); 00009900
|
|
NC~FINDGP(TZ[1]); 00010000
|
|
READ(TZ[*],F2,NC,NAME); 00010100
|
|
WT,FDPT); RT,4,TZ[*]); 00010200
|
|
NC~FINDGP(TZ[1]); 00010300
|
|
READ(TZ[*],F2,NC,N); 00010400
|
|
SUMX ~ SUMY ~ SUMXY ~ SUMX2 ~ SUMY2 ~ 00010500
|
|
DXY ~ DX2 ~ DY2 ~ 0 ; 00010600
|
|
BEGIN 00010700
|
|
REAL ARRAY X[0:N], Y[0:N] ; 00010800
|
|
LABEL LOVR,BYP; 00010900
|
|
COMMENT THE PROCEDURE PRINTDIFF COMPUTES THE RESIDUALS AND PRINTS 00011000
|
|
THEM ALONG WITH THE CORRESPONDING DATA ; 00011100
|
|
PROCEDURE PRINTDIFF ; 00011200
|
|
BEGIN 00011300
|
|
WRITE (PAPER, RESIDUALS) ; 00011400
|
|
FOR J ~ 1 STEP 1 UNTIL N DO 00011500
|
|
BEGIN 00011600
|
|
IF S THEN 00011700
|
|
BEGIN 00011800
|
|
IJ ~ X[J] ; DJ ~ Y[J] 00011900
|
|
END 00012000
|
|
ELSE 00012100
|
|
BEGIN 00012200
|
|
IJ ~ Y[J] ; DJ ~ X[J] 00012300
|
|
END ; 00012400
|
|
ESTIMATE ~ A | IJ + B ; 00012500
|
|
RESIDUAL ~ DJ - ESTIMATE ; 00012600
|
|
WRITE (PAPER, RESF, RESO); 00012700
|
|
WT,FCRLF); 00012800
|
|
END ; 00012900
|
|
END PRINTDIFF ; 00013000
|
|
LIST DATA (X[J], Y[J]) ; 00013100
|
|
LABEL FORCELINE ; 00013200
|
|
LOVR: WT,FPGM); WT,FPX); RT,F3,AA,AA1); 00013300
|
|
ID1.[6:6]~AA; ID1.[12:36]~AA1; 00013400
|
|
WT,FSX); RT,F3,BB,BB1); 00013500
|
|
ID2.[6:6]~BB; ID2.[12:36]~BB1; 00013600
|
|
BLANKIT(ID1); BLANKIT(ID2); 00013700
|
|
FILL FID WITH ID1,ID2; 00013800
|
|
SEARCH(FID,TZ[*]); 00013900
|
|
IF TZ[0]<2 THEN 00014000
|
|
BEGIN 00014100
|
|
WT,FNOF1); GO TO LOVR; 00014200
|
|
END; 00014300
|
|
WRITE (PAPER, HEAD) ; 00014400
|
|
WT,FORM1,NAME); WT,FORM2,N); WT,FORM3); 00014500
|
|
FOR J ~ 1 STEP 1 UNTIL N DO 00014600
|
|
BEGIN 00014700
|
|
READ (FID , CARD2, DATA) ; 00014800
|
|
IJ ~ X[J] ; DJ ~ Y[J] ; 00014900
|
|
SUMX ~ IJ + SUMX ; 00015000
|
|
SUMY ~ DJ + SUMY ; 00015100
|
|
SUMXY ~ IJ | DJ + SUMXY ; 00015200
|
|
SUMX2 ~ IJ * 2 + SUMX2 ; 00015300
|
|
SUMY2 ~ DJ * 2 + SUMY2 00015400
|
|
END ; 00015500
|
|
AVERAGEX ~ SUMX / N ; 00015600
|
|
AVERAGEY ~ SUMY / N ; 00015700
|
|
WRITE (PAPER, AVERAGEF, AVERAGEO) ; 00015800
|
|
FOR J ~ 1 STEP 1 UNTIL N DO 00015900
|
|
BEGIN 00016000
|
|
DIFFX ~ AVERAGEX - X[J] ; 00016100
|
|
DIFFY ~ AVERAGEY - Y[J] ; 00016200
|
|
DXY ~ DIFFX | DIFFY + DXY ; 00016300
|
|
DX2 ~ DIFFX * 2 + DX2 ; 00016400
|
|
DY2 ~ DIFFY * 2 + DY2 00016500
|
|
END ; 00016600
|
|
VARIANCEX ~ DX2 / (N-1) ; 00016700
|
|
VARIANCEY ~ DY2 / (N-1) ; 00016800
|
|
WRITE (PAPER, VARIANCEF, VARIANCEO) ; 00016900
|
|
00017000
|
|
COMMENT COMPUTE THE CORRELATION COEFFICIENT ; 00017100
|
|
R ~ DXY / SQRT (DX2 | DY2) ; 00017200
|
|
WT,RF1,R); WT,RF2,R|R); 00017300
|
|
COMMENT COMPUTE REGRESSION COEFFICIENTS FOR Y = F(X) AND X = F(Y) 00017400
|
|
ALONG WITH OTHER RELATED DATA ; 00017500
|
|
WRITE (PAPER, HEAD1) ; 00017600
|
|
A ~ DXY / DX2 ; 00017700
|
|
B ~ (SUMY - A | SUMX) / N ; 00017800
|
|
VARIANCE ~ (DY2 - A | DXY) / (N-2) ; 00017900
|
|
SE ~ SQRT (VARIANCE) ; 00018000
|
|
SA ~ SE / SQRT (DX2) ; 00018100
|
|
TA ~ A / SA ; 00018200
|
|
WT,AF1,A); WT,AF2,SA); WT,AF3,TA); 00018300
|
|
SB ~ SE | SQRT (SUMX2 / (N | DX2)) ; 00018400
|
|
TB ~ B/SB ; 00018500
|
|
WT,BF1,B); WT,BF2,SB); WT,BF3,TB); 00018600
|
|
WT,ERRORF1,VARIANCE); WT,ERRORF2,SE); 00018700
|
|
IF SWP THEN 00018800
|
|
BEGIN 00018900
|
|
S ~ TRUE ; PRINTDIFF 00019000
|
|
END ; 00019100
|
|
00019200
|
|
WRITE (PAPER, HEAD2) ; 00019300
|
|
A ~ DXY / DY2 ; 00019400
|
|
B ~ (SUMX - A | SUMY) / N ; 00019500
|
|
VARIANCE ~ (DX2 - A | DXY) / (N-2) ; 00019600
|
|
SE ~ SQRT (VARIANCE) ; 00019700
|
|
SA ~ SE / SQRT (DY2) ; 00019800
|
|
TA ~ A / SA ; 00019900
|
|
WT,AF1,A); WT,AF2,SA); WT,AF3,TA); 00020000
|
|
SB ~ SE | SQRT (SUMY2 / (N | DY2)) ; 00020100
|
|
TB ~ B / SB ; 00020200
|
|
WT,BF1,B); WT,BF2,SB); WT,BF3,TB); 00020300
|
|
WT,ERRORF1,VARIANCE); WT,ERRORF2,SE); 00020400
|
|
IF SWP THEN 00020500
|
|
BEGIN 00020600
|
|
S ~ FALSE ; PRINTDIFF 00020700
|
|
END ; 00020800
|
|
IF NOT SWF THEN GO TO BYP; 00020900
|
|
FORCELINE : WRITE (PAPER, FORCE) ; 00021000
|
|
B ~ R ~ 0 ; 00021100
|
|
A ~ SUMXY / SUMX2 ; 00021200
|
|
R2 ~ (A | SUMXY - SUMY | SUMY / N) / DY2 ; 00021300
|
|
WRITE (PAPER, TITLE1) ; 00021400
|
|
WT,RF1,R); WT,RF2,R2); 00021500
|
|
VARIANCE ~ (SUMY2 - A | SUMXY) / (N-1) ; 00021600
|
|
SE ~ SQRT (VARIANCE) ; 00021700
|
|
SA ~ SE / SQRT (SUMX2) ; 00021800
|
|
TA ~ A / SA ; 00021900
|
|
WT,AF1,A); WT,AF2,SA); WT,AF3,TA); 00022000
|
|
WT,ERRORF1,VARIANCE); WT,ERRORF2,SE); 00022100
|
|
IF SWP THEN 00022200
|
|
BEGIN 00022300
|
|
S ~ TRUE ; PRINTDIFF 00022400
|
|
END ; 00022500
|
|
WRITE (PAPER, TITLE2) ; 00022600
|
|
A ~ SUMXY / SUMY2 ; 00022700
|
|
R2 ~ (A | SUMXY - SUMX | SUMX / N) / DX2 ; 00022800
|
|
WT,RF1,R); WT,RF2,R2); 00022900
|
|
WT,AF1,A); WT,AF2,SA); WT,AF3,TA); 00023000
|
|
WT,ERRORF1,VARIANCE); WT,ERRORF2,SE); 00023100
|
|
IF SWP THEN 00023200
|
|
BEGIN 00023300
|
|
S ~ FALSE ; PRINTDIFF 00023400
|
|
END ; 00023500
|
|
BYP: 00023600
|
|
REWIND(FID); 00023700
|
|
WT,FMOR); RT,F4,MORDAT); 00023800
|
|
IF MORDAT = "YES" THEN GO TO START; 00023900
|
|
END ; 00024000
|
|
EXIT: END . 00024100
|