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.

Wafatnya Raja Thailand di Usia 88 Tahun

Sepertinya saya harus rehat sejenak dari tulisan yang serius-serius, kali ini dengan postingan ringan mengenai wafatnya raja Thailand pada hari kamis kemarin, tanggal 13 Oktober 2016. Saat ini prosesi pemakaman baru saja selesai. Rakyat berbondong-bondong ikut menghadiri acara itu dengan pakaian serba hitam. Hal ini menunjukkan kecintaan mereka terhadap rajanya yang dinilai telah memajukan Thailand. Dengan media online acara tersebut dapat dilihat lewat fasilitas streaming.

Walaupun baru tiga tahun berada di Thailand dalam rangka studi lanjut, saya sudah merasakan kenyamanan dalam naungan raja kharismatik itu. Hanya saja, pasca kudeta militer tahun 2014 yang lalu kebebasan sedikit terganggu karena alasan keamanan, tetapi selama tidak ikut terlibat dalam konflik politik, sepertinya aman-aman saja. Bahkan tindakan proteksi tersebut mampu menstabilkan kehidupan politik dalam negeri Thailand. Rakyat tetap bisa bekerja dan melakukan aktivitas lain dengan normal.

Raja terlama di dunia ini mudah dikenali karena sejak saya SD di era 80-an, SMP, SMA, S1, S2, dan S-S lainnya, buku IPS di sekolah tetap mencantumkan Raja Bhumibol sebagai raja Thailand. Kini penggantinya harus siap menaiki tahta kerajaan dan menghadapi permasalahan-permasalahan yang sama dengan yang di hadapi oleh negara lain saat ini, yaitu pertumbuhan ekonomi yang melambat. Dan mudah-mudahan kejadian ini bisa mengingatkan saya untuk segera lulus, waduh.

Prediksi Time Series dengan ntstool Matlab

Matlab memiliki fasilitas berbasis Graphic User Interface (GUI) untuk memprediksi data time series. Fasilitas Help yang tersedia di Matlab sepertinya terlalu rumit, terutama bagi pengguna baru. Seperti penerapan Matlab di bidang lainnya, anda harus memahami konsep dasar bidang yang akan diterapkan di Matlab karena seperti alat bantu (tools) lain pada umumnya, Matlab hanya berfungsi mempermudah proses pengolahan dan komputasi. Postingan sebelumnya sedikit banyak memberi gambaran bagaimana mengelola data time series.

a. Mempersiapkan Jaringan Syaraf Tiruan untuk Proyeksi

Buka jendela ntstool dengan mengetik ntstool di command window matlab.

Untuk mudahnya kita buat dengan data sederhana agar terlihat akurasinya dengan jelas. Misalnya data sebanyak sepuluh buah yang runtun membesar dari satu hingga sepuluh (jika diteruskan kira-kira 11, 12, 13, dst). Di sini data yang kita gunakan berstruktur cell sehingga menggunakan kurung kurawal di antaranya.

  • data={1 2 3 4 5 6 7 8 9 10};

Karena tidak ada intervention variable atau di Matlab disebut dengan istilah external (exogenous) maka kita memilih yang tengah.

Di sini variabel d berfungsi sebagai masukan terhadap nntool yang sudah dilatih untuk memprediksi keluaran. D sering disebut juga dengan jendela. Jika kita memberikan nilai 3 pada jendela (defaultnya 2) maka nntool akan memprediksi data ke-4 dan seterusnya. Untuk mudahnya kita ambil harga d=2 saja. Ambil data yang akan dilatih:

Defaultnya adalah data berbentuk sequence yang menggunakan fungsi con2seq terhadap data yang akan diliatih jika ingin menggunakan format Cell column. Klik next terus hingga bagian arsitektur nntool. Isi d dengan angka 3 yang artinya dua data akan digunakan sebagai masukan.

Lanjutkan dengan tekan tombol train yang bersimbol petir . Tunggu beberapa saat hingga Matlab berhasil melakukan proses pembelajaran (training). Selamat, Anda telah berhasil membuat jaringan syaraf tiruan (JST) untuk memprediksi. Tetapi sampai di sini kita baru sampai memprediksi data ke-3,4, …, 10 saja, dengan hasil akurasi dapat dilihat dengan cara menguji JST itu. Isi kolom target dengan data yang digunakan untuk learning.

Setelah menekan tombol Test Network, lanjutkan dengan menekan tombol Plot Response untuk mengetahui akurasi learning.

Grafik di atas bermaksud menguji kemampuan data ke-1 dan ke-2 dalam memprediksi data ke-3 hingga ke-10 (total ada delapan data yang diprediksi). Hasil pembelajaran lumayan bagus dimana prediksi dengan data sebenarnya tidak jauh berbeda. Jika kurang puas dapat anda ulangi proses pelatihannya dengan menekan tombol retrain. Jika sudah dirasa cukup akurat, lanjutkan dengan menekan next hingga dijumpai jendela Save Result. Jangan lupa menekan tombol ini supaya hasil training tersimpan di workspace.

Tekan tombol FINISH untuk mengakhiri proses learning. Berikutnya kita masuk ke bagian yang lebih rumit yakni memprediksi data di masa yang akan datang.

b. Proyeksi Data

Untuk memproyeksi satu data tambahan, yaitu data ke-11, Matlab menyediakan fungsi removedelay. Pada command window ketik fungsi itu untuk membuat satu network baru, misal beri nama “nets”.

  • nets=removedelay(net);
  • [xs,xis,ais,ts] = preparets(nets,{},{},data);
  • ys = nets(xs,xis,ais)

Perhatikan ada satu fungsi tambahan yang berfungsi mempersiapkan data untuk mensimulasikan JST baru yaitu preparets. Hal ini perlu karena JST untuk time series berbeda dengan JST untuk data biasa. Variabel yc akan memberikan hasil time series dengan satu data tambahan yang merupakan ramalan ke depan.

Perhatikan data baru hasil prediksi yaitu, 11.4630. Jika kita lihat deret di atas (secara logika sederhana), seharusnya hasil peramalan adalah 11.0000 tetapi walaupun demikian, dirasa sudah cukup akurat. Ys merupakan data prediksi date ke-3 hingga ke-11. Jika ingin diperoleh data totalnya dapat dengan menyipsikan data pertama dan kedua yang dijadikan sebagai variabel d (dua data pertama sebagai dasar prediksi, 1:2). Lanjut ke NARX dengan variabel exogenous.

  • ytotal=[data(:,1:2) ys];
  • plot(cell2mat(ytotal))

Reclassify Hasil Unsupervised Clustering

Karena unsupervised clustering menghasilkan klasifikasi hanya berdasarkan citra warna satelit maka hasilnya belum menunjukan klasifikasi secara real, misalnya apakah suatu land use itu hutan, sungai, buit up area, dan lain-lain. Oleh karena itu kini tugas pengguna IDRISI untuk mengklasifikasi hasil pengolahan citra tersebut mengikuti kenyataan real di lapangan. Caranya mudah, dengan menggunakan jendela Reclass

Untuk memudahkan mana kelas yang harus di-merger, kita bisa memanfaatkan tool edit dengan mengklik menu Data Entry lalu pilih Edit. Isi bagian mana yang berubah dengan urutan sebagai berikut: nilai terkini, batas nilai terbawah (lebih besar dan sama dengan >= ), dan batas nilai teratas (kurang dari < ). Pastikan seluruh kelas lama tercantum dalam reclass.

Cara membaca editor di atas adalah sebagai berikut. Perhatikan baris pertama berisi deretan angka 0, 0, dan 2 yang dipisahkan oleh spasi. Nol paling kiri adalah kelas 0, nol kedua berisi batas bawah yaitu nol dan batas atas yaitu 2. Jadi kelas nol berisi range 0 dan 1. Di sini 2 tidak termasuk karena prinsipnya kurang dari, bukan kurang dari dan sama dengan. Teliti kembali, jangan sampai ada kelas yang tidak tercantum di seluruh baris editor di atas.

Simpan dengan nama bebas tetapi jangan lupa pilihan file extension dengan nama rcl. Kemudian panggil lewat jendela RECLASS yang telah dibuka sebelumnya dan arahkan ke file tersebut. Akhiri dengan menekan OK. Tunggu sesaat dan reclassify sudah berhasil dilakukan.

Beberapa kelas dimerger menjadi satu, misalnya antara air laut dengan air danau dan sungai. Hasilnya kira-kira seperti gambar di bawah ini. Selamat mencoba.

Konversi Citra Satelit Landsat ETM+ ke Format IDRISI

Untuk memahami secara cepat masalah citra satelit, apa itu landsat, ETM+ dan spektrum warna, ada baiknya membaca link berikut ini (tetapi dalam bahasa Inggris). Ketika mengunduh citra satelit di situs resmi USGS Amerika (lihat tata caranya di postingan sebelumnya), sebaiknya mengikuti tip dan triks berikut ini:

  • Pilih slot waktu pemotretan yang jernih dengan cara mengunduh terlebih dahulu satu file kecil (true color) tile dan lihat kondisinya sebelum mengunduh file ukuran besarnya, dan
  • Unduh produk lengkapnya, dengan rentang ukuran file dari 200 Mb hingga 1 Gb.

Jika kita mengunduh produk lengkap maka kita akan memperoleh enam hingga delapan spektrum band. Dengan mengunduh banyak band, maka untuk klasifikasi hasil yang diperoleh lebih baik. Berikut ini cara mengkonversi dengan cepat dan sederhana file “GeoTIFF” hasil download dari situ USGS. Buka IDRISI dan masuk ke menu Import.

Kemudian isi file dengan mengarahkan ke lokasi file hasil download setelah diekstrak (biasanya diekstrak dua kali). Arahkan pula lokasi output setelah diberi nama sesuai dengan band nya.

Setelah itu IDRISI akan mengkonversi ketujuh citra satelit itu menjadi tujuh file berekstensi rst. Di sini karena akan digunakan untuk klasifikasi, hanya tujuh band yang diperlukan mengingat IDRISI maksimal mengklasifikasi (unsupervised) citra composite sebanyak tujuh band.

Clip data Raster Mengikuti Polygon

Untuk melakukan proses clipping (menggunting) suatu data raster sebenarnya sederhana, tetapi terkadang menjengkelkan karena walaupun sederhana tetapi jika tidak tahu ya tetap membutuhkan panduan. Sebenarnya di toolbox pada ArcGIS disertai dengan panduan tetapi karena kurang detil ditambah lagi bahasa Inggris, membuat pengguna jadi enggan membacanya.

Untuk mempraktekannya siapkan terlebih dahulu data raster yang akan digunting. Banyak sumber untuk memperoleh data raster, atau Anda bisa membuat dengan mengkonversi data polygon menjadi raster dengan fungsi polygon to raster. Gambar berikut menunjukan rencana untuk menggunting citra satelit band1 mengikuti kota Bekasi yang berwarna hijau.

Panggil fungsi clip raster di toolbox (bisa juga dengan searching dengan kata kunci “raster clip”). Setelah muncul jendel clip maka isi dengan hati-hati parameter-parameternya. Sebagai informasi, tool Clip yang dibuat dari menu Geoprocessing tidak bisa digunakan untuk data raster (hanya polygon).

Jangan lupa men-cecklist use Input Features for Clipping Geometry (Optional)”. Jika tidak dicentang maka hasil clipping hanya berupa extent persegi panjang sekitar “bekasi_city”. Dan proses ini belum selesai, tab Environments harus diklik untuk mengisi parameter-parameternya.

Ada dua parameter yang perlu diisi: process extent dan raster analysis. Jika pada process extent kita mengisi “extent”, pada raster analysis diisi kolom “mask” dengan “bekasi city”. Akhiri dengan menekan “OK”.

Oiya, jangan lupa mengarahkan hasil output raster dataset ke lokasi yang sudah ditentukan. Tunggu beberapa saat dan pastikan ada pesan bahwa clipping berhasil dengan baik di pojok kanan bawah.

Klasifikasi Citra Satelit dengan IDRISI Selva 17

Citra satelit dapat kita klasifikasikan berdasarkan warna yang menandakan apakah suatu obyek itu bangunan, perairan, tanaman, dan sejenisnya. Klasifikasi yang sering digunakan adalah unsupervised learning dimana sistem mencari sendiri kesamaan antara satu kelas dengan kelas lainnya. Postingan kali ini bermaksud mempraktekan bagaimana cara membuat klasifikasi dengan software IDRISI. Untuk itu siapkan terlebih dahulu citra satelit yang akan diklasifikasi. Terkadang proses cropping (biasanya dengan proses clipping) diperlukan karena jika study area terlalu luas maka sistem akan bekerja lebih lambat dalam memprosesnya. Gambar di bawah ini adalah proses Clipping dengan menggunakan ArcGIS.

Seperti langkah-langkah yang dijelaskan pada postingan sebelumnya untuk mengkonversi dari format ArcGIS ke IDRISI maka diperlukan export ke format ASCII (text). Berikutnya file ASCII itu diexpor ke IDRISI untuk dikonversi menjadi file *.rst.

Pada tab “image processing” pilih “hard clustering” dilanjutkan dengan memilih “ISOCLUST”.

Isi jumlah iterasi, jumlah kelas dan resolusi piksel, di kasus saya berturut-turut 10, 20, dan 60. Sebagai informasi, makin banyak iterasi hasil makin bagus tetapi memerlukan proses yang lebih lama, bahkan hingga berjam-jam untuk iterasi yang ratusan. Komputer seperti “hang”, tetapi jangan khawatir ditunggu saja. Hasil untuk 3 iterasi sepertinya kurang memuaskan.

Untuk menghasilkan hasil klasifikasi yang baik sebaiknya seluruh band terlibat pada proses klasifikasi. Di sini dicoba band 1 sampai 6 untuk ikut diklasifikasi.

Hasilnya dapat dilihat berikut ini. Proses yang tadinya beberapa menit menjadi beberapa jam karena melibatkan enam layer band untuk klasifikasi.

cluster_result

Tidak sampai di sini saja, tugas berikutnya tidak kalah berat yaitu mengklasifikasikan lagi secara manual dengan menggabungkan kelas-kelas yang sekiranya sama.

Konversi Format ArcGIS ke IDRISI

Dalam dunia GIS kita mengenal tiga tipe data: raster, vektor, dan atribut. Penjelasan gampangnya adalah restor menggambarkan image yang berupa piksel, vektor menggambarkan koordinat titik, garis, dan poligon, serta atribut yang berupa tabel (seperti pada sistem basis data). Di sini akan dicoba konversi data raster dan vektor dari ArcGIS ke IDRISI.

Buka ArcGIS beserta data raster yang akan dikonversi. Dengan jendela search cari tool raster to ascii. Dobel klik hasil pencarian tersebut ( pilih yang conversion).

Di sini akan digunakan metode dari TIF ke ASCII dan nanti oleh IDRISI dikonversi menjadi rst, format standar IDRISI.

Pastikan simbol centang tanda proses konversi ke ASCII berjalan dengan baik muncul di pojok kanan bawah dan data sudah ada di Table of Content. Berikutnya kita beralih ke IDRISI Selva 17.

Setelah masuk ke jendela Arcraster, pilih file *.txt yang akan dikonversi ke *.rst. Pastiken tombol “OK” sudah bisa ditekan agar proses konversi dapat segera dijalankan. Tunggu beberapa saat, dan gambar Anda sudah bisa dilihat di software IDRISI selva 17.

Untuk konversi file vektor ArcGIS ke IDRISI gunakan toolbox Shapeidr. Tampilan berikut menunjukan hasil konversi data raster *.tif dari ArcGIS ke *.rst dan dari data vektor *.shp ke *.vct pada IDRISI selva. Selamat mencoba.

Pengolahan Citra Satelit

