Peramalan Beberapa Data ke Depan dengan Multistep NARNET

Nonlinear Autoregressive Network (NARNET) merupakan metode peramalan dengan jaringan syaraf tiruan (JST). Untuk perakitannya Matlab menyediakan GUI melalui fungsi ntstool. Data minimal yang diperbolehkan untuk memprediksi sebanyak 10 buah. Untuk gampangnnya sebagai contoh data 1 sampai 10 seperti contoh-contoh sebelumnya. Lihat postingan tentang NARNET sebelumnya. Tanya-jawab seputar narnet masih hangat berlangsung di situs resmi Matlab ini.

>> T=1:10;

>> T=con2seq(T);

Gunakan tipe data sequence dengan fungsi con2seq. Latih dengan GUI hingga diperoleh performance yang bagus dengan seminim mungkin error (MSE) yang dihasilkan training. Contoh performa training dapat dilihat berikut:

Teruskan hingga diakhiri dengan menyimpan JST yang sudah dilatih dengan nama “net“. Buka editor, dan isi kode berikut ini dengan fungsi removedelay yang sudah dibahas pada postingan yg lalu, tetapi disini menggunakan kalang for-end untuk beberapa prediksi ke depan.

  • Told=T;
  • nets = removedelay(net);
  • result=[]
  • for i=1:10
  • [xs,xis,ais,ts] = preparets(nets,{},{},T);
  • ys = nets(xs,xis,ais);
  • T(1,end+1) = ys(1,end);
  • size(T)
  • T=T(2:end)
  • result=[result;ys(1,end)]
  • end
  • result=cell2mat(result)
  • figure
  • t=cell2mat(Told)
  • plot([t transpose(result)])

Namun hasilnya tampak kurang baik untuk data yang melebihi time series ke 12:

Sepertinya hanya dua prediksi ke depan yang akurat; memang time-series untuk peramalan membutuhkan data yang besar, sepuluh sepertinya tidak bisa diandalkan, apalagi hingga meramalkan seri ke-20. Mungkin men-training network dengan tambahan satu atau dua data baru hasil peramalan sebelumnya bisa jadi pilihan. Network tersebut kemudian digunakan untuk memprediksi satu atau dua data berikutnya. Kecuali mungkin untuk tipe narxnet dengan data exogenous mampu memprediksi lebih jauh ke depan.