LazStats: Reorder menu items in main form. Inherit form in LSMRUnit from TBasicStatsReportForm.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7767 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-10-11 11:47:22 +00:00
parent b33f2006fc
commit faf2847f1a
5 changed files with 625 additions and 630 deletions

View File

@ -1,365 +1,333 @@
object LSMregForm: TLSMregForm
Left = 439
Height = 413
Top = 192
Width = 740
AutoSize = True
inherited LSMregForm: TLSMregForm
Left = 449
Height = 430
Top = 172
Width = 1010
Caption = 'Standard Least-Squares Multiple Regression'
ClientHeight = 413
ClientWidth = 740
OnActivate = FormActivate
OnCreate = FormCreate
OnShow = ResetBtnClick
Position = poMainFormCenter
LCLVersion = '2.1.0.0'
object Label1: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 8
Height = 15
Top = 8
Width = 97
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Available Variables'
ParentColor = False
end
object VarList: TListBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = AllBtn
AnchorSideBottom.Control = Bevel1
Left = 8
Height = 339
Top = 25
Width = 222
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 0
end
object DepInBtn: TBitBtn
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
AnchorSideRight.Control = DepVar
Left = 247
Height = 28
Top = 25
Width = 28
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = DepInBtnClick
Spacing = 0
TabOrder = 1
end
object Label2: TLabel
AnchorSideLeft.Control = DepVar
AnchorSideTop.Control = DepInBtn
Left = 292
Height = 15
Top = 25
Width = 102
BorderSpacing.Bottom = 2
Caption = 'Dependent Variable'
ParentColor = False
end
object DepVar: TEdit
AnchorSideLeft.Control = IndepVars
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = GroupBox1
AnchorSideBottom.Side = asrBottom
Left = 292
Height = 23
Top = 42
Width = 198
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 16
BorderSpacing.Bottom = 12
ReadOnly = True
TabOrder = 3
Text = 'DepVar'
end
object Label3: TLabel
AnchorSideLeft.Control = IndepVars
AnchorSideTop.Control = DepVar
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = IndepVars
Left = 292
Height = 15
Top = 97
Width = 166
BorderSpacing.Top = 32
BorderSpacing.Bottom = 2
Caption = 'Independent Var.s for this block'
ParentColor = False
end
object Label5: TLabel
AnchorSideTop.Control = InProb
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = InProb
Left = 511
Height = 15
Top = 12
Width = 163
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
Caption = 'Minimum Prob. to enter block:'
ParentColor = False
end
object GroupBox1: TGroupBox
AnchorSideTop.Control = InProb
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 506
Height = 212
Top = 39
Width = 226
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Top = 8
BorderSpacing.Right = 8
Caption = 'Options'
ChildSizing.LeftRightSpacing = 12
ChildSizing.TopBottomSpacing = 6
ChildSizing.VerticalSpacing = 4
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 192
ClientWidth = 222
TabOrder = 9
object CPChkBox: TCheckBox
Left = 12
Height = 19
Top = 6
Width = 198
Caption = 'Show Cross-Products Matrix'
ClientHeight = 430
ClientWidth = 1010
inherited ParamsPanel: TPanel
Height = 414
Width = 401
ClientHeight = 414
ClientWidth = 401
inherited CloseBtn: TButton
Left = 346
Top = 389
TabOrder = 13
end
inherited ComputeBtn: TButton
Left = 262
Top = 389
TabOrder = 12
end
inherited ResetBtn: TButton
Left = 200
Top = 389
TabOrder = 11
end
inherited HelpBtn: TButton
Left = 141
Top = 389
TabOrder = 10
end
inherited ButtonBevel: TBevel
Top = 373
Width = 401
end
object Label1: TLabel[5]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = ParamsPanel
Left = 0
Height = 15
Top = 0
Width = 97
Caption = 'Available Variables'
ParentColor = False
end
object VarList: TListBox[6]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = AllBtn
AnchorSideBottom.Control = InProb
Left = 0
Height = 203
Top = 17
Width = 173
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 2
BorderSpacing.Right = 4
BorderSpacing.Bottom = 8
ItemHeight = 0
MultiSelect = True
OnDblClick = VarListDblClick
OnSelectionChange = VarListSelectionChange
TabOrder = 0
end
object CovChkBox: TCheckBox
Left = 12
Height = 19
Top = 29
Width = 198
Caption = 'Show Variance-Covariance Matrix'
object DepInBtn: TBitBtn[7]
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
AnchorSideRight.Control = DepVar
Left = 187
Height = 26
Top = 17
Width = 26
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = DepInBtnClick
Spacing = 0
TabOrder = 1
end
object CorrsChkBox: TCheckBox
Left = 12
Height = 19
Top = 52
Width = 198
Caption = 'Show Intercorrelation Matrix'
TabOrder = 2
object Label2: TLabel[8]
AnchorSideLeft.Control = DepVar
AnchorSideTop.Control = DepInBtn
Left = 227
Height = 15
Top = 17
Width = 102
BorderSpacing.Bottom = 2
Caption = 'Dependent Variable'
ParentColor = False
end
object MeansChkBox: TCheckBox
Left = 12
Height = 19
Top = 75
Width = 198
Caption = 'Show Means'
object DepVar: TEdit[9]
AnchorSideLeft.Control = IndepVars
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ParamsPanel
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 227
Height = 23
Top = 34
Width = 174
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Bottom = 12
ReadOnly = True
TabOrder = 3
Text = 'DepVar'
end
object VarChkBox: TCheckBox
Left = 12
Height = 19
Top = 98
Width = 198
Caption = 'Show Variances'
TabOrder = 4
object Label3: TLabel[10]
AnchorSideLeft.Control = IndepVars
AnchorSideTop.Control = InBtn
AnchorSideBottom.Control = IndepVars
Left = 227
Height = 15
Top = 105
Width = 166
BorderSpacing.Bottom = 2
Caption = 'Independent Var.s for this block'
ParentColor = False
end
object SDChkBox: TCheckBox
Left = 12
Height = 19
Top = 121
Width = 198
Caption = 'Show Standard Deviations'
TabOrder = 5
object Label5: TLabel[11]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = InProb
AnchorSideTop.Side = asrCenter
Left = 0
Height = 15
Top = 232
Width = 163
BorderSpacing.Right = 8
Caption = 'Minimum Prob. to enter block:'
ParentColor = False
end
object MatSaveChkBox: TCheckBox
Left = 12
Height = 19
Top = 144
Width = 198
Caption = 'Save Correlation Matrix'
TabOrder = 6
object OptionsGroup: TGroupBox[12]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = ButtonBevel
Left = 0
Height = 114
Top = 259
Width = 404
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Top = 8
Caption = 'Options'
ChildSizing.LeftRightSpacing = 12
ChildSizing.TopBottomSpacing = 6
ChildSizing.HorizontalSpacing = 8
ChildSizing.VerticalSpacing = 2
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2
ClientHeight = 94
ClientWidth = 400
TabOrder = 9
object CPChkBox: TCheckBox
Left = 12
Height = 19
Top = 6
Width = 170
Caption = 'Show Cross-Products Matrix'
TabOrder = 0
end
object CovChkBox: TCheckBox
Left = 190
Height = 19
Top = 6
Width = 198
Caption = 'Show Variance-Covariance Matrix'
TabOrder = 1
end
object CorrsChkBox: TCheckBox
Left = 12
Height = 19
Top = 27
Width = 170
Caption = 'Show Intercorrelation Matrix'
TabOrder = 2
end
object MeansChkBox: TCheckBox
Left = 190
Height = 19
Top = 27
Width = 198
Caption = 'Show Means'
TabOrder = 3
end
object VarChkBox: TCheckBox
Left = 12
Height = 19
Top = 48
Width = 170
Caption = 'Show Variances'
TabOrder = 4
end
object SDChkBox: TCheckBox
Left = 190
Height = 19
Top = 48
Width = 198
Caption = 'Show Standard Deviations'
TabOrder = 5
end
object MatSaveChkBox: TCheckBox
Left = 12
Height = 19
Top = 69
Width = 170
Caption = 'Save Correlation Matrix'
TabOrder = 6
end
object PredictChkBox: TCheckBox
Left = 190
Height = 19
Top = 69
Width = 198
Caption = 'Predictions,residuals,C.I.''s to Grid'
TabOrder = 7
end
end
object PredictChkBox: TCheckBox
Left = 12
Height = 19
Top = 167
Width = 198
Caption = 'Predictions,residuals,C.I.''s to Grid'
object IndepVars: TListBox[13]
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label3
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ParamsPanel
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = VarList
AnchorSideBottom.Side = asrBottom
Left = 227
Height = 98
Top = 122
Width = 174
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 4
BorderSpacing.Top = 2
ItemHeight = 0
OnDblClick = IndepVarsDblClick
OnSelectionChange = VarListSelectionChange
TabOrder = 7
end
object DepOutBtn: TBitBtn[14]
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = DepInBtn
AnchorSideTop.Side = asrBottom
Left = 187
Height = 26
Top = 47
Width = 26
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = DepOutBtnClick
Spacing = 0
TabOrder = 2
end
object InBtn: TBitBtn[15]
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = DepOutBtn
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = OutBtn
Left = 187
Height = 26
Top = 105
Width = 26
BorderSpacing.Top = 32
BorderSpacing.Bottom = 4
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = InBtnClick
Spacing = 0
TabOrder = 4
end
object OutBtn: TBitBtn[16]
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = InBtn
AnchorSideTop.Side = asrBottom
Left = 187
Height = 26
Top = 135
Width = 26
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = OutBtnClick
Spacing = 0
TabOrder = 5
end
object InProb: TEdit[17]
AnchorSideLeft.Control = Label5
AnchorSideLeft.Side = asrBottom
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = OptionsGroup
Left = 171
Height = 23
Top = 228
Width = 50
Alignment = taRightJustify
Anchors = [akLeft, akBottom]
BorderSpacing.Top = 8
BorderSpacing.Right = 8
TabOrder = 8
Text = 'InProb'
end
object AllBtn: TBitBtn[18]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = OutBtn
AnchorSideTop.Side = asrBottom
Left = 177
Height = 25
Top = 165
Width = 46
AutoSize = True
BorderSpacing.Top = 4
Caption = 'ALL'
OnClick = AllBtnClick
TabOrder = 6
end
end
object ResetBtn: TButton
AnchorSideRight.Control = ComputeBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 531
Height = 25
Top = 380
Width = 54
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 10
inherited ParamsSplitter: TSplitter
Left = 413
Height = 430
end
object CloseBtn: TButton
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 677
Height = 25
Top = 380
Width = 55
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Close'
ModalResult = 11
TabOrder = 12
end
object ComputeBtn: TButton
AnchorSideRight.Control = CloseBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 593
Height = 25
Top = 380
Width = 76
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 11
end
object IndepVars: TListBox
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label3
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = GroupBox1
AnchorSideBottom.Control = Bevel1
Left = 292
Height = 250
Top = 114
Width = 198
Anchors = [akTop, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 16
ItemHeight = 0
OnSelectionChange = VarListSelectionChange
TabOrder = 7
end
object DepOutBtn: TBitBtn
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = DepInBtn
AnchorSideTop.Side = asrBottom
Left = 247
Height = 28
Top = 57
Width = 28
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = DepOutBtnClick
Spacing = 0
TabOrder = 2
end
object InBtn: TBitBtn
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Control = OutBtn
Left = 247
Height = 28
Top = 193
Width = 28
Anchors = [akLeft, akBottom]
BorderSpacing.Bottom = 4
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = InBtnClick
Spacing = 0
TabOrder = 4
end
object OutBtn: TBitBtn
AnchorSideLeft.Control = AllBtn
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = IndepVars
AnchorSideTop.Side = asrCenter
Left = 247
Height = 28
Top = 225
Width = 28
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = OutBtnClick
Spacing = 0
TabOrder = 5
end
object AllBtn: TBitBtn
AnchorSideTop.Control = OutBtn
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = IndepVars
Left = 238
Height = 25
Top = 257
Width = 46
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Top = 4
Caption = 'ALL'
OnClick = AllBtnClick
TabOrder = 6
end
object InProb: TEdit
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 682
Height = 23
Top = 8
Width = 50
Alignment = taRightJustify
Anchors = [akTop, akRight]
BorderSpacing.Top = 8
BorderSpacing.Right = 8
TabOrder = 8
Text = 'InProb'
end
object Bevel1: TBevel
AnchorSideLeft.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = CloseBtn
Left = 0
Height = 8
Top = 364
Width = 740
Anchors = [akLeft, akRight, akBottom]
BorderSpacing.Bottom = 8
Shape = bsBottomLine
object SaveDialog: TSaveDialog[2]
Left = 45
Top = 357
end
end

View File

@ -5,26 +5,24 @@ unit LSMRUnit;
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls, Globals, MainUnit, MatrixLib, OutPutUnit,
FunctionsLib, DataProcs, DictionaryUnit;
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls, Globals, MainUnit, MatrixLib,
DataProcs, DictionaryUnit, BasicStatsReportFormUnit;
type
{ TLSMregForm }
TLSMregForm = class(TForm)
TLSMregForm = class(TBasicStatsReportForm)
AllBtn: TBitBtn;
Bevel1: TBevel;
IndepVars: TListBox;
ComputeBtn: TButton;
CorrsChkBox: TCheckBox;
CovChkBox: TCheckBox;
CPChkBox: TCheckBox;
DepInBtn: TBitBtn;
DepOutBtn: TBitBtn;
DepVar: TEdit;
GroupBox1: TGroupBox;
OptionsGroup: TGroupBox;
InBtn: TBitBtn;
InProb: TEdit;
Label1: TLabel;
@ -33,103 +31,60 @@ type
Label5: TLabel;
MatSaveChkBox: TCheckBox;
MeansChkBox: TCheckBox;
SaveDialog1: TSaveDialog;
SaveDialog: TSaveDialog;
OutBtn: TBitBtn;
PredictChkBox: TCheckBox;
ResetBtn: TButton;
CloseBtn: TButton;
SDChkBox: TCheckBox;
VarChkBox: TCheckBox;
VarList: TListBox;
procedure AllBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure DepInBtnClick(Sender: TObject);
procedure DepOutBtnClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure IndepVarsDblClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private
{ private declarations }
FAutoSized: boolean;
IndepVarsCols : IntDyneVec;
NoVars : integer;
NoBlocks : integer;
procedure UpdateBtnStates;
IndepVarsCols: IntDyneVec;
NoVars: integer;
NoBlocks: integer;
protected
procedure AdjustConstraints; override;
procedure Compute; override;
procedure UpdateBtnStates; override;
public
{ public declarations }
procedure Reset; override;
end;
var
LSMregForm: TLSMregForm;
implementation
{$R *.lfm}
uses
Math,
Utils, MathUnit;
procedure TLSMregForm.ResetBtnClick(Sender: TObject);
var
i: integer;
{ TLSMregForm }
procedure TLSMregForm.AdjustConstraints;
begin
IndepVars.Items.Clear;
VarList.Items.Clear;
NoBlocks := 1;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
CPChkBox.Checked := false;
CovChkBox.Checked := false;
CorrsChkBox.Checked := true;
MeansChkBox.Checked := true;
VarChkBox.Checked := false;
SDChkBox.Checked := true;
MatSaveChkBox.Checked := false;
PredictChkBox.Checked := false;
NoVars := 0;
DepVar.Text := '';
InProb.Text := FormatFloat('0.00', DEFAULT_ALPHA_LEVEL);
SetLength(IndepVarsCols, NoVariables+1);
UpdateBtnStates;
ParamsPanel.Constraints.MinWidth := Max(
OptionsGroup.Width,
4*CloseBtn.Width + 3*CloseBtn.BorderSpacing.Left
);
ParamsPanel.Constraints.MinHeight := AllBtn.Top + AllBtn.Height +
VarList.BorderSpacing.Bottom + InProb.Height +
OptionsGroup.BorderSpacing.Top + OptionsGroup.Height +
ButtonBevel.Height + CloseBtn.BorderSpacing.Top + CloseBtn.Height;
end;
procedure TLSMregForm.FormActivate(Sender: TObject);
var
w: Integer;
begin
if FAutoSized then
exit;
w := MaxValue([ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
ResetBtn.Constraints.MinWidth := w;
ComputeBtn.Constraints.MinWidth := w;
CloseBtn.Constraints.MinWidth := w;
VarList.Constraints.MinWidth := IndepVars.Width;
IndepVars.Constraints.MinHeight := Max(200, GroupBox1.Top + GroupBox1.Height - IndepVars.Top);
Constraints.MinHeight := Height;
Constraints.MinWidth := Width;
FAutoSized := true;
end;
procedure TLSMregForm.FormCreate(Sender: TObject);
begin
Assert(OS3MainFrm <> nil);
if DictionaryFrm = nil then Application.CreateForm(TDictionaryFrm, DictionaryFrm);
end;
procedure TLSMregForm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TLSMregForm.AllBtnClick(Sender: TObject);
var
@ -141,34 +96,35 @@ begin
UpdateBtnStates;
end;
procedure TLSMregForm.ComputeBtnClick(Sender: TObject);
procedure TLSMregForm.Compute;
var
i, j, NCases: integer;
NoIndepVars, DepVarCol, NEntered: integer;
R2, df1, df2: double;
StdErrEst, F, FProbF, OldR2 : double;
pdf1, probin, prout : double;
errorcode : boolean;
BetaWeights : DblDyneVec;
BWeights : DblDyneVec;
BStdErrs : DblDyneVec;
Bttests : DblDyneVec;
tProbs : DblDyneVec;
cellstring: string;
corrs : DblDyneMat;
Means : DblDyneVec;
Variances : DblDyneVec;
StdDevs : DblDyneVec;
title : string;
IndRowLabels : StrDyneVec;
IndColLabels : StrDyneVec;
IndepInverse : DblDyneMat;
ColEntered : IntDyneVec;
filename : string;
constant : double;
errcode: boolean = false;
anerror: Integer = 0;
lReport: TStrings;
i, j, NCases: integer;
NoIndepVars, DepVarCol, NEntered: integer;
R2, df1, df2: double;
StdErrEst, F, FProbF, OldR2: double;
pdf1, probin, prout: double;
errorcode: boolean;
BetaWeights: DblDyneVec = nil;
BWeights: DblDyneVec = nil;
BStdErrs: DblDyneVec = nil;
Bttests: DblDyneVec = nil;
tProbs: DblDyneVec = nil;
cellstring: string;
corrs: DblDyneMat = nil;
Means: DblDyneVec = nil;
Variances: DblDyneVec = nil;
StdDevs: DblDyneVec = nil;
title: string;
IndRowLabels: StrDyneVec = nil;
IndColLabels: StrDyneVec = nil;
IndepInverse: DblDyneMat = nil;
ColEntered: IntDyneVec = nil;
filename: string;
constant: double;
errcode: boolean = false;
anerror: Integer = 0;
lReport: TStrings;
begin
NCases := NoCases;
SetLength(corrs,NoVariables+1,NoVariables+1);
@ -186,17 +142,18 @@ begin
SetLength(IndRowLabels,NoVariables+1);
SetLength(BetaWeights,NoVariables+1);
SetLength(ColEntered,NoVariables+2);
probin := StrToFloat(InProb.Text); // probability to include a block
prout := 1.0;
if DepVar.Text = '' then
begin
MessageDlg('No dependent variable selected.', mtError, [mbOK], 0);
ErrorMsg('No dependent variable selected.');
exit;
end;
if IndepVars.Items.Count = 0 then
begin
MessageDlg('No independent variable selected.', mtError, [mbOK], 0);
ErrorMsg('No independent variable selected.');
exit;
end;
@ -244,7 +201,7 @@ begin
title := 'Cross-Products Matrix';
GridXProd(NEntered, ColEntered, Corrs, errcode, NCases);
MatPrint(Corrs, NEntered, NEntered, title, IndRowLabels, IndColLabels, NCases, lReport);
lReport.Add('--------------------------------------------------------------------');
lReport.Add(DIVIDER_SMALL);
end;
if CovChkBox.Checked then
@ -252,7 +209,7 @@ begin
title := 'Variance-Covariance Matrix';
GridCovar(NEntered,ColEntered, Corrs, Means, Variances, StdDevs, errcode, NCases);
MatPrint(Corrs, NEntered, NEntered, title, IndRowLabels, IndColLabels, NCases, lReport);
lReport.Add('--------------------------------------------------------------------');
lReport.Add(DIVIDER_SMALL);
end;
Correlations(NEntered,ColEntered,Corrs,Means,Variances, StdDevs,errcode,NCases);
@ -260,28 +217,28 @@ begin
begin
title := 'Product-Moment Correlations Matrix';
MatPrint(Corrs, NEntered, NEntered, title, IndRowLabels, IndColLabels, NCases, lReport);
lReport.Add('--------------------------------------------------------------------');
lReport.Add(DIVIDER_SMALL);
end;
if MeansChkBox.Checked then
begin
title := 'Means';
DynVectorPrint(Means, NEntered, title, IndColLabels, NCases, lReport);
lReport.Add('--------------------------------------------------------------------');
lReport.Add(DIVIDER_SMALL);
end;
if VarChkBox.Checked = true then
begin
title := 'Variances';
DynVectorPrint(Variances, NEntered, title, IndColLabels, NCases, lReport);
lReport.Add('--------------------------------------------------------------------');
lReport.Add(DIVIDER_SMALL);
end;
if SDChkBox.Checked = true then
begin
title := 'Standard Deviations';
DynVectorPrint(StdDevs, NEntered, title, IndColLabels, NCases, lReport);
lReport.Add('--------------------------------------------------------------------');
lReport.Add(DIVIDER_SMALL);
end;
if errorcode then
@ -305,7 +262,7 @@ begin
lReport.Add('Entry requirements not met');
lReport.Add('');
lReport.Add('====================================================================');
lReport.Add(DIVIDER);
lReport.Add('');
{ add [predicted scores, residual scores, etc. to grid if options elected }
@ -327,32 +284,23 @@ begin
if MatSaveChkBox.Checked then
begin
SaveDialog1.Filter := 'LazStats matrix files (*.mat)|*.mat;*.MAT|All files (*.*)|*.*';
SaveDialog1.FilterIndex := 1;
if SaveDialog1.Execute then
SaveDialog.Filter := 'LazStats matrix files (*.mat)|*.mat;*.MAT|All files (*.*)|*.*';
SaveDialog.FilterIndex := 1;
if SaveDialog.Execute then
begin
filename := SaveDialog1.FileName;
filename := SaveDialog.FileName;
MatSave(Corrs, NoVars, NoVars, Means, StdDevs, NCases, IndRowLabels, IndColLabels, filename);
end;
end;
DisplayReport(lReport);
FReportFrame.DisplayReport(lReport);
finally
lReport.Free;
ColEntered := nil;
BetaWeights := nil;
IndColLabels := nil;
IndRowLabels := nil;
StdDevs := nil;
Variances := nil;
Means := nil;
IndepInverse := nil;
corrs := nil;
IndepVarsCols := nil;
end;
end;
procedure TLSMregForm.DepInBtnClick(Sender: TObject);
var
index: integer;
@ -366,6 +314,7 @@ begin
UpdateBtnStates;
end;
procedure TLSMregForm.DepOutBtnClick(Sender: TObject);
begin
if DepVar.Text <> '' then
@ -376,6 +325,7 @@ begin
UpdateBtnStates;
end;
procedure TLSMregForm.InBtnClick(Sender: TObject);
var
i: integer;
@ -394,6 +344,20 @@ begin
UpdateBtnStates;
end;
procedure TLSMregForm.IndepVarsDblClick(Sender: TObject);
var
index: Integer;
begin
index := IndepVars.ItemIndex;
if index > -1 then begin
VarList.Items.Add(IndepVars.Items[index]);
IndepVars.Items.Delete(index);
UpdateBtnStates;
end;
end;
procedure TLSMregForm.OutBtnClick(Sender: TObject);
var
i: integer;
@ -412,10 +376,43 @@ begin
UpdateBtnStates;
end;
procedure TLSMregForm.Reset;
var
i: integer;
begin
inherited;
IndepVars.Items.Clear;
NoBlocks := 1;
VarList.Items.Clear;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
CPChkBox.Checked := false;
CovChkBox.Checked := false;
CorrsChkBox.Checked := true;
MeansChkBox.Checked := true;
VarChkBox.Checked := false;
SDChkBox.Checked := true;
MatSaveChkBox.Checked := false;
PredictChkBox.Checked := false;
NoVars := 0;
DepVar.Text := '';
InProb.Text := FormatFloat('0.00', DEFAULT_ALPHA_LEVEL);
SetLength(IndepVarsCols, NoVariables+1);
UpdateBtnStates;
end;
procedure TLSMregForm.UpdateBtnStates;
var
lSelected: Boolean;
begin
inherited;
lSelected := AnySelected(VarList);
DepInBtn.Enabled := lSelected;
InBtn.Enabled := lSelected;
@ -425,13 +422,29 @@ begin
AllBtn.Enabled := VarList.Items.Count > 0;
end;
procedure TLSMregForm.VarListDblClick(Sender: TObject);
var
index: Integer;
begin
index := VarList.ItemIndex;
if index > -1 then
begin
if DepVar.Text = '' then
DepVar.Text := VarList.Items[index]
else
IndepVars.Items.Add(VarList.Items[index]);
VarList.Items.Delete(index);
UpdateBtnStates;
end;
end;
procedure TLSMregForm.VarListSelectionChange(Sender: TObject; User: boolean);
begin
UpdateBtnStates;
end;
initialization
{$I lsmrunit.lrs}
end.

View File

@ -616,51 +616,54 @@ object OS3MainFrm: TOS3MainFrm
OnClick = MenuItem74Click
end
end
object MenuItem36: TMenuItem
object mnuAnalysisMultReg: TMenuItem
Caption = 'Multiple Regression'
object LSMRitem: TMenuItem
object mnuAnalysisMultReg_LSMR: TMenuItem
Caption = 'Least Squares Multiple Regression'
OnClick = LSMRitemClick
OnClick = mnuAnalysisMultReg_LSMRClick
end
object MenuItem75: TMenuItem
object mnuAnalysisMultReg_Forward: TMenuItem
Caption = 'Forward Stepwise'
OnClick = MenuItem75Click
OnClick = mnuAnalysisMultReg_ForwardClick
end
object MenuItem76: TMenuItem
object mnuAnalysisMultReg_Backward: TMenuItem
Caption = 'Backward Stepwise'
OnClick = MenuItem76Click
OnClick = mnuAnalysisMultReg_BackwardClick
end
object MenuItem77: TMenuItem
object mnuAnalysisMultReg_Simult: TMenuItem
Caption = 'Simultaneous'
OnClick = MenuItem77Click
OnClick = mnuAnalysisMultReg_SimultClick
end
object MenuItem78: TMenuItem
object mnuAnalysisMultReg_BlockEntry: TMenuItem
Caption = 'Block Entry'
OnClick = MenuItem78Click
OnClick = mnuAnalysisMultReg_BlockEntryClick
end
object MenuItem79: TMenuItem
object mnuAnalysisMultReg_BestComb: TMenuItem
Caption = 'Best Combination'
OnClick = MenuItem79Click
OnClick = mnuAnalysisMultReg_BestCombClick
end
object MenuItem80: TMenuItem
object mnuAnalysisMultReg_BinLogistic: TMenuItem
Caption = 'Binary Logistic'
OnClick = MenuItem80Click
OnClick = mnuAnalysisMultReg_BinLogisticClick
end
object MenuItem81: TMenuItem
object mnuAnalysisMultReg_CoxSurvival: TMenuItem
Caption = 'Cox Proportional Hazzards Survival Regression'
OnClick = MenuItem81Click
OnClick = mnuAnalysisMultReg_CoxSurvivalClick
end
object MenuItem82: TMenuItem
Caption = 'Linear Programming'
OnClick = MenuItem82Click
end
object TwoSLSReg: TMenuItem
object mnuAnalysisMultReg_TwoStage: TMenuItem
Caption = 'Two Stage Least Squares Regression'
OnClick = TwoSLSRegClick
OnClick = mnuAnalysisMultReg_TwoStageClick
end
object WLSReg: TMenuItem
object mnuAnalysisMultReg_Weighted: TMenuItem
Caption = 'Weighted Least Squares Regression'
OnClick = WLSRegClick
OnClick = mnuAnalysisMultReg_WeightedClick
end
object MenuItem2: TMenuItem
Caption = '-'
end
object mnuAnalysisMultReg_LinProg: TMenuItem
Caption = 'Linear Programming'
OnClick = mnuAnalysisMultReg_LinProgClick
end
end
object MenuItem37: TMenuItem

View File

@ -61,6 +61,7 @@ type
MenuItem115: TMenuItem;
MenuItem13: TMenuItem;
MenuItem16: TMenuItem;
MenuItem2: TMenuItem;
MenuItem20: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
@ -69,6 +70,39 @@ type
MenuItem7: TMenuItem;
mnuAnalysis: TMenuItem;
mnuAnalysisDescr: TMenuItem;
mnuAnalysisDescr_Breakdown: TMenuItem;
mnuAnalysisDescr_BoxPlot: TMenuItem;
mnuAnalysisDescr_BubblePlot: TMenuItem;
mnuAnalysisDescr_CompareDists: TMenuItem;
mnuAnalysisDescr_CrossTabs: TMenuItem;
mnuAnalysisDescr_DataSmooth: TMenuItem;
mnuAnalysisDescr_DistribStats: TMenuItem;
mnuAnalysisDescr_Freq: TMenuItem;
mnuAnalysisDescr_GrpFreq: TMenuItem;
mnuAnalysisDescr_HomogeneityTest: TMenuItem;
mnuAnalysisDescr_MultXvsY: TMenuItem;
mnuAnalysisDescr_Normality: TMenuItem;
mnuAnalysisDescr_PlotXvsY: TMenuItem;
mnuAnalysisDescr_ResistanceLine: TMenuItem;
mnuAnalysisDescr_StemLeaf: TMenuItem;
mnuAnalysisDescr_ThreeDRotate: TMenuItem;
mnuAnalysisDescr_XvsMultY: TMenuItem;
mnuAnalysisMultReg: TMenuItem;
mnuAnalysisMultReg_Backward: TMenuItem;
mnuAnalysisMultReg_BestComb: TMenuItem;
mnuAnalysisMultReg_BinLogistic: TMenuItem;
mnuAnalysisMultReg_BlockEntry: TMenuItem;
mnuAnalysisMultReg_CoxSurvival: TMenuItem;
mnuAnalysisMultReg_Forward: TMenuItem;
mnuAnalysisMultReg_LinProg: TMenuItem;
mnuAnalysisMultReg_LSMR: TMenuItem;
mnuAnalysisMultReg_Simult: TMenuItem;
mnuAnalysisMultReg_TwoStage: TMenuItem;
mnuAnalysisMultReg_Weighted: TMenuItem;
mnuAnalysisSPC: TMenuItem;
mnuAnalysisSPC_CChart: TMenuItem;
mnuAnalysisSPC_CUSUM: TMenuItem;
@ -180,7 +214,6 @@ type
MedianPolish: TMenuItem;
ItemBankMenuItem: TMenuItem;
lifetable: TMenuItem;
LSMRitem: TMenuItem;
MenuItem42: TMenuItem;
MenuItem43: TMenuItem;
MenuItem45: TMenuItem;
@ -198,8 +231,6 @@ type
PicView: TMenuItem;
mnuShowOptions: TMenuItem;
WghtedKappa: TMenuItem;
WLSReg: TMenuItem;
TwoSLSReg: TMenuItem;
RiditAnalysis: TMenuItem;
MenuItem9: TMenuItem;
OpenDialog: TOpenDialog;
@ -208,14 +239,6 @@ type
MenuItem72: TMenuItem;
MenuItem73: TMenuItem;
MenuItem74: TMenuItem;
MenuItem75: TMenuItem;
MenuItem76: TMenuItem;
MenuItem77: TMenuItem;
MenuItem78: TMenuItem;
MenuItem79: TMenuItem;
MenuItem80: TMenuItem;
MenuItem81: TMenuItem;
MenuItem82: TMenuItem;
MenuItem83: TMenuItem;
MenuItem84: TMenuItem;
MenuItem85: TMenuItem;
@ -246,31 +269,11 @@ type
OneSampTests: TMenuItem;
MenuItem34: TMenuItem;
MenuItem35: TMenuItem;
MenuItem36: TMenuItem;
MenuItem37: TMenuItem;
MenuItem38: TMenuItem;
MenuItem39: TMenuItem;
MenuItem40: TMenuItem;
mnuAnalysisDescr: TMenuItem;
mnuAnalysisDescr_Breakdown: TMenuItem;
mnuAnalysisDescr_BoxPlot: TMenuItem;
mnuAnalysisDescr_BubblePlot: TMenuItem;
mnuAnalysisDescr_CompareDists: TMenuItem;
mnuAnalysisDescr_CrossTabs: TMenuItem;
mnuAnalysisDescr_DataSmooth: TMenuItem;
mnuAnalysisDescr_DistribStats: TMenuItem;
mnuAnalysisDescr_Freq: TMenuItem;
mnuAnalysisDescr_GrpFreq: TMenuItem;
mnuAnalysisDescr_HomogeneityTest: TMenuItem;
mnuAnalysisDescr_MultXvsY: TMenuItem;
mnuAnalysisDescr_Normality: TMenuItem;
mnuAnalysisDescr_PlotXvsY: TMenuItem;
mnuAnalysisDescr_ResistanceLine: TMenuItem;
mnuAnalysisDescr_StemLeaf: TMenuItem;
mnuAnalysisDescr_ThreeDRotate: TMenuItem;
mnuAnalysisDescr_XvsMultY: TMenuItem;
PropDiff: TMenuItem;
CorrDiff: TMenuItem;
ttests: TMenuItem;
@ -294,6 +297,7 @@ type
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
// Menu "Analysis" / "Descriptive"
procedure mnuAnalysisDescr_BoxPlotClick(Sender: TObject);
procedure mnuAnalysisDescr_BreakdownClick(Sender: TObject);
@ -313,6 +317,19 @@ type
procedure mnuAnalysisDescr_ThreeDRotateClick(Sender: TObject);
procedure mnuAnalysisDescr_XvsMultYClick(Sender: TObject);
// Menu "Multiple Regression"
procedure mnuAnalysisMultReg_BackwardClick(Sender: TObject);
procedure mnuAnalysisMultReg_BestCombClick(Sender: TObject);
procedure mnuAnalysisMultReg_BinLogisticClick(Sender: TObject);
procedure mnuAnalysisMultReg_BlockEntryClick(Sender: TObject);
procedure mnuAnalysisMultReg_CoxSurvivalClick(Sender: TObject);
procedure mnuAnalysisMultReg_ForwardClick(Sender: TObject);
procedure mnuAnalysisMultReg_LinProgClick(Sender: TObject);
procedure mnuAnalysisMultReg_LSMRClick(Sender: TObject);
procedure mnuAnalysisMultReg_SimultClick(Sender: TObject);
procedure mnuAnalysisMultReg_TwoStageClick(Sender: TObject);
procedure mnuAnalysisMultReg_WeightedClick(Sender: TObject);
// Menu 'Analysis" / "Statistical Process Control"
procedure mnuAnalysisSPC_CChartClick(Sender: TObject);
procedure mnuAnalysisSPC_CUSUMClick(Sender: TObject);
@ -416,7 +433,6 @@ type
procedure KSTestClick(Sender: TObject);
procedure LatinSquaresClick(Sender: TObject);
procedure lifetableClick(Sender: TObject);
procedure LSMRitemClick(Sender: TObject);
procedure MatManMnuClick(Sender: TObject);
procedure MedianPolishClick(Sender: TObject);
procedure MenuItem100Click(Sender: TObject);
@ -446,14 +462,6 @@ type
procedure MenuItem72Click(Sender: TObject);
procedure MenuItem73Click(Sender: TObject);
procedure MenuItem74Click(Sender: TObject);
procedure MenuItem75Click(Sender: TObject);
procedure MenuItem76Click(Sender: TObject);
procedure MenuItem77Click(Sender: TObject);
procedure MenuItem78Click(Sender: TObject);
procedure MenuItem79Click(Sender: TObject);
procedure MenuItem80Click(Sender: TObject);
procedure MenuItem81Click(Sender: TObject);
procedure MenuItem82Click(Sender: TObject);
procedure MenuItem83Click(Sender: TObject);
procedure MenuItem84Click(Sender: TObject);
procedure MenuItem85Click(Sender: TObject);
@ -482,10 +490,8 @@ type
procedure SimpChiSqrClick(Sender: TObject);
procedure SRHItemClick(Sender: TObject);
procedure TTestsClick(Sender: TObject);
procedure TwoSLSRegClick(Sender: TObject);
procedure WghtedKappaClick(Sender: TObject);
procedure WithinAnovaClick(Sender: TObject);
procedure WLSRegClick(Sender: TObject);
private
{ private declarations }
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
@ -695,69 +701,6 @@ begin
CannonFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Forward Stepwise"
procedure TOS3MainFrm.MenuItem75Click(Sender: TObject);
begin
if StepFwdFrm = nil then
Application.CreateForm(TStepFwdFrm, StepFwdFrm);
StepFwdFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Backward Stepwise"
procedure TOS3MainFrm.MenuItem76Click(Sender: TObject);
begin
if BackRegFrm = nil then
Application.CreateForm(TBackRegFrm, BackRegFrm);
BackRegFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Simultaneous"
procedure TOS3MainFrm.MenuItem77Click(Sender: TObject);
begin
if SimultFrm = nil then
Application.CreateForm(TSimultFrm, SimultFrm);
SimultFrm.ShowModal;
end;
procedure TOS3MainFrm.MenuItem78Click(Sender: TObject);
begin
if BlkMregFrm = nil then
Application.CreateForm(TBlkMregFrm, BlkMregFrm);
BlkMregFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Best Combination"
procedure TOS3MainFrm.MenuItem79Click(Sender: TObject);
begin
if BestRegFrm = nil then
Application.CreateForm(TBestRegFrm, BestRegFrm);
BestRegFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Binary Logistic"
procedure TOS3MainFrm.MenuItem80Click(Sender: TObject);
begin
if LogRegFrm = nil then
Application.CreateForm(TLogRegFrm, LogRegFrm);
LogRegFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Cox Proportional Hazzards Survival Regression"
procedure TOS3MainFrm.MenuItem81Click(Sender: TObject);
begin
if CoxRegFrm = nil then
Application.CreateForm(TCoxRegFrm, CoxRegFrm);
CoxRegFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Linear Programming"
procedure TOS3MainFrm.MenuItem82Click(Sender: TObject);
begin
if LinProFrm = nil then
Application.CreateForm(TLinProFrm, LinProFrm);
LinProFrm.ShowModal;
end;
// Menu "Analysis" > "Multivariate" > "MANOVA / Discriminant Function"
procedure TOS3MainFrm.MenuItem83Click(Sender: TObject);
begin
@ -975,14 +918,6 @@ begin
TTestFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Two Stage Least Squares Regression"
procedure TOS3MainFrm.TwoSLSRegClick(Sender: TObject);
begin
if TwoSLSFrm = nil then
Application.CreateForm(TTwoSLSFrm, TwoSLSFrm);
TwoSLSFrm.ShowModal;
end;
// Menu "Analysis" > "Nonparametric" > "Kappa and Weighted Kappa"
procedure TOS3MainFrm.WghtedKappaClick(Sender: TObject);
begin
@ -999,13 +934,6 @@ begin
WithinAnovaFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Weighted Least Squares Regression"
procedure TOS3MainFrm.WLSRegClick(Sender: TObject);
begin
if WLSFrm = nil then
Application.CreateForm(TWLSFrm, WLSFrm);
WLSFrm.ShowModal;
end;
{
@ -1788,14 +1716,6 @@ begin
LifeTableForm.ShowModal;
end;
// Menu "Analysis" > "Nonparametric" > "Least Squares Multiple Regression"
procedure TOS3MainFrm.LSMRitemClick(Sender: TObject);
begin
if LSMRegForm = nil then
Application.CreateForm(TLSMregForm, LSMregForm);
LSMregForm.ShowModal;
end;
procedure TOS3MainFrm.MatManMnuClick(Sender: TObject);
begin
if MatManFrm = nil then
@ -2108,6 +2028,96 @@ begin
end;
{ Multiple regression commands }
// Menu "Analysis" > "Multiple Regression" > "Backward Stepwise"
procedure TOS3MainFrm.mnuAnalysisMultReg_BackwardClick(Sender: TObject);
begin
if BackRegFrm = nil then
Application.CreateForm(TBackRegFrm, BackRegFrm);
BackRegFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Best Combination"
procedure TOS3MainFrm.mnuAnalysisMultReg_BestCombClick(Sender: TObject);
begin
if BestRegFrm = nil then
Application.CreateForm(TBestRegFrm, BestRegFrm);
BestRegFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Binary Logistic"
procedure TOS3MainFrm.mnuAnalysisMultReg_BinLogisticClick(Sender: TObject);
begin
if LogRegFrm = nil then
Application.CreateForm(TLogRegFrm, LogRegFrm);
LogRegFrm.ShowModal;
end;
procedure TOS3MainFrm.mnuAnalysisMultReg_BlockEntryClick(Sender: TObject);
begin
if BlkMregFrm = nil then
Application.CreateForm(TBlkMregFrm, BlkMregFrm);
BlkMregFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Cox Proportional Hazzards Survival Regression"
procedure TOS3MainFrm.mnuAnalysisMultReg_CoxSurvivalClick(Sender: TObject);
begin
if CoxRegFrm = nil then
Application.CreateForm(TCoxRegFrm, CoxRegFrm);
CoxRegFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Forward Stepwise"
procedure TOS3MainFrm.mnuAnalysisMultReg_ForwardClick(Sender: TObject);
begin
if StepFwdFrm = nil then
Application.CreateForm(TStepFwdFrm, StepFwdFrm);
StepFwdFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Linear Programming"
procedure TOS3MainFrm.mnuAnalysisMultReg_LinProgClick(Sender: TObject);
begin
if LinProFrm = nil then
Application.CreateForm(TLinProFrm, LinProFrm);
LinProFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Least Squares Multiple Regression"
procedure TOS3MainFrm.mnuAnalysisMultReg_LSMRClick(Sender: TObject);
begin
if LSMRegForm = nil then
Application.CreateForm(TLSMregForm, LSMregForm);
LSMregForm.Show;
end;
// Menu "Analysis" > "Multiple Regression" > "Simultaneous"
procedure TOS3MainFrm.mnuAnalysisMultReg_SimultClick(Sender: TObject);
begin
if SimultFrm = nil then
Application.CreateForm(TSimultFrm, SimultFrm);
SimultFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Two Stage Least Squares Regression"
procedure TOS3MainFrm.mnuAnalysisMultReg_TwoStageClick(Sender: TObject);
begin
if TwoSLSFrm = nil then
Application.CreateForm(TTwoSLSFrm, TwoSLSFrm);
TwoSLSFrm.ShowModal;
end;
// Menu "Analysis" > "Multiple Regression" > "Weighted Least Squares Regression"
procedure TOS3MainFrm.mnuAnalysisMultReg_WeightedClick(Sender: TObject);
begin
if WLSFrm = nil then
Application.CreateForm(TWLSFrm, WLSFrm);
WLSFrm.ShowModal;
end;
{ SPC commands }
// Menu "Analysis" > "Statistical Process Control" > "Defect (nonconformity) c Chart"

View File

@ -78,6 +78,7 @@ object ReportFrame: TReportFrame
ParentFont = False
ScrollBars = ssAutoBoth
TabOrder = 0
WordWrap = False
end
end
object SaveDialog: TSaveDialog