Memahami Linear Regression: Dari Marketing hingga Matematika

๐Ÿ“Š

Also Available as Interactive Presentation

Learn visually with slides and animations

View Presentation

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 BulananPenjualan Bulanan
1205
1257
1408
1106

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 (xx, pengeluaran iklan) dan variabel output (yy, penjualan) untuk memprediksi output berdasarkan variabel input pada data baru (masa depan). Kita mengasumsikan hubungannya adalah linear.

Apa itu Fungsi Linear?

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:

y^=f(x)=w0+w1x\hat{y} = f(x) = w_0 + w_1x

dimana w0w_0 adalah intercept dan w1w_1 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.

๐Ÿ’ก Mengapa Menambahkan Error Term?

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:

y^=f(x)=w0+w1x+ฮต\hat{y} = f(x) = w_0 + w_1x + \varepsilon

dimana ฮต\varepsilon (epsilon) adalah error term atau residual.

Memahami Error Function

Error (Residual)

Error untuk sebuah titik data (xi,yi)(x_i, y_i) adalah selisih antara nilai aktual dan nilai prediksi kita:

ei=yiโˆ’(w0+w1xi)e_i = y_i - (w_0 + w_1x_i)

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:

โˆ‘ei\sum e_i
โš ๏ธ Masalah dengan Penjumlahan Sederhana

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)

โˆ‘โˆฃeiโˆฃ\sum |e_i|
  • Memperlakukan semua error secara sama
  • Bobot yang sama untuk error kecil dan besar
  • Lebih robust terhadap outlier

Sum of Squared Errors (SSE)

โˆ‘ei2=โˆ‘(yiโˆ’(w0+w1xi))2\sum e_i^2 = \sum (y_i - (w_0 + w_1x_i))^2
  • Memberikan penalti lebih berat untuk error yang lebih besar
  • Error kecil mendapat bobot kecil
  • Error besar mendapat bobot besar
  • Secara matematis lebih mudah
๐Ÿ’ก Mengapa Memilih SSE?

Kita biasanya menggunakan SSE (Sum of Squared Errors) karena:

  1. Memberikan penalti berat pada outlier, membuat model kita lebih sensitif terhadap kesalahan besar
  2. Secara matematis dapat didifferensiasi, membuat optimisasi lebih mudah
  3. Memiliki sifat statistik yang baik (terkait dengan maximum likelihood estimation)

Metrik optimisasi kita menjadi:

SSE=โˆ‘ei2=โˆ‘(yiโˆ’(w0+w1xi))2\text{SSE} = \sum e_i^2 = \sum (y_i - (w_0 + w_1x_i))^2

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 x1x_1 (iklan TV) dan x2x_2 (iklan radio):

y^=f(x)=w0+w1x1+w2x2\hat{y} = f(x) = w_0 + w_1x_1 + w_2x_2

Metrik error kita menjadi:

โˆ‘ei2=โˆ‘(yiโˆ’(w0+w1xi1+w2xi2))2\sum e_i^2 = \sum (y_i - (w_0 + w_1x_{i1} + w_2x_{i2}))^2

Kasus Umum: Ruang n-Dimensi

Fungsi Linear Umum

Untuk nn variabel input, kita dapat menulis fungsi linear sebagai:

y^=f(x)=w0+w1x1+w2x2+โ‹ฏ+wnโˆ’1xnโˆ’1\hat{y} = f(x) = w_0 + w_1x_1 + w_2x_2 + \cdots + w_{n-1}x_{n-1}

Dan metrik error kita menjadi:

โˆ‘ei2=โˆ‘(yiโˆ’(w0+w1xi1+w2xi2+โ‹ฏ+wnโˆ’1xinโˆ’1))2\sum e_i^2 = \sum (y_i - (w_0 + w_1x_{i1} + w_2x_{i2} + \cdots + w_{n-1}x_{in-1}))^2

Formulasi Matrix: Pendekatan Elegan

Menuliskan semua suku tersebut menjadi merepotkan. Kita dapat menyederhanakan semuanya menggunakan notasi matrix!

๐Ÿ’ก Kekuatan 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:

SSE=โˆฅyโˆ’XWโˆฅ22\text{SSE} = \|y - XW\|_2^2

dimana:

  • XโˆˆRmร—nX \in \mathbb{R}^{m \times n} adalah matrix data input kita (mm observasi, nn fitur)
  • yโˆˆRmy \in \mathbb{R}^m adalah vector data output kita
  • WโˆˆRnW \in \mathbb{R}^n adalah vector bobot kita (parameter yang dicari)
  • โˆฅโ‹…โˆฅ22\|\cdot\|_2^2 adalah squared L2 norm (jumlah elemen yang dikuadratkan)

