Regresi Kernel Lokal Linier


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 Lokal Linier merupakan pengembangan dari Regresi Kernel Smoothing, dimana perbedaannya adalah untuk meningkatkan performa regresi pada bagian awal dan akhir data, dimana biasanya nilai tersebut akan diambil. Teknik perhitungan yang digunakan berbeda dengan Regresi Kernel yang normal, tetapi memiliki hasil yang perhitungan yang mirip, hanya berbeda pada nilai awal dan akhir data saja.



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 Lokal Linier
Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah ini (poin 1a – 1d)

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

Memasuki perhitungan pada fungsi rkll

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

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

* Berikut adalah perhitungan inti dari regresi kernel
Lokal linier adalah teknik tambahan dalam melakukan prediksi,
dan digunakan untuk meningkatkan prediksi pada bagian awal dan akhir data, dimana nilai perhitungan biasanya diambil dari nilai ujung tersebut
Lokal linier dihitung dengan rumus:
f(x) = 1/n sum((s2-s1*(x-X)).*kerf((x-X)/h).*Y)/(s2*s0-s1^2)
dimana kerf adalah fungsi untuk menghitung Gaussian kernel
dan s1 dihitung dengan rumus: si = sum((x-X)^i*kerf((x-X)/h))/n.

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 – 1d4)

for k = 1:jumlahData
. . .

1d1. Hitung nilai selisih antara data terpilih dan semua data yang ada

d = r.x(k)-x;

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

z = kerf(d/h);

1d3. Hitung nilai s1 dan s2 menggunakan fungsi yang sudah dijelaskan sebelumnya
s1 dihitung dengan rumus: s1 = sum((x-X)^i*kerf((x-X)/h))/n.
sedangkan s2 adalah jumlah dari perkalian antara selisih data dengan s1

s1 = d.*z;
s2 = sum(d.*s1);
s1 = sum(s1);

1d4. Hitung nilai akhir lokal linier menggunakan rumus yang sudah dijelaskan sebelumnya
f(x) = 1/n sum((s2-s1*(x-X)).*kerf((x-X)/h).*Y)/(s2*s0-s1^2)

r.f(k) = sum((s2-s1*d).*z.*y)/(s2*sum(z)-s1*s1);

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 Lokal Linier
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 Lokal Linier
Nama Barang, Periode1, Periode2, Periode3, Periode4, Periode5, Prediksi Periode berikutnya
Pensil     , 10      , 12      , 8       , 11      , 20      , 19
Penghapus  , 15      , 12      , 13      , 14      , 14      , 14
Pena       , 9       , 7       , 15      , 15      , 10      , 12
Penggaris  , 1       , 2       , 4       , 12      , 13      , 14

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 *