LazStats: Small fixes to previous commit. Update help file to new DistribUnit.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7636 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2020-08-24 22:54:29 +00:00
parent cd7073f12e
commit fdfd3c7330
4 changed files with 27 additions and 24 deletions

Binary file not shown.

View File

@ -5,7 +5,6 @@ object DistribFrm: TDistribFrm
Width = 687
HelpType = htKeyword
HelpKeyword = 'html/DistributionPlotsandCriticalValu.htm'
BorderStyle = bsDialog
Caption = 'Distributions'
ClientHeight = 432
ClientWidth = 687
@ -77,10 +76,10 @@ object DistribFrm: TDistribFrm
Anchors = [akLeft, akRight, akBottom]
Shape = bsBottomLine
end
object Panel1: TPanel
object ChartPanel: TPanel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Panel2
AnchorSideRight.Control = ParameterPanel
AnchorSideBottom.Control = Bevel1
Left = 8
Height = 377
@ -131,6 +130,7 @@ object DistribFrm: TDistribFrm
Foot.Brush.Color = clBtnFace
Foot.Font.Color = clBlue
Margins.Bottom = 0
Title.Brush.Color = clBtnFace
Title.Brush.Style = bsClear
Title.Font.Color = clBlue
Title.Text.Strings = (
@ -176,7 +176,7 @@ object DistribFrm: TDistribFrm
OnClick = PrintBtnClick
TabOrder = 5
end
object Panel2: TPanel
object ParameterPanel: TPanel
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
@ -190,13 +190,12 @@ object DistribFrm: TDistribFrm
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BevelOuter = bvNone
Caption = 'Panel2'
ClientHeight = 377
ClientWidth = 180
TabOrder = 6
object GroupBox1: TGroupBox
AnchorSideLeft.Control = Panel2
AnchorSideTop.Control = Panel2
AnchorSideLeft.Control = ParameterPanel
AnchorSideTop.Control = ParameterPanel
AnchorSideRight.Side = asrBottom
Left = 0
Height = 136

View File

@ -31,7 +31,7 @@ type
SavePictureDialog: TSavePictureDialog;
VertLineSeries: TLineSeries;
FuncSeries: TFuncSeries;
Panel2: TPanel;
ParameterPanel: TPanel;
SaveBtn: TButton;
PrintBtn: TButton;
Chart: TChart;
@ -41,7 +41,7 @@ type
FChk: TRadioButton;
MeanEdit: TEdit;
NDChk: TRadioButton;
Panel1: TPanel;
ChartPanel: TPanel;
ResetBtn: TButton;
ComputeBtn: TButton;
CloseBtn: TButton;
@ -315,9 +315,10 @@ end;
procedure TDistribFrm.NDPlot;
var
alpha: Double;
zCrit, pCrit: Double;
zMax, zCrit, pCrit: Double;
begin
alpha := StrToFloat(AlphaEdit.Text);
zMax := InverseZ(0.9999);
zCrit := inversez(1.0 - alpha);
CalcND(zCrit, pCrit);
@ -327,8 +328,8 @@ begin
Chart.Title.Text.Add(Format('Critical value = %.3f', [zCrit]));
Chart.Title.Visible := true;
Chart.BottomAxis.Title.Caption := 'z';
FuncSeries.Extent.XMin := -4;
FuncSeries.Extent.XMax := +4;
FuncSeries.Extent.XMin := -zMax;
FuncSeries.Extent.XMax := +zMax;
FuncSeries.Extent.UseXMin := true;
FuncSeries.Extent.UseXMax := true;
FuncSeries.OnCalculate := @CalcND;
@ -342,21 +343,22 @@ end;
procedure TDistribFrm.ChiPlot;
var
alpha: Double;
Chi2Crit, pCrit: Double;
Chi2Max, Chi2Crit, pCrit: Double;
begin
alpha := StrToFloat(AlphaEdit.Text);
DF1 := StrToInt(DF1Edit.Text);
Chi2Max := InverseChi(0.9999, DF1);
Chi2Crit := InverseChi(1.0 - alpha, DF1);
CalcChiSq(Chi2Crit, pCrit);
Chart.Title.Text.Clear;
Chart.Title.Text.Add('<b>Chi-Squared Distribution.</b>');
Chart.Title.Text.Add('<b>Chi-Squared Distribution</b>');
Chart.Title.Text.Add(Format('&alpha; = %.3g / Degrees of freedom = %d', [alpha, DF1]));
Chart.Title.Text.Add(Format('Critical value = %.3f', [Chi2Crit]));
Chart.Title.Visible := true;
Chart.BottomAxis.Title.Caption := '&chi;<sup>2</sup>';
FuncSeries.Extent.XMin := 0;
FuncSeries.Extent.XMax := 125;
FuncSeries.Extent.XMax := Chi2Max;
FuncSeries.Extent.UseXMin := true;
FuncSeries.Extent.UseXMax := true;
FuncSeries.OnCalculate := @CalcChiSq;
@ -370,22 +372,23 @@ end;
procedure TDistribFrm.FPlot;
var
alpha: Double;
FCrit, pCrit: Double;
FMax, FCrit, pCrit: Double;
begin
alpha := StrToFloat(AlphaEdit.Text);
DF1 := StrToInt(DF1Edit.Text);
DF2 := StrToInt(DF2Edit.Text);
FMax := FPercentPoint(0.999, DF1, DF2);
FCrit := FPercentPoint(1.0 - alpha, DF1, DF2);
CalcF(FCrit, pCrit);
Chart.Title.Text.Clear;
Chart.Title.Text.Add('<b>F Distribution.</b>');
Chart.Title.Text.Add('<b>F Distribution</b>');
Chart.Title.Text.Add(Format('&alpha; = %.3g / DF1 = %d, DF2 = %d', [alpha, DF1, DF2]));
Chart.Title.Text.Add(Format('Critical value = %.3f', [FCrit]));
Chart.Title.Visible := true;
Chart.BottomAxis.Title.Caption := 'F';
FuncSeries.Extent.XMin := 0;
FuncSeries.Extent.XMax := 15;
FuncSeries.Extent.XMax := FMax;
FuncSeries.Extent.UseXMin := true;
FuncSeries.Extent.UseXMax := true;
FuncSeries.OnCalculate := @CalcF;
@ -399,21 +402,22 @@ end;
procedure TDistribFrm.tPlot;
var
alpha: Double;
tCrit, pCrit: Double;
tMax, tCrit, pCrit: Double;
begin
alpha := StrToFloat(AlphaEdit.Text);
DF1 := StrToInt(DF1Edit.Text);
tMax := Inverset(0.9999, DF1);
tCrit := Inverset(1.0 - alpha, DF1);
Calct(tCrit, pCrit);
Chart.Title.Text.Clear;
Chart.Title.Text.Add('<b>Student t Distribution.</b>');
Chart.Title.Text.Add('<b>Student t Distribution</b>');
Chart.Title.Text.Add(Format('&alpha; = %.3g / Degrees of freedom = %d', [alpha, DF1]));
Chart.Title.Text.Add(Format('Critical value = %.3f', [tCrit]));
Chart.Title.Visible := true;
Chart.BottomAxis.Title.Caption := 't';
FuncSeries.Extent.XMin := -4;
FuncSeries.Extent.XMax := 4;
FuncSeries.Extent.XMin := -tMax;
FuncSeries.Extent.XMax := tMax;
FuncSeries.Extent.UseXMin := true;
FuncSeries.Extent.UseXMax := true;
FuncSeries.OnCalculate := @Calct;
@ -429,8 +433,8 @@ var
w: Integer;
begin
w := MaxValue([SaveBtn.Width, PrintBtn.Width, ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
SaveBtn.Width := w;
PrintBtn.Width := w;
SaveBtn.Constraints.MinWidth := w;
PrintBtn.Constraints.MinWidth := w;
ResetBtn.Constraints.MinWidth := w;
ComputeBtn.Constraints.MinWidth := w;
CloseBtn.Constraints.MinWidth := w;