Memahami Linear Regression: Dari Marketing hingga Matematika
Bayangkan Anda adalah seorang manajer marketing yang mencoba memprediksi penjualan bulan depan berdasarkan anggaran iklan Anda. Berapa banyak yang harus Anda keluarkan untuk mencapai target? Di sinilah linear regression berperanโsalah satu teknik paling fundamental dalam machine learning dan statistik. Mari kita eksplorasi bagaimana kita dapat menemukan hubungan matematis dalam data untuk membuat prediksi yang akurat.
Masalah Marketing
Bagaimana jika kita bisa memprediksi penjualan di masa depan berdasarkan pengeluaran iklan kita? Linear regression membuat ini mungkin dengan menemukan pola dalam data historis.
Dataset Marketing
Misalkan kita memiliki data historis berikut dari perusahaan kita:
| Pengeluaran Iklan TV Bulanan | Penjualan Bulanan |
|---|---|
| 120 | 5 |
| 125 | 7 |
| 140 | 8 |
| 110 | 6 |
Tujuan kita: Menemukan fungsi yang merepresentasikan hubungan antara pengeluaran iklan (input) dan penjualan (output) untuk memprediksi penjualan di masa depan.
Kita ingin menemukan fungsi yang merepresentasikan hubungan antara variabel input (, pengeluaran iklan) dan variabel output (, penjualan) untuk memprediksi output berdasarkan variabel input pada data baru (masa depan). Kita mengasumsikan hubungannya adalah linear.
Apa itu Fungsi Linear?
Sebuah fungsi linear adalah fungsi yang membentuk:
- Sebuah garis lurus dalam ruang 2 dimensi
- Sebuah bidang datar dalam ruang 3 dimensi
- Sebuah hyperplane dalam dimensi yang lebih tinggi
Dalam istilah matematis, fungsi linear sederhana dapat ditulis sebagai:
dimana adalah intercept dan adalah slope.
Sifat Stokastik dari Data Nyata
Pada kenyataannya, kita tidak tahu persis semua variabel yang mempengaruhi penjualan bulanan kita. Ada banyak faktor di luar iklan TVโmusiman, aksi kompetitor, kondisi ekonomi, dan kebetulan acak. Ketidakpastian ini berarti fungsi kita perlu memperhitungkan keacakan.
Hubungan di dunia nyata tidak pernah sempurna. Dengan menambahkan error term, kita mengakui bahwa model kita tidak akan menangkap segalanya dengan sempurnaโdan itu tidak masalah! Kita mencari aproksimasi yang berguna, bukan prediksi yang sempurna.
Kita memodifikasi fungsi kita untuk menyertakan variabel acak:
dimana (epsilon) adalah error term atau residual.
Memahami Error Function
Error untuk sebuah titik data adalah selisih antara nilai aktual dan nilai prediksi kita:
Ini merepresentasikan seberapa jauh prediksi kita dari nilai sebenarnya.
Tujuan kita adalah meminimalkan error function ini. Fungsi linear kita mungkin tidak pas persis dengan data, tapi kita dapat mentoleransi beberapa errorโkita hanya ingin membuatnya sekecil mungkin di seluruh titik data kita.
Menemukan Garis Terbaik
Ada tak terhingga garis (fungsi linear) yang bisa kita gambar melalui data kita. Bagaimana kita menemukan yang terbaik?
Kita ingin mencari garis yang membuat total error terkecil di seluruh observasi. Tapi bagaimana kita mengukur โtotal errorโ?
Percobaan Pertama: Sum of Errors
Naluri pertama kita mungkin hanya menjumlahkan semua error:
Pendekatan ini memiliki cacat kritis! Pertimbangkan sebuah garis yang diposisikan di atas semua titik data kita. Setiap error akan negatif. Jika kita memindahkan garis lebih ke atas, error menjadi lebih negatif, membuat metrik kita lebih buruk ke arah yang salah.
Masalahnya: Error positif dan negatif saling meniadakan, sehingga metrik ini tidak menangkap besaran kesalahan kita dengan benar.
Pendekatan yang Lebih Baik: Metrik Non-Negatif
Kita memerlukan metrik dimana semua error adalah non-negatif. Dua pilihan populer adalah:
Sum of Absolute Errors (SAE)
- Memperlakukan semua error secara sama
- Bobot yang sama untuk error kecil dan besar
- Lebih robust terhadap outlier
Sum of Squared Errors (SSE)
- Memberikan penalti lebih berat untuk error yang lebih besar
- Error kecil mendapat bobot kecil
- Error besar mendapat bobot besar
- Secara matematis lebih mudah
Kita biasanya menggunakan SSE (Sum of Squared Errors) karena:
- Memberikan penalti berat pada outlier, membuat model kita lebih sensitif terhadap kesalahan besar
- Secara matematis dapat didifferensiasi, membuat optimisasi lebih mudah
- Memiliki sifat statistik yang baik (terkait dengan maximum likelihood estimation)
Metrik optimisasi kita menjadi:
Memperluas ke Beberapa Variabel
Sejauh ini, kita telah melihat hubungan linear dengan satu variabel input. Tapi bagaimana jika penjualan kita bergantung pada beberapa faktorโiklan TV, iklan radio, dan pengeluaran media sosial?
Dua Variabel: Sebuah Bidang Datar
Ketika kita memiliki dua variabel input, hubungan linear kita menjadi sebuah bidang datar dalam ruang 3D.
Fungsi Linear Dua Variabel
Dengan dua variabel input (iklan TV) dan (iklan radio):
Metrik error kita menjadi:
Kasus Umum: Ruang n-Dimensi
Untuk variabel input, kita dapat menulis fungsi linear sebagai:
Dan metrik error kita menjadi:
Formulasi Matrix: Pendekatan Elegan
Menuliskan semua suku tersebut menjadi merepotkan. Kita dapat menyederhanakan semuanya menggunakan notasi matrix!
Notasi matrix bukan hanya tentang membuat persamaan terlihat lebih rapiโia memungkinkan kita menangani ribuan variabel dengan rumus sederhana yang sama!
Kita dapat mengekspresikan seluruh masalah kita secara kompak:
dimana:
- adalah matrix data input kita ( observasi, fitur)
- adalah vector data output kita
- adalah vector bobot kita (parameter yang dicari)
- adalah squared L2 norm (jumlah elemen yang dikuadratkan)
Menyelesaikan Bobot Optimal
Sekarang tiba bagian derivasi matematis untuk menemukan bobot yang meminimalkan error function kita.
Kita akan menggunakan kalkulus untuk menemukan minimum dari error function kita. Insight kunci: pada titik minimum, turunan (gradient) sama dengan nol!
Mari kita ekspansi ekspresi matrix:
Karena dan adalah skalar dan sama satu sama lain:
Untuk meminimalkan , kita ambil gradient terhadap dan setel sama dengan nol:
Menyelesaikan untuk :
Vector bobot optimal diberikan oleh normal equation:
Ini adalah solusi closed-form untuk linear regression!
Tantangan Komputasional
Kita telah menemukan formula yang indah, tapi ada masalah praktis yang mengintai di bawahnya.
Menghitung inverse dari sebuah matrix adalah komputasional yang mahal:
- Untuk 1.000 observasi: Kita perlu menginvers matrix
- Untuk 100.000 observasi: Kita perlu menginvers matrix
Inversi matrix memiliki complexity , membuat solusi ini tidak praktis untuk dataset besar.
Daripada menghitung inverse secara langsung, kita menggunakan metode optimisasi iteratif seperti Gradient Descent. Metode-metode ini:
- Mengambil langkah kecil menuju minimum
- Tidak memerlukan inversi matrix
- Lebih scalable untuk dataset besar
- Adalah fondasi dari machine learning modern
Gradient Descent akan dijelaskan secara detail di posting berikutnya!
Poin-Poin Utama
Yang Telah Kita Pelajari:
- Linear regression menemukan hubungan linear yang paling sesuai antara variabel input dan output
- Kita mengukur โterbaikโ menggunakan Sum of Squared Errors (SSE)
- Normal equation memberikan solusi optimal
- Untuk dataset besar, kita memerlukan metode iteratif seperti Gradient Descent
- Linear regression meluas secara natural dari satu variabel ke banyak dimensi
Soal Latihan
Diberikan tiga titik data: , , dan , hitung error untuk setiap titik jika garis kita adalah .
Klik untuk petunjuk
Gunakan formula dimana dan .
Klik untuk solusi
Untuk setiap titik:
- Titik 1:
- Titik 2:
- Titik 3:
Sum of Squared Errors:
Jelaskan mengapa kita mengkuadratkan error dalam SSE daripada hanya mengambil nilai absolut. Apa trade-off-nya?
Klik untuk petunjuk
Pikirkan tentang bagaimana besaran error yang berbeda diberi bobot, dan pertimbangkan sifat matematis yang diperlukan untuk optimisasi.
Klik untuk solusi
Keuntungan SSE (squared errors):
- Memberikan penalti berat pada error besar (outlier memiliki dampak kuadratik)
- Dapat didifferensiasi di semua titik (optimisasi yang smooth)
- Terkait dengan asumsi Gaussian dalam statistik
- Minimum global yang unik (fungsi konveks)
Keuntungan SAE (absolute errors):
- Lebih robust terhadap outlier
- Memperlakukan semua error secara sama
- Lebih baik untuk data dengan distribusi heavy-tailed
Trade-off: SSE secara matematis lebih mudah dan umum digunakan, tapi SAE lebih robust ketika Anda memiliki outlier atau tidak ingin terlalu memberikan penalti pada error besar.
Referensi
- James, G., Witten, D., Hastie, T., & Tibshirani, R. - Introduction to Statistical Learning
- Posik, P. - Linear Methods for Regression and Classification
- Boyd, S., & Vandenberghe, L. - Convex Optimization
Apa Selanjutnya?
Di posting berikutnya, kita akan mendalami Gradient Descentโmetode optimisasi iteratif yang membuat linear regression praktis untuk dataset besar dan membentuk fondasi untuk melatih neural network!