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.
Regresi Kernel Multivariate merupakan pengembangan dari Regresi Kernel Smoothing, dimana keunggulannya adalah jumlah peubah acak yang digunakan bisa lebih dari 1, dan biasanya digunakan untuk melakukan smoothing terhadap gambar atau pola 2D atau 3D yang memiliki noise karena beberapa faktor lain. Tetapi dalam kasus ini tetap hanya akan digunakan 1 peubah acak saja, agar dapat dibandingkan dengan Regresi Kernel yang normal.
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 Multivariate
Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah ini (poin 1a – 1e)
r=rkm(x,data(i,:)');
Memasuki perhitungan pada fungsi rkm
1a. Tentukan jumlah data yang dihitung, yaitu sama dengan banyak data pada parameter x
jumlahData = size(x,1);
1b. Tentukan jumlah dimensi yang digunakan dalam perhitungan
Diasumsikan dalam kasus ini, jumlah dimensi hanya ada 1, yaitu data pada periode sebelumnya
d = size(x,2);
1c. Tentukan nilai bandwidth yang digunakan dalam perhitungan
Pencarian nilai bandwidth menggunakan teknik perhitungan yang direkomendasikan oleh Bowman dan Azzalini
Perlu diingat bahwa nilai bandwidth harus dihitung dengan memperhitungkan semua dimensi yang ada
hy = median(abs(y-median(y)))/0.6745*(4/(d+2)/jumlahData)^(1/(d+4)); hx = median(abs(x-repmat(median(x),jumlahData,1)))/0.6745*(4/(d+2)/jumlahData)^(1/(d+4)); h = sqrt(hy*hx);
* Berikut adalah perhitungan inti dari regresi kernel Multivariate
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(-sum(z.*z,2)/2);
1d. Lakukan perhitungan skala yaitu pembagian data x dengan nilai bandwidth
H = diag(1./h); x = x*H; x1 = r.x*H;
1e. Lakukan perulangan sebanyak jumlah data yang ada (poin 1e1 – 1e4)
for k=1:jumlahData . . .
1e1. Hitung nilai absolut selisih poin regresi pada data yang sedang dihitung
xx = abs(x-x1(k+zeros(jumlahData,1),:));
1e2. Pilih semua data selisih yang jumlahnya kurang dari nilai bandwidth
idx = all(xx<r.h,2); <="" pre="">
1e3. Hitung nilai Gaussian kernel menggunakan fungsi yang sudah dijelaskan sebelumnya
z = kerf(xx(idx,:));
1e4. Hitung nilai regresi kernel Nadaraya-Watson menggunakan rumus yang sudah dijelaskan sebelumnya
r.f(k) = sum(z.*y(idx))/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 Multivariate 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 Multivariate Nama Barang, Periode1, Periode2, Periode3, Periode4, Periode5, Prediksi Periode berikutnya Pensil , 10 , 12 , 8 , 11 , 20 , 16 Penghapus , 15 , 12 , 13 , 14 , 14 , 14 Pena , 9 , 7 , 15 , 15 , 10 , 12 Penggaris , 1 , 2 , 4 , 12 , 13 , 10
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.
</r.h,2);>