Menyelesaikan Bobot Optimal

Sekarang tiba bagian derivasi matematis untuk menemukan bobot WW 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:

f(W)=โˆฅyโˆ’XWโˆฅ22=(yโˆ’XW)T(yโˆ’XW)=(yTโˆ’WTXT)(yโˆ’XW)=yTyโˆ’WTXTyโˆ’yTXW+WTXTXW\begin{aligned} f(W) = \|y - XW\|_2^2 &= (y - XW)^T(y - XW) \\ &= (y^T - W^TX^T)(y - XW) \\ &= y^Ty - W^TX^Ty - y^TXW + W^TX^TXW \end{aligned}

Karena WTXTyW^TX^Ty dan yTXWy^TXW adalah skalar dan sama satu sama lain:

f(W)=โˆฅyโˆ’XWโˆฅ22=yTyโˆ’2yTXW+WTXTXWf(W) = \|y - XW\|_2^2 = y^Ty - 2y^TXW + W^TX^TXW

Untuk meminimalkan f(W)f(W), kita ambil gradient terhadap WW dan setel sama dengan nol:

โˆ‡f(W)=โˆ’2XTy+2XTXW=0\nabla f(W) = -2X^Ty + 2X^TXW = 0

Menyelesaikan untuk WW:

XTXW=XTyX^TXW = X^Ty
Normal Equation

Vector bobot optimal diberikan oleh normal equation:

W=(XTX)โˆ’1XTyW = (X^TX)^{-1}X^Ty

Ini adalah solusi closed-form untuk linear regression!

Tantangan Komputasional

Kita telah menemukan formula yang indah, tapi ada masalah praktis yang mengintai di bawahnya.

โš ๏ธ Computational Complexity

Menghitung inverse dari sebuah matrix adalah komputasional yang mahal:

  • Untuk 1.000 observasi: Kita perlu menginvers matrix 1000ร—10001000 \times 1000
  • Untuk 100.000 observasi: Kita perlu menginvers matrix 100.000ร—100.000100.000 \times 100.000

Inversi matrix memiliki complexity O(n3)O(n^3), membuat solusi ini tidak praktis untuk dataset besar.

๐Ÿ’ก Solusinya: Metode Iteratif

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:

  1. Linear regression menemukan hubungan linear yang paling sesuai antara variabel input dan output
  2. Kita mengukur โ€œterbaikโ€ menggunakan Sum of Squared Errors (SSE)
  3. Normal equation W=(XTX)โˆ’1XTyW = (X^TX)^{-1}X^Ty memberikan solusi optimal
  4. Untuk dataset besar, kita memerlukan metode iteratif seperti Gradient Descent
  5. Linear regression meluas secara natural dari satu variabel ke banyak dimensi

Soal Latihan

Level 1:

Diberikan tiga titik data: (1,2)(1, 2), (2,4)(2, 4), dan (3,5)(3, 5), hitung error eie_i untuk setiap titik jika garis kita adalah y=1+1.5xy = 1 + 1.5x.

Klik untuk petunjuk Gunakan formula ei=yiโˆ’(w0+w1xi)e_i = y_i - (w_0 + w_1x_i) dimana w0=1w_0 = 1 dan w1=1.5w_1 = 1.5.

Klik untuk solusi

Untuk setiap titik:

  • Titik 1: e1=2โˆ’(1+1.5โ‹…1)=2โˆ’2.5=โˆ’0.5e_1 = 2 - (1 + 1.5 \cdot 1) = 2 - 2.5 = -0.5
  • Titik 2: e2=4โˆ’(1+1.5โ‹…2)=4โˆ’4=0e_2 = 4 - (1 + 1.5 \cdot 2) = 4 - 4 = 0
  • Titik 3: e3=5โˆ’(1+1.5โ‹…3)=5โˆ’5.5=โˆ’0.5e_3 = 5 - (1 + 1.5 \cdot 3) = 5 - 5.5 = -0.5

Sum of Squared Errors: SSE=(โˆ’0.5)2+02+(โˆ’0.5)2=0.5\text{SSE} = (-0.5)^2 + 0^2 + (-0.5)^2 = 0.5

Level 2:

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

  1. James, G., Witten, D., Hastie, T., & Tibshirani, R. - Introduction to Statistical Learning
  2. Posik, P. - Linear Methods for Regression and Classification
  3. 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!