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 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 |
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.