1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

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