MATLAB Code: Bootstrap untuk resampling error regresi OLS


Misal akan dilakukan analisis bootstrap pada suatu persamaan regresi, dalam hal ini resampling dilakukan pada data error bukan pada data y itu sendiri.

Algoritma:

  1. Input/load data.
  2. Dapatkan penduga kuadrat terkecil dari full samples, β̂.
  3. Hitung ei
    (dimana ei
    = Yi
    i)
  4. Ulangi langkah berikut ini sebanyak B kali:
    1. Ambil n sampel acak dari ei dengan pengembalian (e1(b), e2(b), …, en(n)) sehingga diperoleh e bootstrap.
    2. Hitung nilai Y bootstrap dengan menambahkan resampled-residual ke persamaan regresi awal.

      Y(b) = + e(b)

    3. Dapatkan penduga kuadrat terkecil dari sampel bootstrap dengan meregresikan X terhadap Y bootstrap (Y(b)):

      β(bi)
      = (X’X)-1X’Y(b)

  5. Hitung bias : b̂b = β̂ (b) – β̂

MATLAB code:

function r=bootreg(data)

y=data(:,1);

x1=data(:,2);

x2=data(:,3);

n=length(y);

X=[ones(n,1) x1 x2];

[b,bint,e]=regress(y,X);

w=[y x1 x2 e];

B=10;

k=[1:n];

for i=1:B

j=randsample(k,n,true);

wb=w(j,:);

Xb=[ones(n,1) wb(:,2:3)];

eb=wb(:,4);

ybnew=X*b+eb;

[bbnew]=regress(ybnew,X);

bbmnew(:,i)=bbnew;

end

bboot0=mean(bbmnew(1,:))

bboot1=mean(bbmnew(2,:))

bboot2=mean(bbmnew(3,:))

bias0=bboot0-b(1)

bias1=bboot1-b(2)

bias2=bboot2-b(3)

MATLAB code tersebut disimpan dalam M file, misal bootreg.m, sehingga bisa dipanggil dalam program.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: