LazStats: Refactor two-way ANOVA in BlkAnovaUnit. Use TAChart.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7853 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-11-09 21:52:26 +00:00
parent 6ce0fc13bd
commit bc5987793a
2 changed files with 615 additions and 346 deletions

View File

@ -438,9 +438,9 @@ begin
SetLength(ColSums, NF2Cells); // 2-way column sums
SetLength(RowCount, NF1Cells); // 2-way row counts
SetLength(ColCount, NF2Cells); // 2-way column counts
SetLength(counts, Nf1cells, Nf2cells); // matrix for 2-way containing cell sizes
SetLength(sums, Nf1cells, Nf2cells); // matrix for 2-way containing cell sums
SetLength(vars, Nf1cells, Nf2cells); // matrix for 2-way containing sums of squares
SetLength(counts, NF1Cells, NF2Cells); // matrix for 2-way containing cell sizes
SetLength(sums, NF1Cells, NF2Cells); // matrix for 2-way containing cell sums
SetLength(vars, NF1Cells, NF2Cells); // matrix for 2-way containing sums of squares
end;
@ -519,9 +519,9 @@ begin
else
Constant := 0.0;
SSDep := SSDep - Constant;
SSF1 := SSF1 - Constant;
SSF2 := SSF2 - Constant;
SSDep := SSDep - Constant;
SSErr := SSDep - (SSF1 + SSF2);
SSNonAdd := (SSNonAdd * SSNonAdd) / ((SSF1 * SSF2) / (NoGrpsA * NoGrpsB) );
MSNonAdd := SSNonAdd;
@ -538,14 +538,17 @@ begin
DFF2 := NoGrpsB - 1;
DFErr := DFF1 * DFF2;
DFBalance := DFErr - 1;
MSF1 := SSF1 / DFF1;
MSF2 := SSF2 / DFF2;
MSErr := SSErr / DFErr;
MSDep := SSDep / DFTot;
MSBalance := SSBalance / DFBalance;
OmegaF1 := (SSF1 - DFF1 * MSErr) / (SSDep + MSErr);
OmegaF2 := (SSF2 - DFF2 * MSErr) / (SSDep + MSErr);
Omega := OmegaF1 + OmegaF2;
MeanDep := MeanDep / N;
// F tests for fixed effects