⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 Delphi Pascal 数据挖掘领域算法包 回归分析
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  RegComp, Buttons, StdCtrls, ExtCtrls;

const
  COUNT = 100;

type
  TForm1 = class(TForm)
    RegComp1: TRegComp;
    SpeedButton1: TSpeedButton;
    teZValue: TEdit;
    teTValue: TEdit;
    teCentered: TEdit;
    teChiSqr: TEdit;
    sbZValue: TSpeedButton;
    sbTValue: TSpeedButton;
    sbCentered: TSpeedButton;
    Panel1: TPanel;
    teDataValue: TEdit;
    teMeanValue: TEdit;
    teStdDevValue: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    sbChiSqr: TSpeedButton;
    tePopStdDevValue: TEdit;
    Label4: TLabel;
    sbRTestStat: TSpeedButton;
    teRStat: TEdit;
    Label5: TLabel;
    sbTTableValue: TSpeedButton;
    teTTableValue: TEdit;
    teN: TEdit;
    Label6: TLabel;
    sbSmSampCI: TSpeedButton;
    teSmCISampLow: TEdit;
    teSmCISampHi: TEdit;
    tePipedLo: TEdit;
    tePipedHi: TEdit;
    sbPiped: TSpeedButton;
    sbPZRange: TSpeedButton;
    tePZRange: TEdit;
    Label7: TLabel;
    sbLrgSmpCI: TSpeedButton;
    teLrgCISampHi: TEdit;
    teLrgCISampLo: TEdit;
    teMean: TEdit;
    sbMean: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure sbZValueClick(Sender: TObject);
    procedure DataChange(Sender: TObject);
    procedure sbTValueClick(Sender: TObject);
    procedure sbChiSqrClick(Sender: TObject);
    procedure sbCenteredClick(Sender: TObject);
    procedure sbRTestStatClick(Sender: TObject);
    procedure sbTTableValueClick(Sender: TObject);
    procedure sbSmSampCIClick(Sender: TObject);
    procedure sbPipedClick(Sender: TObject);
    procedure sbPZRangeClick(Sender: TObject);
    procedure sbLrgSmpCIClick(Sender: TObject);
    procedure sbMeanClick(Sender: TObject);
  private
    { Private declarations }
  public
    AnInt: TIntervalRec;
    aMeanValue: extended;
    aDataValue: extended;
    aStdDevValue: extended;
    aPopStdDevValue: extended;
    n,i: integer;
    TmpArray,TmpArray2: array [0..COUNT] of double;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
begin
  randomize;

  for i:= 0 to COUNT do begin
    TmpArray[i]  := i;
    TmpArray2[i] := i + random(4);
  end;

  DataChange(Sender);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.sbZValueClick(Sender: TObject);
begin
  teZValue.Text:= FloatToStr( Regcomp1.GetZValue( aDataValue, aMeanValue, aStdDevValue ) ) ;
end;

procedure TForm1.DataChange(Sender: TObject);
begin
  if (teMeanValue.Text <> '') and
     (teDataValue.Text <> '') and
     (teStdDevValue.Text <> '') and
     (tePopStdDevValue.Text <> '') and
     (teN.Text <> '') then begin
        aMeanValue        := StrToFloat(teMeanValue.Text);
        aDataValue        := StrToFloat(teDataValue.Text);
        aStdDevValue      := StrToFloat(teStdDevValue.Text);
        aPopStdDevValue   := StrToFloat(tePopStdDevValue.Text);
        n                 := StrToInt(teN.Text);
     end;
end;

procedure TForm1.sbTValueClick(Sender: TObject);
begin
  teTValue.Text:= FloatToStr( RegComp1.CalcT( aMeanValue,aDataValue,aStdDevValue,n ) );
end;

procedure TForm1.sbChiSqrClick(Sender: TObject);
begin
  teChiSqr.Text:= FloatToStr( RegComp1.CalcChiSquare( TmpArray,TmpArray2,n ) );
end;

procedure TForm1.sbCenteredClick(Sender: TObject);
begin
  teCentered.Text:= FloatToStr( RegComp1.GetCenterValue( aDataValue,aMeanValue ) );
end;

procedure TForm1.sbRTestStatClick(Sender: TObject);
var
  s1,s2: string;
begin
  InputQuery('Enter sample correlation value (-1.0 to +1.0)','Enter: ',S1);
  InputQuery('Enter population correlation value (-1.0 to +1.0)','Enter: ',s2);

  teRStat.Text := FloatToStr( RegComp1.BVCorrelationSampleTestStat( StrToFloat(s1),StrToFloat(s2),n ) ) ;
end;

procedure TForm1.sbTTableValueClick(Sender: TObject);
begin
  tetTableValue.Text:= FloatToStr( RegComp1.TTableValue2( n ) );
end;

procedure TForm1.sbSmSampCIClick(Sender: TObject);
begin
  AnInt:= RegComp1.SmallSampleCIforMean( aMeanValue,aStdDevValue,n );

  teSmCISampLow.Text   := FloatToStr(AnInt.Lower);
  teSmCISampHi.Text    := FloatToStr(AnInt.Upper);
end;

procedure TForm1.sbPipedClick(Sender: TObject);
var
  s: string;
begin
  InputQuery('Enter distance (in std deviations) ','Enter: ',s);

  AnInt:= RegComp1.MakePiped( aMeanValue,aStdDevValue,StrToFloat(s) );

  tePipedLo.Text := FloatToStr(AnInt.Lower);
  tePipedHi.Text := FloatToStr(AnInt.Upper);
end;

procedure TForm1.sbPZRangeClick(Sender: TObject);
begin
  tePZRange.Text:= FloatToStr( RegComp1.ProbabilityZBetweenPlusMinus( aStdDevValue ) );
end;

procedure TForm1.sbLrgSmpCIClick(Sender: TObject);
begin
  AnInt:= RegComp1.LargeSampleCIforMean( aMeanValue,aStdDevValue,'0.95' );

  teLrgCISampLo.Text := FloatToStr(AnInt.Lower);
  teLrgCISampHi.Text := FloatToStr(AnInt.Upper);
end;

procedure TForm1.sbMeanClick(Sender: TObject);
begin
  teMean.Text:= FloatToStr(  RegComp1.GetMean ( TmpArray,COUNT ) );
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -