Anda di halaman 1dari 7

ANALISIS REGRESI SEDERHANA

Pertama membuat form seperti ini:

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;

dengan hasil seperti ini:

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]);

xbar:= totx/n; toty:= toty+strtofloat(stringgrid1.Cells[2,i]); ybar:= toty/n; end;

Kemudian mencari nilai dari ( ( ) ditunjukkan oleh sigx


for i:=1 to n do begin

) (

) yang ditunjukkan oleh sigxy dan nilai

sigxy:=sigxy+((strtofloat(stringgrid1.Cells[1,i])xbar)*(strtofloat(stringgrid1.Cells[2,i])-ybar)); sigx:=sigx+ sqr(strtofloat(stringgrid1.Cells[1,i])-xbar); end;

Koefisien regresi b1=


b1:=sigxy/sigx;

( (

)( )

dan b0=

dicari dengan rumus dibawah ini

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;

Untuk mencari SSR(Sum of Squares of Regression) sesuai rumus sintak berikut:


ssr:=0; for i:= 1 to n do begin ssr:=ssr+sqr(ytopi[i]-ybar); end; label10.Caption:=floattostrf(ssr,ffnumber,4,3);

) dengan

Untuk mencari SSE(Sum of Squares of Error) sesuai rumus sintak berikut:


sse:=0; for i:= 1 to n do begin

) dengan

sse:=sse+sqr(strtofloat(stringgrid1.Cells[2,i])-ytopi[i]); end; label11.Caption:=floattostrf(sse,ffnumber,4,3);

Untuk mencari SST(Sum of Squares Total) sesuai rumus berikut:


for i:= 1 to n do begin

) dengan sintak

sst:=sst+sqr(strtofloat(stringgrid1.Cells[2,i])-ybar); end; label25.Caption:=floattostrf(sst,ffnumber,4,3);

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

begin label18.Caption:='*'; end else begin f:= msr/mse; label18.Caption:=floattostrf(f,ffnumber,4,3); end;

Kemudian kita mencari standar deviasi error (s =


s:=sqrt(mse);

label20.Caption:=floattostrf(s,ffnumber,4,3);

Mencari Coefficient of determination (R2 = 1 sq:=1-(sse/sst);

label22.Caption:=floattostrf(sq*100,ffnumber,4,1)+'%';

Untuk mencari Adjusted R2 (R2adj = 1sqa:=1-(mse/mst);

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:

Anda mungkin juga menyukai