Kemudian kita menentukan nama kolom yang ada pada stringgrid dengan cara:
procedure TForm1.FormCreate(Sender: TObject); begin stringgrid1.Cells[1,0]:='x'; stringgrid1.Cells[2,0]:='y'; end;
Kemudian untuk menentukan jumlah baris sesuai input yang dimasukkan dengan cara:
procedure TForm1.Edit1Change(Sender: TObject); begin stringgrid1.RowCount:=strtoint(edit1.Text)+1; end;
Lalu, inputkan nilai x dan y yang akan dihitung untuk didapatkan analisis regresinya.
Untuk menuliskan sintak yang diperlukan dalam menentukan analisis regresi, double click pada tombol hitung. Sintak yang diperlukan adalah seperti berikut: Sintak ini digunakan untuk menentuka variabel-variabel yang ada pada program sesuai dengan jenisnya,seperti real atau integer.
procedure TForm1.Button1Click(Sender: TObject); var b1,b0,totx,toty,sigx,xbar,ybar,sigxy,msr,ssr,mse,sse,f,s,sq,sqa,sst, mst,secoef1,secoef,t1,t:real; n,dfr,dfe,dft:integer; ytopi: array [1..100] of real; i:integer;
Untuk mencari persamaan regresi harus dicari terlebih dahulu koefisien regresi. Menentukan koefisien regresi, haruslah diawali dengan mencari mean dari kolom x dan y. rumus mean tersebut adalah . Rumus dtunjukkan dengan sintak totx dan toty. Dan mean ditunjukkan oleh sintak xbar dan ybar.
n:=strtoint(edit1.Text); totx:=0; toty:=0; sigxy:=0; sigx:=0; for i:=1 to n do begin totx:= totx+strtofloat(stringgrid1.Cells[1,i]);
) (
( (
)( )
dan b0=
b0:= ybar-(b1*xbar);
Untuk mengeluarkan hasil persamaan regresi dengan cara dibawah ini, hasil yang ditampilkan b1+b0x
if b1>0 then label1.Caption:=floattostrf(b0,ffnumber,4,3)+' + '+floattostrf(b1,ffnumber,4,3)+'x' else label1.Caption:=floattostrf(b0,ffnumber,4,3)+floattostrf(b1,ffnumber ,4,3)+'x';
Kemudian mencari derajat kebebasan sesuai dengan rumus yang ada dan sintak dari rumus tersebut seperti berikut
dfr:=1; dfe:=n-2; dft:=n-1;
Sintak dibawah ini untuk menampilkan derajat kebebasan yang telah kita hitung
label7.Caption:=inttostr(dfr); label8.Caption:=inttostr(dfe); label16.Caption:=inttostr(dft);
Kemudian kita mencari SS(Sum of Squares) dengan terlebih dahulu mencari dan kemudian memasukkan nilai x pada persamaan regresi. Sehingga kita mendapatkan nilai dari setiap nilai x yang kita inputkan pada stringgrid. Sintaknya seperti berikut:
ytopi[i]:=0; for i:= 1 to n do begin ytopi[i]:=b0+b1*(strtofloat(stringgrid1.Cells[1,i])); end;
) dengan
) dengan
) dengan sintak
Kemudian, untuk mencari MSR,MSE, dan MST ( Mean Spuare Regression, Mean Spuare Error, Mean Spuare Total) ditunjukkan dengan cara berikut:
msr:=ssr/dfr; label13.Caption:=floattostrf(msr,ffnumber,4,3); mse:=sse/dfe; label14.Caption:=floattostrf(mse,ffnumber,4,3); mst:=sst/dft; label26.Caption:=floattostrf(mst,ffnumber,4,3);
Nilai F ditentukan dengan membagikan MSE dan MSR. Sintak dari rumus tersebut adalah
if mse=0 then
label20.Caption:=floattostrf(s,ffnumber,4,3);
label22.Caption:=floattostrf(sq*100,ffnumber,4,1)+'%';
label24.Caption:=floattostrf(sqa*100,ffnumber,4,1)+'%';
Kemudian untuk mencari nilai coefficient, standard coefficient, dan t untuk variabel constan dan x. Ketiga nilai tersebut dapat dicari dengan rumus:
1.
2.
=
( )
4.
(
( )
( )
3.
6.
label32.Caption:=floattostrf(b0,ffnumber,4,3); label33.Caption:=floattostrf(b1,ffnumber,4,3); secoef1:=s*(Sqrt((1/n)+(Sqr(xbar))/sigx)); label35.Caption:=FloatToStrF(secoef1,ffNumber,4,2); secoef:=s/(Sqrt(sigx)); label36.caption:=FloatToStrF(secoef,ffNumber,4,2); if secoef1<>0 then begin t1:=b0/secoef1; label38.caption:=FloatToStrF(t1,ffNumber,4,2); end else label38.caption:='*'; if secoef1<>0 then begin t:=(Sqrt(sigx)*b1)/s; label39.Caption:=FloatToStrF(t,ffNumber,4,2); end else label39.caption:='*'; end;
Setelah melakukan perhitungan seperti diatas,maka hasil tampilan dan outputnya adalah seperti dibawah ini: