Perbandingan MLP dan Metode Persistensi untuk Nowcasting Suhu Udara Wilayah Palu


Ok, di artikel sebelumnya kita sudah membahas dan membuat MLP (Multi Layer Perceptron) sampai tahap mengetesnya. Di kesempatan ini seperti yang sudah di janjikan sebelumnya, kita akan mencoba mengimplementasikan teknik keren ini ke contoh kasus dunia nyata dan membandingkannya dengan metode lain yang sangat sederhana.

Kita akan mencoba memprediksi suhu udara 1 jam kedepan (nowcasting) berdasarkan parameter cuaca saat ini (present weather) untuk wilayah Palu. Well, kurang tepat sebenarnya kalau saya bilang wilayah Palu karena data yang kita punya dan kita pakai adalah data dari stasiun meteorologi Mutiara Palu (pengukuran. Wilayah palu sangat luas and it's ridiculous kalau kita berasumsi seantero kota Palu suhunya sama).

Metode persistensi yang menjadi metode pembanding di sini prinsipnya sama seperti namanya 'suhu 1 jam kedepan sama dengan suhu sekarang'. Sehingga menghitung error dari metode ini hanya dengan mengurangi suhu sekarang dengan suhu 1 jam kedepannya. FYI, error yang akan kita hitung adalah RMSE (Root Mean Square Error).

Struktur jaringan ANN yang kita gunakan ini didapatkan dari trial and error, setelah mencoba berbagai struktur kelihatannya jaringan seperti ini yang lebih stabil dan kecil errornya.

Seperti gambar header dari artikel ini, kita mengambil 5 parameter, yaitu: Kecepatan angin (wind speed), tekanan udara QFF (pressure), suhu bola kering (dry bulb), kelembapan relatif (RH), dan suhu bola basah (wet bulb) yang lalu di teruskan ke 2 hidden layer dengan masin-masing 5 neuron per layer. Pada layer terakhir, output dari fungsi sigmoid (fungsi aktivasi yang kita gunakan) kita gunakan untuk mencari prediksi dry bulb dengan regresi linear berganda.

Yang membuat ANN kita kali ini berbeda dan lebih advance daripada ANN di pembahasan sebelumnya selain kita punya 2 hidden layer, di sini kita benar-benar melakukan prediksi bersarkan jaringan neural network yang sudah kita training. Selain itu, dalam menormalisasi data test (data untuk prediksi sebenarnya), kita memakai rumus yang sama dengan normalisasi data input training, hanya saja rata-rata dan standar deviasi yang kita pakai berasal dari data training. Formula dari normalisasi data sudah kita bahas sebelumnya di sini.

Kita memakai data observasi dari stasiun meteorologi Mutiara Palu, yaitu data bulan Januari dan Februari 2015. Dari data 2 bulan itu, data bulan Januari dan Februari minus 4 hari (tanggal 25 - 28) kita jadikan data training dan sisanya kita jadikan data test.



Reminder, data training kita gunakan untuk melatih ANN kita dan data test untuk prediksi sebenarnya dan untuk mengetahui akurasi dari ANN kita terhadap data luar. Script dari ANN ini bisa di dapatkan di sini, untuk data training ambil di sini, dan data test di sini.

Kita jalankan scriptnya dan setting tanggal 25 Februari 2015 sebagai data test, hasilnya

 data prediksi:  
 [ 25.99344826 26.5912571  28.13657951 30.79493523 32.43818283  
  31.24039268 29.2573719  29.51423836 27.65539551 27.8849144  
  27.4777565  27.12623024 27.28603554 27.25389481 25.023386  
  26.40401268 25.08811951 24.82951164 24.5446434  24.10881424  
  24.11081696 24.06035805]  
 data sebenarnya:  
 [ 26.4 27.2 29.2 31.8 31.8 30.6 30.8 28.8 28.6 28.2 27.6 26.8  
  26.8 25.  25.4 25.  24.8 24.8 24.2 24.2 24.  23.4]  
 error terhadap data training 0.822570201582  
 error yang sebenarnya 0.841689526467  
 error metode persistensi 1.0242513896  

Untuk tanggal 26 Februari 2015

 data prediksi:  
 [ 26.25442505 27.52705574 31.04621887 32.3229332  32.26769638  
  32.17666245 30.25072479 29.35257339 29.86028671 29.39032936  
  28.04170609 27.43281746 27.26920128 26.7162571  26.98358917  
  27.19584656 26.59253693 25.31702805 25.26041222 24.36617851  
  24.40892029 24.15975952]  
 data sebenarnya:  
 [ 27.  29.4 31.8 33.  33.2 31.2 30.4 30.8 29.8 28.6 27.8 27.6  
  27.  26.6 26.2 25.8 25.6 25.2 25.  24.8 24.2 24.4]  
 error terhadap data training 0.821367971413  
 error yang sebenarnya 0.790569686561  
 error metode persistensi 1.05313385146  

Tanggal 27 Februari 2015

 data prediksi:  
 [ 26.92779922 28.46894836 31.73717117 32.89946365 33.32194901  
  33.41539764 32.71559525 31.6129055  31.34354782 29.38353348  
  28.34235573 27.84448814 27.83125687 26.95786095 26.98136711  
  25.99813271 26.2051487  25.95657349 25.68141365 24.84691048  
  24.38909531 24.02708054]  
 data sebenarnya:  
 [ 27.8 30.4 32.3 34.4 34.8 34.2 33.4 33.  30.  29.  28.6 28.2  
  27.6 27.4 26.6 26.4 26.  25.8 25.  24.6 24.2 23.6]  
 error terhadap data training 0.82367322988  
 error yang sebenarnya 0.846428192057  
 error metode persistensi 1.21093502566  

Lalu terakhir tanggal 28 Februari 2015

 data prediksi:  
 [ 25.22750092 28.63218307 31.22886658 32.3142128  32.71134186  
  32.8468132  32.14598465 30.78730774 29.94753456 28.48755836  
  27.21724892 26.89863014 26.969347  26.55696297 26.73659515  
  26.00022507 25.46754265 25.29185677 24.54766464 23.78473282  
  23.63599205 23.59555817]  
 data sebenarnya:  
 [ 27.8 30.  31.6 33.  33.6 33.7 31.8 31.  29.8 28.4 27.9 27.8  
  27.  26.8 26.2 25.6 25.2 24.6 24.  23.6 23.4 22. ]  
 error terhadap data training 0.80274001783  
 error yang sebenarnya 0.854966228677  
 error metode persistensi 1.16619037897  

Terlihat jelas di semua hari, ANN lebih unggul daripada cuma sekedar asumsi sederhana 'suhu nanti akan sama dengan suhu sekarang'.

Walaupun begitu, hasil ini belum cukup memuaskan. Kita mengharapkan error dari ANN setidaknya RMSEnya paling besar 0.5. Untuk mengecilkan error, terlepas dari rancangan ANN, kita perlu data training yang lebih banyak lagi agar pola cuaca pada daerah yang ingin kita prediksi bisa tercover semua. Selain itu, data yang kita ambil juga harus akurat sebab 'pola cuaca' yang ingin kita analisis tidak akan bisa di analisis oleh ANN kalau data inputnya tidak menggambarkan sama sekali 'pola cuaca' yang sebenarnya.

Ya, sangat banyak faktor yang menentukan keakuratan dari ANN kita. Oleh karena itu, mirip dengan pemodelan cuaca, ANN ini juga sangat sensitif dengan data input (atau initial condition kalau dalam pemodelan cuaca). Akan tetapi, data input ngawur di ANN bisa dibasmi sebagian dengan teknik 'pengusiran outlier' atau 'tercover ngawurnya' oleh data input lain yang sangat banyak (sehingga data yang salah itu menjadi tidak signifikan). Sekian.

referensi:
Application of Artificial Neural Networks for Temperature Forecasting, by Mohsen Hayati, and Zahra Mohebi
https://stats.stackexchange.com/questions/174823/how-to-apply-standardization-normalization-to-train-and-testset-if-prediction-i, di akses pada 1 Juli 2017

Komentar