Regresi Kernel


Regresi Kernel adalah salah satu cabang ilmu statistika untuk memperkirakan harapan terkondisi dari sebuah peubah acak. Contoh yang dibahas kali ini adalah mengenai memperkirakan penjualan pada periode berikutnya berdasarkan data penjualan pada periode sebelumnya.
Tujuan utama dari Regresi Kernel adalah untuk menemukan hubungan / relasi non-linier diantara pasangan peubah acak x dan y. Regresi Kernel tidak membutuhkan parameter tambahan dalam perhitungan, dan relasi non-linier antara x dan y dapat diinterpretasikan dengan rumus:
{E}(Y | X) = m(X)
dimana m adalah fungsi yang tidak membutuhkan parameter lain.

Regresi Kernel biasanya digabung dengan teknik Smoothing, yaitu teknik untuk memperkirakan nilai sebenarnya dari data yang biasanya terkena noise atau gangguan karena faktor lain. Karena penerapan teknik Smoothing yang biasanya digabung jadi satu, penamaan algoritma ini biasanya cukup dengan Regresi Kernel, atau bisa juga dengan Regresi Kernel Smoothing.



Diasumsikan ada 4 data barang yang sudah diketahui hasil penjualannya
Masing-masing barang memiliki data penjualan pada 5 periode sebelumnya
Maka tentukan prediksi penjualan untuk 3 periode berikutnya
Diasumsikan data penjualan adalah sebagai berikut:

Nama BarangPeriode1Periode2Periode3Periode4Periode5
Pensil101281120
Penghapus1512131414
Pena97151510
Penggaris1241213

Langkah pertama adalah memasukkan data-data yang digunakan.
Contoh data awal adalah sebagai berikut:

data=[10 12 8 11 20; ...
      15 12 13 14 14; ...
      9 7 15 15 10; ...
      1 2 4 12 13];

Langkah-langkah penggunaan algoritma ini adalah

* Lakukan perhitungan pada masing-masing data (poin 1 – 2)

for i=1:size(data,1)
. . .

1. Lakukan proses perhitungan dengan menggunakan metode Regresi Kernel Smoothing
Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah ini (poin 1a – 1d)

r=rks(x,data(i,:)'); 

Memasuki perhitungan pada fungsi rks

1a. Tentukan jumlah data yang dihitung, yaitu sama dengan banyak data pada parameter x

jumlahData = size(x,1);

1b. Tentukan nilai bandwidth yang digunakan dalam perhitungan
Pencarian nilai bandwidth menggunakan teknik perhitungan yang direkomendasikan oleh Bowman dan Azzalini
Jika nilai bandwidth mendekati 0, maka tidak perlu melakukan regresi kernel karena hasil regresi kernel akan sama dengan data awal

hx = median(abs(x-median(x)))/0.6745*(4/3/jumlahData)^0.2;
hy = median(abs(y-median(y)))/0.6745*(4/3/jumlahData)^0.2;
h = sqrt(hy*hx);
if h < sqrt(eps)*jumlahData
    error('Tidak perlu melakukan regresi kernel karena hasil regresi kernel akan sama dengan data awal.')
end

* Berikut adalah perhitungan inti dari regresi kernel
Teknik yang digunakan adalah regresi kernel Nadaraya-Watson yang mengunakan Gaussian kernel
f(x) = sum(kerf((x-X)/h).*Y)/sum(kerf((x-X)/h))
dimana kerf adalah fungsi untuk menghitung Gaussian kernel

1c. Berikut adalah fungsi untuk menghitung Gaussian kernel

kerf = @(z)exp(-z.*z/2)/sqrt(2*pi);

1d. Lakukan perulangan sebanyak jumlah data yang ada (poin 1d1 – 1d2)

for k = 1:jumlahData
. . .

1d1. Hitung nilai Gaussian kernel menggunakan fungsi yang sudah dijelaskan sebelumnya

z = kerf((r.x(k)-x)/r.h);

1d2. Hitung nilai regresi kernel Nadaraya-Watson menggunakan rumus yang sudah dijelaskan sebelumnya

r.f(k) = sum(z.*y)/sum(z);

2. Nilai prediksi akhir diambil dari nilai Estimasi Transisi State yang sudah dihitung sebelumnya

rk(i) = round(r.f(end),0);

Hasil akhir adalah:

Algoritma Regresi Kernel Smoothing
Contoh: Memperkirakan penjualan pada periode berikutnya berdasarkan data penjualan pada periode sebelumnya
Diasumsikan ada 4 data barang yang sudah diketahui hasil penjualannya
Masing-masing barang memiliki data penjualan pada 5 periode sebelumnya
Maka tentukan prediksi penjualan untuk 3 periode berikutnya
Diasumsikan data penjualan adalah sebagai berikut: 
Nama Barang, Periode1, Periode2, Periode3, Periode4, Periode5
Pensil     , 10      , 12      , 8       , 11      , 20
Penghapus  , 15      , 12      , 13      , 14      , 14
Pena       , 9       , 7       , 15      , 15      , 10
Penggaris  , 1       , 2       , 4       , 12      , 13


Hasil Perhitungan dengan metode Regresi Kernel Smoothing
Nama Barang, Periode1, Periode2, Periode3, Periode4, Periode5, Prediksi Periode berikutnya
Pensil     , 10      , 12      , 8       , 11      , 20      , 15
Penghapus  , 15      , 12      , 13      , 14      , 14      , 14
Pena       , 9       , 7       , 15      , 15      , 10      , 12
Penggaris  , 1       , 2       , 4       , 12      , 13      , 9

Contoh modul / source code menggunakan Matlab dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.

Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *