Data kamu ada multikolinearitas?🥴😱
Jangan panik, pakai ridge regression aja!
.
.
.
A Thread
Halo guys! Masih inget bahasan multikolinearitas kita kemarin? Mimin udah janji nih mau bahas cara mengatasi multikolinearitas! Siapa yang tahu kenapa perlu mengatasi multikolinearitas?
Mimin ulas sedikit, ya. Jadi, ketika mau menggunakan regresi linear tetapi ternyata terdapat korelasi yang tinggi antar variabel independennya, itu artinya ada multikolinearitas.
Coba lihat gambar ini. Disini, x1 dan x2 gapunya bagian yang sama, artinya mereka independen satu sama lain.
Tapi kalau di gambar yang ini, hal kebalikannya terjadi. Ternyata ada bagian dari x1 dan x2 yang menyatu. Nah artinya salah satu asumsi regresi linear terkait independensi data antar variabel independen gak terpenuhi, nih.
Lalu, dampaknya apa sih kalau masalah multikolinearitas ini ga terselesaikan?
Jadi gini guys, Kalau terjadi multikolinearitas, maka OLS yang tadinya kita pake di linear regression emang bakal jadi unbiased, tapi variansnya bakal jadi besar. Ini bisa bikin koefisien regresi kita jauh dari nilai sebenarnya.
Kalau begitu, kita harus mengecilkan variansnya kan agar koefisien regresi kita ga melenceng jauh dari yang sebenarnya. Tapi ternyata masalahnya ga selesai disini guys :((
Masih ingat obrolan kita tentang bias dan variance trade-off? Ketika kita mengecilkan bias, maka variansnya akan membesar, begitu pula sebaliknya. Nah, jadi tujuan utama kita di sini adalah mengecilkan varians
Kenapa kita perlu mengecilkan nilai varians? Karena varians yang besar akan membuat model kita jadi overfit dengan data trainingnya dan sulit untuk prediksi data baru
Kita bakal menurunkan varians supaya nantinya, model regresi kita bisa mencapai nilai yang optimal, yaitu tidak terlalu kompleks (jadi overfit) maupun terlalu simpel (underfit) dan bisa menghasilkan koefisien regresi terbaik.
Masih inget bentukan linear regression? Yep, kita punya dependen variabel yaitu y, independen variabel yaitu x, koefisien regresi untuk tiap x yaitu beta_i, dan error term
Nah, masih inget bahasan linear regression kita? Jadi kita punya cost function dan tujuan kita adalah untuk meminimalisir nilai dari cost function itu.
Cost function itu mengukur performa model dengan melihat error antara predicted value dan expected value dengan sebuah real number
Biasanya, kita minimize cost function dengan menambah fitur di dalam dataset kita. Masalahnya, semakin banyak fitur, semakin rendah cost functionnya, tapi model kita semakin berpeluang untuk overfit.
Nah, di sini deh fungsi dari ridge regression ini. Ridge regression meminimalisir cost function tanpa meningkatkan peluang model buat overfitting dataset kita.
Lalu, gimana caranya?
Pertama, kita perlu standarisasi data dulu supaya rentang koefisien regresi dari suatu variabel ga berbeda jauh dari variabel lainnya kayak gini. Kenapa begitu?
Soalnya, kalo salah satu variabel punya nilai dengan rentang yang jauh lebih besar daripada variabel lainnya, nanti interpretasi regresinya akan cenderung memperlihatkan bahwa variabel itu punya efek yang besar terhadap output.
Nah, salah satu pendekatan biar model regresi ini stabil adalah dengan ngubah cost functionnya dengan nambahin cost baru buat variabel yang koefisiennya besar. Cara ini bakal menghasilkan penalized linear regression.
Ini namanya L2 Regularization. Emang apa yang ditambahin? Selain cost function yang ngukur fit model, kita nambahin lagi buat liat magnitude dari koefisiennya. Jadi gini, nih cost functionnya,
Yep! Penambahannya ada di lambda dan sum of square dari error termnya (SSE). Jadi, lambda di atas itu adalah si penaltinya
Kalo ada koefisien yang besar, metode ini bakal nurunin nilai estimasinya menuju 0 dengan membesarkan nilai lambda itu. Nah, metode ini biasanya dikenal dengan nama “shrinkage methods”
Nilai dari lambda, si hyperparameter dari ridge ini, ga secara otomatis ada dari model. Tapi, kita harus nentuin nilai lambda yang paling optimal secara manual. Caranya? Pake grid search!
Oke sekarang kita lihat sedikit ya contoh sederhana penggunaan ridge regression. Kita bakal bikin regresi untuk housing dataset.
Coba yuk kita lihat datanya. Kita bisa lihat ada perbedaan range antar variabelnya nih. Di data ke-4, terlihat rangenya jauh dari data no 9 dan 11.
Untuk ridge regression sendiri sudah tersedia kok, di librari scikit-learn. Tapi di sini, si lambda tadi diubah namanya jadi alpha. Nah, kalau kita ngelakuin full penalized, kita bisa pake alpha=1
Tapi apakah nilai itu bakal menghasilkan koefisien regresi yang optimal? Jelas belum tentu. Makanya, kita bisa pake grid search.
Hasilnya, kita bisa lihat kalau nilai alpha yang optimal adalah 0.51
Gitu deh, kira-kira tentang ridge regression ini! Selain ridge regression, masih ada satu lagi loh cara regularization, yaitu lasso regression dengan menggunakan L1 regularization.
Kalian juga bisa belajar per regresian ini di kelas ekonometrika Non Degree Program Data Scientist Pacmann loh! Pluss, kalian bisa nanya-nanya juga di luar jam kelas melalui discord bersama para lecturer.
Beli followers biar jadi selebgram?!
Awas, bisa diciduk Support Vector Machine loh!
.
.
.
A Thread
Mimin mau tanya nih, siapa disini yang hobi mantengin sosial media. Kalian pernah ga liat story influencer sampe titik-titik? Tapi pas dibuka isinya endorse semua 😔💔 Hmmm, kalian jadi males buka ga?
Sampai sekarang, sudah banyak loh kasus teman teman small business owner yang malah rugi karena endorse di orang yang salah, misalnya kaya yang satu ini nih🤧
Duhh rumah sakit pada penuh!🏥🤧
Prediksi RS yang tersedia pakai Random Forest yuk!
.
.
.
A Thread
Gak kerasa ya PPKM sudah memasuki hari ke 10, atau malah kerasa banget? Yang penting tetap stay at home ya.
Seperti berita berita yang diliput media massa, ternyata kasus maraknya covid juga sampai ke sosial media. Banyak saudara kita yang terdampak dan sulit mendapatkan penanganan medis. Bahkan sudah banyak rumah sakit yang kewalahan dan overcapacity cnnindonesia.com/nasional/20210…
Deteksi penyakit pake probabilitas? Gimana tuh caranya?! 😲🤯
Yuk belajar Aturan Bayes biar tau peluangnya!
.
.
A thread
Kalian tau gak kalo sampai saat ini, gaada satu alat tes pun yang punya akurasi 100% untuk mendeteksi COVID-19. Bahkan PCR yang jadi golden standard pun akurasi tertingginya 98%
Artinya, kalo ada 1000 orang dites, ada sekitar 20 orang yang akan mendapat hasil tes yang salah, bisa jadi ada yang terinfeksi tapi terdeteksi negatif (false negative), atau yang gak terinfeksi tapi terdeteksi positif (false positive). Wah terus gimana dong?