Mau ngolah data finansial pakai machine learning?📈📊
Yakin udah menuhin asumsi stasioneritas?
.
.
.
A thread
Mimin yakin kita semua punya satu kesamaan pemahaman: machine learning bisa diterapin di berbagai industri. Nah, ga terkecuali sama industri finansial. Di thread ini, kita akan secara spesifik membahas trading yaa.
Yang namanya mau ngolah data trading, udah pasti banget jenis data nya itu time series. Data time series merupakan data yang dikumpulkan berdasarkan urutan waktu. Satuan waktunya ini bisa macam macam, tahunan, bulanan, hingga per jam dan bahkan per detik.
Berarti, ketika kita mau ngolah data trading, udah pasti nih kita bakal ngolah data time series. Terus, kira kira apa ya algoritma yang cocok untuk mengolah data time series?
Ketika baru pertama kali menggunakan machine learning untuk data data finansial, gak jarang yang memulai dengan menggunakan RNN. Walaupun RNN terlihat menggoda, tapi nyatanya project yang dikerjakan dengan RNN sering kali gagal.
Yaa, alasannya sesederhana karena RNN memang ga dibangun untuk mengolah data finansial. Loh, bukannya RNN itu digunakan untuk data sequential atau time series?
Iya, RNN mengasumsikan kalau kejadian di masa lampau itu bisa mempengaruhi masa depan melalui tren dan musim yang dapat diprediksi. Terdengar seperti data finansial banget kan?
Walaupun begitu, ada asumsi finansial yang sering kali terlupakan oleh machine learning. Loh, emangnya asumsi data finansial tuh apa aja sih?
Nah jadi, data finansial itu harus stasioner. Maksudnya stasioner adalah data tersebut memiliki rata-rata dan juga varians yang konstan. Contohnya gini nih, kita liat harga saham Apple dari tahun 2015 ke 2019.
Dengan ngeliat sekilas aja, kita udah bisa tau kalau rata-rata harga si saham Apple ini ga konstan dari waktu ke waktu. Alias, ada masalah stasioneritas disini.
Oke, gimana kalau kita coba jadiin skala aja ya harganya?
Misalkan nih, kita jadikan harga saham Apple sebelum tahun 2019 itu sebagai data training, sedangkan sisanya digunakan untuk testing. Kalau misalkan kita buat skala harga dari [100,400] menjadi [0,1], nanti akan terjadi look ahead bias.
Apa tuh look ahead bias? Look ahead bias adalah bias yang terjadi ketika sebuah simulasi bergantung pada data / informasi yang sebenarnya ga diketahui ketika training.
Akhirnya nanti hasil prediksi kita bakalan ga realistis karna model udah tau harga maksimal yang bakalan terjadi di masa depan gara gara scaling yang kita buat tadi.
Tapi yaa, kalo kita ngelakuin hal ini di tahun 2019, ga mungkin juga kita buat skala [100,400], kan kita gatau di tahun 2020 itu harga saham tertingginya mencapai 400.
Oke, gimana kalau kita ganti skalanya jadi [100,250] jadi [0,1] biar bisa terhindar dari look ahead bias? Yep, kita berhasil lolos dari look ahead bias, tapi hasil prediksi model kita juga ga bakalan bagus. Kenapa?
Model kita kemungkinan bakal buruk dalam nge generalize data, karna test set nya itu berisi un-seen data, dan beberapa model ML pun memang kurang baik ketika dikasih non scaled data.
Jadi kita bisa simpulin ya, membuat skala ini ga efektif untuk mengatasi masalah stasionaritas kita. Hmmm, terus apa nih solusinya?
Tenang aja, ada yang namanya ‘log differencing’. Kita dapat menggunakan log differencing dari data harga yang kita miliki.
Log differencing ini menghitung perbedaan antara log values pada t-1 and t, biasanya disebut juga sebagai log returns. Rumusnya dapat kalian liat pada gambar ini ya:
Setelah menggunakan log returns, kita bisa liat hasilnya menjadi seperti ini:
Sekarang, rata rata means nya jadi konstan di sekitar 0, gitu juga dengan variansnya jadi lebih konstant. Nah, log return ini juga cenderung lebih berdistribusi normal dibandingkan dengan data harga.
Oke, sekarang yang jadi pertanyaannya adalah: apakah log returns ini boleh dipakai kapan aja?
Jadi gini guys, log return ini kan menghilangkan informasi tentang harga ya. Sebenarnya isu ini bukan menjadi masalah besar, pada umumnya. Namun, untuk beberapa industri, seperti komoditas logam atau metal, informasi tentang harga memiliki dampak yang sangat besar di real life
Makanya, untuk beberapa komoditas, penggunaan harga lebih baik dibandingkan log return.
Balik lagi nih, ke awal, machine learning cenderung mengasumsikan data yang kita masukan udah stasioner, padahal dalam kenyataannya, jarangg banget ada data finansial yang udah stasioner.
Makanya, penggunaan log tadi bisa membantu kita terhindar dari masalah stasioneritas. Oh iya, sebelumya mimin juga pernah bahas loh tentang intepretasi regresi linear yang variabel variabelnya diubah dalam bentuk log, cek disini yaa:
Nah, kalau kalian juga tertarik untuk belajar cara mengolah data dari industri yang kalian tekuni menggunakan machine learning, bisa banget nih belajar dasar-dasar sekaligus mempraktekkannya secara langsung di non degree program Data Scientist Pacmann.AI
Kalau misalkan masih takut untuk belajar machine learning tapi udah niat jadi Data Scientist, bisa banget nih ikutan Workshop Pacbuburit Data Science without Coding selama jam ngabuburit bulan puasa inii. Daftar segera di bit.ly/DaftarPacbubur… yaa!
Ingin lintas jurusan / career switch dan berkarir jadi Data Scientist?🧑💻🤓
Catat tips berikut ya!
.
.
.
A thread
Berdasarkan Glassdoor's 50 Best Jobs in America 2020, profesi sebagai Data Scientist masih menduduki top 3 profesi di Amerika, diikuti dengan job satisfaction / kepuasaan kerja yang tinggi serta median base salary sebesar $1000
Dengan semakin meningkatkan kebutuhan orang-orang akan data, dan meningkatnya kesadaran akan pengambilan keputusan berbasis data, wajar bila industri ini memiliki prospek yang cemerlang ke depannya.
Back to basic: supervised or unsupervised learning?🤓🧠
.
.
.
A thread
Mimin yakin, yang namanya belajar machine learning, pasti deh bakalan kenalan sama istilah ‘supervised learning’ atau ‘unsupervised learning’. Thread kali ini bakalan ngulik apa sih perbedaan kedua istilah itu.
Biar kebayang apa sih beda keduanya, anggaplah kamu punya anak dan mau ngajarin jenis - jenis hewan ke anak kamu. Buat ngenalin jenis hewan, kamu pengen anak kamu itu praktek secara langsung, bukan cuma liat poster ini
Mau clustering data?
Lebih oke gaussian mixture model atau k-means?🧐🤔
.
.
.
A thread
Gaussian pasti bukan kata yang asing lagi buat kita semua, kan? Distribusi Gaussian, yang diperkenalkan oleh Carl Friedrich Gauss, biasanya kita kenal dengan nama lain distribusi normal.
Sebelumnya, yuk kenalan sama gaussian process dulu. Kalian tau gak sih, sebenernya gaussian process ini cuma berguna di ranah statistika, atau bisa diimplementasikan di machine learning juga?
Mau jadi DS tapi masih takut ngoding?🧑💻😉
Mulai dari Excel aja dulu!
.
.
.
A thread
Eits, jangan langsung serang mimin setelah baca judulnya. Ya, ya, ya, mimin paham kok reputasi excel masih jauh banget sama Python, R, Java, you name it lah. Tapi, buat pemula yang masih takut ngoding, excel ini bisa jadi alternatif buat kenalan dengan dunia per ds-an.
Lebih baik mencoba dari hal sederhana dulu kan daripada gak sama sekali?