Untuk pemula yang ingin mempelajari pengolahan citra gambar dari satelit sepertinya butuh usaha ekstra apalagi yang background-nya buka dari jurusan Remote Sensing & Geographic Information System (RSGIS); sebagai contoh saya sendiri yang telah lama berkecimpung di ilmu komputer banyak menghadapi kesulitan-kesulitan ketika harus mengolah informasi yang berasal dari bidang ini. Banyak istilah-istilah yang harus dipahami terlebih dahulu sebelum masuk ke topik-topik yang lebih advance. Sebagai contoh adalah istilah “band” pada citra satelit yang merupakan jangkauan spektrum (frekuensi suatu gelombang cahaya) yang direkam oleh satelit, misalnya satelit Landsat memiliki 7 spektrum band. Satu contoh istilah lain yang tak kalah penting adalah istilah citra “true color” dan “false color”. Bila true color adalah citra yang tampak apa adanya seperti ketika kita melihat lingkungan sekitar, pada citra false color kita melihat gambar berdasarkan fokus ke spektrum band tertentu. Hal ini bermanfaat ketika akan mengklasifikasi obyek-obyek yang ada dari citra satelit seperti tumbuhan, perairan, perumahan, dan sebagainya. Jadi ketika ingin mengetahui tumbuhan mana saja yang berada di suatu area, maka citra dengan fokus ke warna merah (near-IR band) sangat bermanfaat karena tanaman biasanya banyak menyerap gelombang warna merah (itu sebabnya kita melihat tanaman berwarna hijau).

Banyak alat bantu yang digunakan untuk mengolah citra satelit. Di sini akan digunakan dua software terkenal antara lain ArcGIS dan IDRISI. IDRISI sangat powerful untuk mengolah citra, sementara ArcGIS di sini akan digunakan untuk membuat false color dari citra satelit yang telah diunduh sebelumnya. Cara mengunduh citra satelit dapat dilihat pada postingan sebelumnya. Buka software ArcGIS untuk memulainya.

Setelah “working folder” dibentuk dengan menekan “connect to folder” di bagian atas Catalog, dengan cara mendrug mouse arahkan citra satelit yang telah didonlot dan diletakan di working folder ke area kerja ArcMap. Tampak pada Table of Contents ArcMap tiga band dengan warna red, green, dan blue. Kebetulan data satelit yang diunduh sudah baik dengan R,G,B yang jelas terpisah. Peta berikut merupakan true color dari bekasi dan sekitarnya.

Jika citra yang kita unduh berupa multispectral (sentinel 2A) untuk mengolah diperlukan composite band tool, cara termudah adalah melakukan searching tool di Arc Toolbox dengan kata kunci “composite band” atau mencari fungsi itu di bawah data management tool raster raster processing.

RGB band untuk sentinel data adalah:

  • Band 2: Biru (490 nm)
  • Band 3: Hijau (560 nm)
  • Band 4: Merah (665 nm)

Pilih data yang akan diproses (band 2,3, dan 4), dan jangan lupa arahkan hasil proses di working folder agar mudah dicari kembali suatu saat. Tetapi jika data sudah memiliki composite band maka tidak perlu melakukan langkah tersebut, masuk saja ke layer property. Pilih tab simbology.

composite

Perhatikan citra hitam putih kini berubah menjadi warna-warni. Warna merah akan diserap oleh tanaman sehingga memunculkan warna hijau, sementara yang berawarna merah berarti tidak ada tanaman (laut, sungai, dan lain-lain). Dan ternyata, hasil unduh peta satelit landsat ETM+ secara otomatis sudah terproyeksi dan pas ketika dimerger dengan peta wilayah bekasi. Perhatikan peta kota bekasi pada gambar di atas yang siap untuk diklasifikasi (tumbuhan, bangunan, sungai, dan kelas-kelas lainnya) dengan IDRISI software.

Peramalan dengan Jaringan Syaraf Tiruan – Matlab

