Nonlinear Autoregressive Network With External (NARXNET) dengan GUI di Matlab

Kemunculan regresi dengan NARX sangat menarik karena regresi dengan metode ini tidak hanya sekedar meramal berdasarkan data time series yang ada melainkan dengan menambahkan pula variabel lain yang dikenal dengan istilah exogenous. Variabel ini berfungsi untuk membantu mengarahkan peramalan agar sesuai dengan kondisi yang ada. Beberapa peneliti menyarankan untuk membatasi jumlah variabel eksogen tersebut karena jika terlalu dominan maka fungsi peramalan jadi berkurang. Berkurang di sini maksudnya bukan domain peramalan (forcasting) lagi melainkan prediksi seperti biasa. Buka GUI untuk proyeksi dengan mengetik ntstool di command window (jika tidak ada maka Matlab harus diupgrade ke yang lebih baru). Perhatikan penggunaan kurung kurawal, di sini digunakan format data cell.

  • >> X={100 90 80 70 60 50 40 30 20 10};
  • >> T={1 2 3 4 5 6 7 8 9 10};

Perhatikan dua data tersebut, yang atas data yang berkurang terus mengikuti waktu, sementara data yang bawah akan dijadikan data eksogen yang berkembang terus. Pilih problem yang paling atas di jendela ntstool yaitu NARX.

Perhatikan gambar di atas dimana di sini hasil keluaran yang ingin dicapai adalah y(t), sekaligus sebagai umpan balik untuk masukan. Sementara variabel exogenous adalah x(t). Jadi x(t) dan y(t) pada contoh kasus ini adalah berturut-turut X dan T. Masukan data input dan target tersebut ke jendela ntstool dan lanjutkan hingga proses pelatihan (train). Jangan lupa simpan hasil network-nya dengan menekan tombol Save Result. Untuk mengetahui kinerja hasil training, tekan tombol Test Network setelah memasukan X dan T. Kinerjanya dapat dilihat dengan menekan tombol Plot Response.

Karena d diisi dengan 2 maka dua data pertama dijadikan sebagai patokan untuk meramalkan data ke-3 sampai ke-10. Akibatnya pada grafik di atas data yang ditampilkan adalah delapan, karena yang dua pertama dijadikan sebagai patokan training.

Untuk memprediksi, seperti pada postingan yang terdahulu tentang narnet yang tanpa variabel eksogen, gunakan fungsi removedelay. Ys pada instruksi di bawah ini memunculkan data ke-11 hasil peramalannya.

  • >> nets = removedelay(net);
  • >> view(net)
  • >> [Xs,Xis,Ais,Ts] = preparets(nets,X,{},T);
  • >> Ys = nets(Xs,Xis,Ais);

Dari perhitungan di komputer saya menunjukan 10.993. Jika ingin mem-plot hasilnya jangan lupa dikonversi kembali data dengan format cell menjadi numerik dengan instruksi cell2mat.

  • Ys =
  • Columns 1 through 7
  • [3.0007] [4.0004] [5.0001] [6.0000] [7.0000] [7.9999] [8.9999]
  • Columns 8 through 9
  • [9.9906] [10.9330]

Bagaimana untuk data ke-12? Gunakan saja teknik yang sama untuk memperoleh data ke-11. Latih data ke-1 hingga ke-11 (data baru), untuk memprediksi data ke-12.

Iklan

9 thoughts on “Nonlinear Autoregressive Network With External (NARXNET) dengan GUI di Matlab

  1. Pak dalam ekperimen ini,
    untuk arsitektur jaringannya. jumlah node input jaringan, node hidden layer, dan jumlah node outputnya berapa Pak?
    Bagaimana kita dapat menentukan jumlah node input jaringan di matlab untuk prediksi time series?
    terima kasih

    • node itu neuron kan?
      Di jendela ke-berapa saya lupa ada isian mengenai jumlah node/neuro, kalo dilewatkan defaultnya neuron 10, jendela 2. node input kalo satu time-series satu dengan keluaran 1 untuk (narnet) dan 2 input (satunya feedback) dan satu output untuk narx (jika exogenousnya satu). Hidden layer 10 neuron.
      nanti saya coba bisakah time-seriesnya serempak (lebih dari satu time-series).

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s