You've already forked lazarus-ccr
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:
Binary file not shown.
Binary file not shown.
@ -5,7 +5,6 @@ object DistribFrm: TDistribFrm
|
|||||||
Width = 687
|
Width = 687
|
||||||
HelpType = htKeyword
|
HelpType = htKeyword
|
||||||
HelpKeyword = 'html/DistributionPlotsandCriticalValu.htm'
|
HelpKeyword = 'html/DistributionPlotsandCriticalValu.htm'
|
||||||
BorderStyle = bsDialog
|
|
||||||
Caption = 'Distributions'
|
Caption = 'Distributions'
|
||||||
ClientHeight = 432
|
ClientHeight = 432
|
||||||
ClientWidth = 687
|
ClientWidth = 687
|
||||||
@ -77,10 +76,10 @@ object DistribFrm: TDistribFrm
|
|||||||
Anchors = [akLeft, akRight, akBottom]
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
Shape = bsBottomLine
|
Shape = bsBottomLine
|
||||||
end
|
end
|
||||||
object Panel1: TPanel
|
object ChartPanel: TPanel
|
||||||
AnchorSideLeft.Control = Owner
|
AnchorSideLeft.Control = Owner
|
||||||
AnchorSideTop.Control = Owner
|
AnchorSideTop.Control = Owner
|
||||||
AnchorSideRight.Control = Panel2
|
AnchorSideRight.Control = ParameterPanel
|
||||||
AnchorSideBottom.Control = Bevel1
|
AnchorSideBottom.Control = Bevel1
|
||||||
Left = 8
|
Left = 8
|
||||||
Height = 377
|
Height = 377
|
||||||
@ -131,6 +130,7 @@ object DistribFrm: TDistribFrm
|
|||||||
Foot.Brush.Color = clBtnFace
|
Foot.Brush.Color = clBtnFace
|
||||||
Foot.Font.Color = clBlue
|
Foot.Font.Color = clBlue
|
||||||
Margins.Bottom = 0
|
Margins.Bottom = 0
|
||||||
|
Title.Brush.Color = clBtnFace
|
||||||
Title.Brush.Style = bsClear
|
Title.Brush.Style = bsClear
|
||||||
Title.Font.Color = clBlue
|
Title.Font.Color = clBlue
|
||||||
Title.Text.Strings = (
|
Title.Text.Strings = (
|
||||||
@ -176,7 +176,7 @@ object DistribFrm: TDistribFrm
|
|||||||
OnClick = PrintBtnClick
|
OnClick = PrintBtnClick
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
end
|
end
|
||||||
object Panel2: TPanel
|
object ParameterPanel: TPanel
|
||||||
AnchorSideTop.Control = Owner
|
AnchorSideTop.Control = Owner
|
||||||
AnchorSideRight.Control = Owner
|
AnchorSideRight.Control = Owner
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
@ -190,13 +190,12 @@ object DistribFrm: TDistribFrm
|
|||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Right = 8
|
BorderSpacing.Right = 8
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
Caption = 'Panel2'
|
|
||||||
ClientHeight = 377
|
ClientHeight = 377
|
||||||
ClientWidth = 180
|
ClientWidth = 180
|
||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
object GroupBox1: TGroupBox
|
object GroupBox1: TGroupBox
|
||||||
AnchorSideLeft.Control = Panel2
|
AnchorSideLeft.Control = ParameterPanel
|
||||||
AnchorSideTop.Control = Panel2
|
AnchorSideTop.Control = ParameterPanel
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 136
|
Height = 136
|
||||||
|
@ -31,7 +31,7 @@ type
|
|||||||
SavePictureDialog: TSavePictureDialog;
|
SavePictureDialog: TSavePictureDialog;
|
||||||
VertLineSeries: TLineSeries;
|
VertLineSeries: TLineSeries;
|
||||||
FuncSeries: TFuncSeries;
|
FuncSeries: TFuncSeries;
|
||||||
Panel2: TPanel;
|
ParameterPanel: TPanel;
|
||||||
SaveBtn: TButton;
|
SaveBtn: TButton;
|
||||||
PrintBtn: TButton;
|
PrintBtn: TButton;
|
||||||
Chart: TChart;
|
Chart: TChart;
|
||||||
@ -41,7 +41,7 @@ type
|
|||||||
FChk: TRadioButton;
|
FChk: TRadioButton;
|
||||||
MeanEdit: TEdit;
|
MeanEdit: TEdit;
|
||||||
NDChk: TRadioButton;
|
NDChk: TRadioButton;
|
||||||
Panel1: TPanel;
|
ChartPanel: TPanel;
|
||||||
ResetBtn: TButton;
|
ResetBtn: TButton;
|
||||||
ComputeBtn: TButton;
|
ComputeBtn: TButton;
|
||||||
CloseBtn: TButton;
|
CloseBtn: TButton;
|
||||||
@ -315,9 +315,10 @@ end;
|
|||||||
procedure TDistribFrm.NDPlot;
|
procedure TDistribFrm.NDPlot;
|
||||||
var
|
var
|
||||||
alpha: Double;
|
alpha: Double;
|
||||||
zCrit, pCrit: Double;
|
zMax, zCrit, pCrit: Double;
|
||||||
begin
|
begin
|
||||||
alpha := StrToFloat(AlphaEdit.Text);
|
alpha := StrToFloat(AlphaEdit.Text);
|
||||||
|
zMax := InverseZ(0.9999);
|
||||||
zCrit := inversez(1.0 - alpha);
|
zCrit := inversez(1.0 - alpha);
|
||||||
CalcND(zCrit, pCrit);
|
CalcND(zCrit, pCrit);
|
||||||
|
|
||||||
@ -327,8 +328,8 @@ begin
|
|||||||
Chart.Title.Text.Add(Format('Critical value = %.3f', [zCrit]));
|
Chart.Title.Text.Add(Format('Critical value = %.3f', [zCrit]));
|
||||||
Chart.Title.Visible := true;
|
Chart.Title.Visible := true;
|
||||||
Chart.BottomAxis.Title.Caption := 'z';
|
Chart.BottomAxis.Title.Caption := 'z';
|
||||||
FuncSeries.Extent.XMin := -4;
|
FuncSeries.Extent.XMin := -zMax;
|
||||||
FuncSeries.Extent.XMax := +4;
|
FuncSeries.Extent.XMax := +zMax;
|
||||||
FuncSeries.Extent.UseXMin := true;
|
FuncSeries.Extent.UseXMin := true;
|
||||||
FuncSeries.Extent.UseXMax := true;
|
FuncSeries.Extent.UseXMax := true;
|
||||||
FuncSeries.OnCalculate := @CalcND;
|
FuncSeries.OnCalculate := @CalcND;
|
||||||
@ -342,21 +343,22 @@ end;
|
|||||||
procedure TDistribFrm.ChiPlot;
|
procedure TDistribFrm.ChiPlot;
|
||||||
var
|
var
|
||||||
alpha: Double;
|
alpha: Double;
|
||||||
Chi2Crit, pCrit: Double;
|
Chi2Max, Chi2Crit, pCrit: Double;
|
||||||
begin
|
begin
|
||||||
alpha := StrToFloat(AlphaEdit.Text);
|
alpha := StrToFloat(AlphaEdit.Text);
|
||||||
DF1 := StrToInt(DF1Edit.Text);
|
DF1 := StrToInt(DF1Edit.Text);
|
||||||
|
Chi2Max := InverseChi(0.9999, DF1);
|
||||||
Chi2Crit := InverseChi(1.0 - alpha, DF1);
|
Chi2Crit := InverseChi(1.0 - alpha, DF1);
|
||||||
CalcChiSq(Chi2Crit, pCrit);
|
CalcChiSq(Chi2Crit, pCrit);
|
||||||
|
|
||||||
Chart.Title.Text.Clear;
|
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('α = %.3g / Degrees of freedom = %d', [alpha, DF1]));
|
Chart.Title.Text.Add(Format('α = %.3g / Degrees of freedom = %d', [alpha, DF1]));
|
||||||
Chart.Title.Text.Add(Format('Critical value = %.3f', [Chi2Crit]));
|
Chart.Title.Text.Add(Format('Critical value = %.3f', [Chi2Crit]));
|
||||||
Chart.Title.Visible := true;
|
Chart.Title.Visible := true;
|
||||||
Chart.BottomAxis.Title.Caption := 'χ<sup>2</sup>';
|
Chart.BottomAxis.Title.Caption := 'χ<sup>2</sup>';
|
||||||
FuncSeries.Extent.XMin := 0;
|
FuncSeries.Extent.XMin := 0;
|
||||||
FuncSeries.Extent.XMax := 125;
|
FuncSeries.Extent.XMax := Chi2Max;
|
||||||
FuncSeries.Extent.UseXMin := true;
|
FuncSeries.Extent.UseXMin := true;
|
||||||
FuncSeries.Extent.UseXMax := true;
|
FuncSeries.Extent.UseXMax := true;
|
||||||
FuncSeries.OnCalculate := @CalcChiSq;
|
FuncSeries.OnCalculate := @CalcChiSq;
|
||||||
@ -370,22 +372,23 @@ end;
|
|||||||
procedure TDistribFrm.FPlot;
|
procedure TDistribFrm.FPlot;
|
||||||
var
|
var
|
||||||
alpha: Double;
|
alpha: Double;
|
||||||
FCrit, pCrit: Double;
|
FMax, FCrit, pCrit: Double;
|
||||||
begin
|
begin
|
||||||
alpha := StrToFloat(AlphaEdit.Text);
|
alpha := StrToFloat(AlphaEdit.Text);
|
||||||
DF1 := StrToInt(DF1Edit.Text);
|
DF1 := StrToInt(DF1Edit.Text);
|
||||||
DF2 := StrToInt(DF2Edit.Text);
|
DF2 := StrToInt(DF2Edit.Text);
|
||||||
|
FMax := FPercentPoint(0.999, DF1, DF2);
|
||||||
FCrit := FPercentPoint(1.0 - alpha, DF1, DF2);
|
FCrit := FPercentPoint(1.0 - alpha, DF1, DF2);
|
||||||
CalcF(FCrit, pCrit);
|
CalcF(FCrit, pCrit);
|
||||||
|
|
||||||
Chart.Title.Text.Clear;
|
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('α = %.3g / DF1 = %d, DF2 = %d', [alpha, DF1, DF2]));
|
Chart.Title.Text.Add(Format('α = %.3g / DF1 = %d, DF2 = %d', [alpha, DF1, DF2]));
|
||||||
Chart.Title.Text.Add(Format('Critical value = %.3f', [FCrit]));
|
Chart.Title.Text.Add(Format('Critical value = %.3f', [FCrit]));
|
||||||
Chart.Title.Visible := true;
|
Chart.Title.Visible := true;
|
||||||
Chart.BottomAxis.Title.Caption := 'F';
|
Chart.BottomAxis.Title.Caption := 'F';
|
||||||
FuncSeries.Extent.XMin := 0;
|
FuncSeries.Extent.XMin := 0;
|
||||||
FuncSeries.Extent.XMax := 15;
|
FuncSeries.Extent.XMax := FMax;
|
||||||
FuncSeries.Extent.UseXMin := true;
|
FuncSeries.Extent.UseXMin := true;
|
||||||
FuncSeries.Extent.UseXMax := true;
|
FuncSeries.Extent.UseXMax := true;
|
||||||
FuncSeries.OnCalculate := @CalcF;
|
FuncSeries.OnCalculate := @CalcF;
|
||||||
@ -399,21 +402,22 @@ end;
|
|||||||
procedure TDistribFrm.tPlot;
|
procedure TDistribFrm.tPlot;
|
||||||
var
|
var
|
||||||
alpha: Double;
|
alpha: Double;
|
||||||
tCrit, pCrit: Double;
|
tMax, tCrit, pCrit: Double;
|
||||||
begin
|
begin
|
||||||
alpha := StrToFloat(AlphaEdit.Text);
|
alpha := StrToFloat(AlphaEdit.Text);
|
||||||
DF1 := StrToInt(DF1Edit.Text);
|
DF1 := StrToInt(DF1Edit.Text);
|
||||||
|
tMax := Inverset(0.9999, DF1);
|
||||||
tCrit := Inverset(1.0 - alpha, DF1);
|
tCrit := Inverset(1.0 - alpha, DF1);
|
||||||
Calct(tCrit, pCrit);
|
Calct(tCrit, pCrit);
|
||||||
|
|
||||||
Chart.Title.Text.Clear;
|
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('α = %.3g / Degrees of freedom = %d', [alpha, DF1]));
|
Chart.Title.Text.Add(Format('α = %.3g / Degrees of freedom = %d', [alpha, DF1]));
|
||||||
Chart.Title.Text.Add(Format('Critical value = %.3f', [tCrit]));
|
Chart.Title.Text.Add(Format('Critical value = %.3f', [tCrit]));
|
||||||
Chart.Title.Visible := true;
|
Chart.Title.Visible := true;
|
||||||
Chart.BottomAxis.Title.Caption := 't';
|
Chart.BottomAxis.Title.Caption := 't';
|
||||||
FuncSeries.Extent.XMin := -4;
|
FuncSeries.Extent.XMin := -tMax;
|
||||||
FuncSeries.Extent.XMax := 4;
|
FuncSeries.Extent.XMax := tMax;
|
||||||
FuncSeries.Extent.UseXMin := true;
|
FuncSeries.Extent.UseXMin := true;
|
||||||
FuncSeries.Extent.UseXMax := true;
|
FuncSeries.Extent.UseXMax := true;
|
||||||
FuncSeries.OnCalculate := @Calct;
|
FuncSeries.OnCalculate := @Calct;
|
||||||
@ -429,8 +433,8 @@ var
|
|||||||
w: Integer;
|
w: Integer;
|
||||||
begin
|
begin
|
||||||
w := MaxValue([SaveBtn.Width, PrintBtn.Width, ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
|
w := MaxValue([SaveBtn.Width, PrintBtn.Width, ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
|
||||||
SaveBtn.Width := w;
|
SaveBtn.Constraints.MinWidth := w;
|
||||||
PrintBtn.Width := w;
|
PrintBtn.Constraints.MinWidth := w;
|
||||||
ResetBtn.Constraints.MinWidth := w;
|
ResetBtn.Constraints.MinWidth := w;
|
||||||
ComputeBtn.Constraints.MinWidth := w;
|
ComputeBtn.Constraints.MinWidth := w;
|
||||||
CloseBtn.Constraints.MinWidth := w;
|
CloseBtn.Constraints.MinWidth := w;
|
||||||
|
Reference in New Issue
Block a user