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.
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).
nntools atau nnstart, untuk masuk ke GUI NARX !!!!
yang jelas dong,
sudah dijelaskan ” ..Buka GUI untuk proyeksi dengan mengetik ntstool di command window (jika tidak ada maka Matlab harus diupgrade ke yang lebih baru).”
Pak, apakah feedback pada jaringan NARNN membentuk variabel baru selain variabel input sebelumnya ATAU feedback tersebut menggantikan input sebelumnya? thanks
menggantikan sebelumnya: output prediksi menjadi input prediksi berikutnya
Saya baru pertama kali menggunakan Matlab dan sedikit kebingungan.
Saya mencoba peramalan menggunakan RNN dengan NARXNET sebagai acuan coding saya.
Semua berjalan dengan baik, namun ketika mengimplementasi removedelay pada RNN seperti yang dicontohkan pada artikel, saya selalu mendapatkan error.
Apakah removedelay memiliki kondisi tertentu sehingga saya tidak bisa meramalkan?
remove delay untuk prediksi beberapa waktu ke depan, bukan training lagi.
maaf pak, saya termasuk baru menggunakan matlab. disini saya akan memprediksi suatu harga dengan data time series mingguan dengan metode anfis, untuk diaplikasikan pada matlab saya bingung dimulai dari mana.
untuk nilai input semisal harga minggu 1,2,3 untuk memprediksi harga minggu ke 4. untuk input harga minggu 2,3,4 memprediksi harga minggu ke 5. lalu diolah dengan anfis pak. mohon pencerahannya pak. terimakasih banyak sebelumnya pak.
Ya seperti itu. Tinggal ditraining, atau pakai matlab terbaru dgn fungsi NARNET atau NARXNET.
Mohon maaf pak saya izin bertanya, apakah data timeseries untuk mengolah prediksi menggunakan ANFIS dapat diproses menggunakan NARXNET, sedangkan data hanya ada 1 coloumn? mohon pencerahannya pak, terimakasih sebelumnya.
NARXNET dengan JST. Kalau mau pakai ANFIS ya dengan menyusun data latih seperti window bergeser (sliding window)