Kita mengenal peramalan berdasarkan time series data dengan menggunakan regresi saat di bangku sekolah dahulu. Ternyata peramalan bisa juga dengan menggunakan Jaringan Syaraf Tiruan (JST). Peramalan dengan JST memiliki keunggulan karena kemampuan JST yang sangat baik dalam menangani data non-linear. Ditambah lagi, JST mampu disisipkan dengan data pendamping selain data time series yang dikenal dengan istilah intervening indicator atau exogenous input. Jika pada postingan sebelumnya menggunakan referensi dari situs ini, maka kali ini kita coba dengan menggunakan fungsi bawaan Matlab yang dikenal dengan istilah Time Series NARX Feedback Neural Network. NARX itu sendiri singkatan dari Nonlinear Autoregressive Network wit eXogenous input. Kita akan mencoba meramalkan data penurunan jumlah taman seperti tabel di bawah ini (mengisi kolom yang ditunjukan dengan tanda tanya).

Data exogenous adalah populasi yang merupakan hasil dari proyeksi yang menunjukan trend bertambah, sementara park menunjukan trend menurun. Apakah JST sanggup memprediksi berapa penurunan jumlah taman sebagai akibat dari kenaikan populasi? Buka command window Matlab.

Masukkan data populasi X. Cara mudahnya tinggal anda copy-paste dari excel:

  • X=[1845005    1873470    1882869    2334142    2733030]
  • X=con2seq(X)

Di sini fungsi con2seq bermaksud mengkonversi data continyu menjadi sequensial yang jika dilihat di workspace window berupa tipe data “cell”. Sementara itu untuk data populasi untuk meramalkan adalah lima yang terakhir:

  • X2=[2334142    2733030    2943860    3155340    3369800]
  • X2=con2seq(X2)

Perhatikan untuk X2 sebagai prediksi di sini ada “shift” (untuk prediksi berikutnya ada data yang terkesan diulangi, lihat yang berwarna merah) dengan X sebelumnya. Lihat kembali prinsip-prinsip dasar windowing pada tulisan terdahulu. Untuk data park yang akan diramalkan, gunakan variabel T

  • T=[1904    1904    1887    1858    1772]
  • T=con2seq(T)

Intruksi berikut ini adalah untuk merakit NARX close dan open loupe, dilanjutkan dengan prediksi lima terakhir.

  • net = narxnet(1:2,1:2,10); %membuat NARX dgn riwayat 2 data sebelumnya (1:2)
  • [x,xi,ai,t] = preparets(net,X,{},T); %menyiapkan data training dan target “preparets=prepare time series”
  • net = train(net,x,t,xi,ai); %training NARX dengan data dari preparets
  • y = net(x,xi,ai); %memunculkan data hasil training untuk patokan validasi
  • netc = closeloop(net); %membuat NARX menjadi lingkar tertutup (serial-paralel)
  • view(netc); %melihat network lingkar tertutup NARX
  • [x,xi,ai,t] = preparets(netc,X,{},T); %persiapan data untuk memprediksi data 3,4,dan 5
  • yc = netc(x,xi,ai); %simulasi data 3,4,5 (cek errornya .. bandingkan dengan T)

Perintah view bermaksud melihat struktur NARX yang baru saja dirakit seperti gambar di bawah ini:

Gunakan fungsi “preparets” untuk populasi lima tahun terakhir sehingga dihasilkan network (netc) untuk memprediksi park berdasarkan data exogenous populasi.

  • [x2,xi,ai,t] = preparets(netc,X2,{},T); %persiapan simulasi data yang akan datang
  • yc2 = netc(x2,xi,ai) %simulasikan data yang akan datang 6,7,8,9,10

Untuk membuat plot prediksinya, konversi kembali data sequensial menjadi desimal dengan fungsi “cell2mat” seperti berikut ini:

  • plot([cell2mat(T) cell2mat(yc2)])

Apakah hasil itu sudah fix? Ternyata belum. Coba saja running ulang, akan menghasilkan prediksi tiga tahun kedepan yang berbeda. Berikut ini running kedua saya:

Sepertinya cara ini kurang baik, bisa gunakan cara yang mudah dengan GUI di postingan tentang NARNET dan NARX

Semoga bisa menjadi inspirasi.