// Выведем само уравнение регрессии: Y=A1 + A2 * X1 + A3 * X2 + A4 * X3 + A5 * X4:
st := 'Y = ' + ToStr(a.arr[1,1]) + ' + ' + ToStr(a.arr[2, 1]) + ' * X1 + ' +
ToStr(a.arr[3, 1]) + ' * X2 + ' + ToStr(a.arr[4, 1]) + ' * X3';
// + ' +
//ToStr(a.arr[5, 1]) + ' * X4.';
p := Pos(' + -', st); // находим, где в строчке подряд идет +-, лишний + убираем
whilep> 0 dobegin // (если коэффициент отрицателен, + перед ним не ставится)
s1 := Copy(st, 1, p);
Delete(st, 1, p + 3);
st := s1 + '- ' + st;
p := Pos(' + -', st);
end;
Analys1.Label12.Caption := st;
//Analys1.Button1.Enabled := false;
a1 := a.Submatrix(0, 0);
b1 := X.Submatrix(0, 0);
b1.Umn(a1);
c1 := b1.Submatrix(0, 0);
b1.Transpon;
b1.Umn(c1);
Qr := b1.arr[1,1];
a1 := a.Submatrix(0, 0);
b1 := X.Submatrix(0, 0);
c1 := Y.Submatrix(0, 0);
b1.Umn(a1);
c1.Minus(b1);
a1 := c1.Submatrix(0, 0);
c1.Transpon;
c1.Umn(a1);
Qost := c1.arr[1,1];
Fr:=(Qr/m)/(Qost/(n-m-1)); // критерийФишера
Analys1.Label5.Caption:=ToStr(Fr);
tmp:= strtofloat(Analys1.Edit1.Text);
if fr > tmp
then
Analys1.Label14.Caption:='Коэффициенты значимы' else
Analys1.Label14.Caption:='Коэффициенты незначимы';
end;
procedure ClearTable(sg : TStringGrid);
var
i, j : integer;
begin
for i := 1 to sg.RowCount do
for j := 1 to sg.ColCount do
sg.Cells[j-1, i-1] := '';
end;
procedure TAnalys.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TAnalys.FormShow(Sender: TObject); // Обновляем подключение к БД при показе формы
Var
kol, i, kol_date : integer;
sum : real;
kod : integer;
str : string;
begin
fmdatmod.q_analys.Active := false;
fmdatmod.q_analys.Active:=true;
fmdatmod.q_analys.Last;
kol := fmdatmod.q_analys.RecordCount;
for I := 1 to kol do
begin
StringGrid1.Cells[0, i]:='0';
StringGrid1.Cells[1, i]:='0';
StringGrid1.Cells[2, i]:='0';
StringGrid1.Cells[3, i]:='0';
StringGrid1.Cells[4, i]:='0';
end;
StringGrid1.Cells[0, 0]:='Гос. номер';
StringGrid1.Cells[1, 0]:='Название авто';
StringGrid1.Cells[2, 0]:='Пробег';
StringGrid1.Cells[3, 0]:='Возраст';
StringGrid1.Cells[4, 0]:='Кол-во поломок';
StringGrid1.Cells[5, 0]:='Общая стоимость ремонтов';