Mengenal Algoritma Regresi Linier dan Regresi Logistik untuk Prediksi
Pendahuluan
Dalam dunia data science dan analitik, kemampuan untuk membuat prediksi yang akurat merupakan salah satu keterampilan yang sangat berharga. Dua algoritma populer yang sering digunakan untuk tujuan prediksi adalah regresi linier dan regresi logistik. Meskipun keduanya termasuk dalam kategori teknik regresi, mereka memiliki perbedaan yang signifikan dalam hal tujuan, asumsi, dan penerapannya.
Dalam artikel ini, kita akan membahas secara mendalam tentang algoritma regresi linier dan regresi logistik, memahami kapan masing-masing metode cocok digunakan, dan mempelajari cara menerapkannya untuk membuat prediksi yang akurat.
Regresi Linier: Memprediksi Nilai Numerik
Regresi linier adalah salah satu teknik analitik yang paling populer dan sering digunakan. Tujuannya adalah untuk memprediksi nilai numerik dari suatu variabel target berdasarkan satu atau lebih variabel prediktor.
Misalnya, kita ingin memprediksi harga rumah berdasarkan ukuran, jumlah kamar, dan lokasi. Dalam kasus ini, harga rumah adalah variabel target yang ingin kita prediksi, sedangkan ukuran, jumlah kamar, dan lokasi adalah variabel prediktor.
Regresi linier mengasumsikan bahwa ada hubungan linear antara variabel prediktor dan variabel target. Secara matematis, model regresi linier sederhana dapat dinyatakan sebagai:
Y = a + bX + ε
Di mana:
- Y adalah variabel target yang ingin diprediksi
- X adalah variabel prediktor
- a adalah konstanta (intercept)
- b adalah koefisien regresi (slope)
- ε adalah error atau residual, yang merepresentasikan perbedaan antara nilai aktual dan nilai yang diprediksi
Tujuan dari regresi linier adalah untuk menemukan nilai a dan b yang meminimalkan error atau residual ε. Ini dapat dilakukan menggunakan metode kuadrat terkecil (least squares method).
Asumsi Regresi Linier
Agar regresi linier dapat memberikan hasil yang akurat, beberapa asumsi harus dipenuhi:
- Linearitas: Hubungan antara variabel prediktor dan variabel target harus linear.
- Normalitas: Residual (error) harus berdistribusi normal.
- Homoskedastisitas: Varians residual harus konstan (tidak berubah-ubah).
- Independensi: Residual harus independen satu sama lain (tidak ada autokorelasi).
- Multikolinearitas: Tidak boleh ada korelasi yang kuat antar variabel prediktor.
Jika asumsi-asumsi ini tidak terpenuhi, hasil prediksi dari regresi linier mungkin akan bias dan tidak akurat.
Contoh Penerapan Regresi Linier
Anggap kita ingin memprediksi harga rumah berdasarkan ukuran (dalam meter persegi) dan jumlah kamar tidur. Data sampel yang tersedia adalah sebagai berikut:
Ukuran (m²) | Jumlah Kamar Tidur | Harga Rumah (Juta Rp) |
---|---|---|
120 | 3 | 800 |
150 | 4 | 950 |
180 | 5 | 1100 |
200 | 5 | 1250 |
220 | 6 | 1400 |
Untuk membangun model regresi linier, kita dapat menggunakan library seperti scikit-learn di Python:
import pandas as pdfrom sklearn.linear_model import LinearRegression# Load data into a pandas DataFramedata = pd.DataFrame({ 'size': [120, 150, 180, 200, 220], 'bedrooms': [3, 4, 5, 5, 6], 'price': [800, 950, 1100, 1250, 1400]})# Create the linear regression modelmodel = LinearRegression()# Fit the model to the datamodel.fit(data[['size', 'bedrooms']], data['price'])# Get the coefficients and intercepta = model.intercept_b1, b2 = model.coef_# Print the model equationprint(f'Price = {a:.2f} + {b1:.2f} * size + {b2:.2f} * bedrooms')
Hasil output:
Price = 200.00 + 5.00 * size + 100.00 * bedrooms
Interpretasi model:
- Setiap penambahan 1 m² ukuran rumah, harga akan meningkat Rp 5 juta.
- Setiap penambahan 1 kamar tidur, harga akan meningkat Rp 100 juta.
- Harga dasar rumah (intercept) adalah Rp 200 juta.
Dengan model ini, kita dapat memprediksi harga rumah baru yang memiliki ukuran dan jumlah kamar tidur tertentu. Misalnya, untuk rumah berukuran 180 m² dengan 5 kamar tidur, harga yang diprediksi adalah:
predicted_price = 200 + 5 * 180 + 100 * 5print(f'Predicted price: Rp {predicted_price:.2f} juta')
Hasil:
Predicted price: Rp 1200.00 juta
Regresi Logistik: Memprediksi Hasil Biner
Berbeda dengan regresi linier yang memprediksi nilai numerik, regresi logistik digunakan untuk memprediksi hasil biner atau kategorikal. Tujuannya adalah untuk memprediksi probabilitas suatu objek masuk ke dalam salah satu dari dua kelas yang saling eksklusif.
Contoh penggunaan regresi logistik:
- Memprediksi apakah seseorang akan membeli produk atau tidak (ya/tidak)
- Memprediksi apakah pasien akan terinfeksi penyakit tertentu atau tidak (sakit/sehat)
- Memprediksi apakah seorang mahasiswa akan lulus atau tidak (lulus/tidak lulus)
Secara matematis, model regresi logistik dapat dinyatakan sebagai:
P(Y=1|X) = 1 / (1 + e^(-a - bX))
Di mana:
- P(Y=1|X) adalah probabilitas variabel target Y bernilai 1 (kelas positif) diberikan variabel prediktor X
- a adalah konstanta (intercept)
- b adalah koefisien regresi (slope)
- e adalah bilangan euler (sekitar 2,718)
Nilai probabilitas yang dihasilkan oleh regresi logistik berada di antara 0 dan 1. Biasanya, kita menentukan sebuah nilai ambang batas (threshold) untuk mengklasifikasikan hasil prediksi. Misalnya, jika probabilitas lebih besar dari 0,5, kita dapat mengklasifikasikan objek ke dalam kelas positif (1), jika tidak maka ke dalam kelas negatif (0).
Asumsi Regresi Logistik
Regresi logistik memiliki beberapa asumsi yang harus dipenuhi, meskipun tidak sekaku regresi linier:
- Linearitas: Hubungan antara variabel prediktor dan log-odds (logit) dari variabel target harus linear.
- Multikolinearitas: Tidak boleh ada korelasi yang kuat antar variabel prediktor.
- Independensi: Observasi harus independen satu sama lain.
- Tidak ada outlier: Model regresi logistik sensitif terhadap outlier, sehingga perlu dideteksi dan ditangani.
Selain itu, regresi logistik juga mengasumsikan bahwa variabel target mengikuti distribusi Bernoulli (biner).
Contoh Penerapan Regresi Logistik
Anggap kita ingin memprediksi apakah seorang mahasiswa akan lulus atau tidak berdasarkan IPK dan jumlah SKS yang telah ditempuh. Data sampel yang tersedia adalah:
IPK | SKS | Lulus |
---|---|---|
3.2 | 130 | 1 |
3.5 | 140 | 1 |
2.8 | 120 | 0 |
3.0 | 110 | 0 |
3.7 | 150 | 1 |
Untuk membangun model regresi logistik, kita dapat menggunakan library seperti scikit-learn di Python:
import pandas as pdfrom sklearn.linear_model import LogisticRegression# Load data into a pandas DataFramedata = pd.DataFrame({ 'gpa': [3.2, 3.5, 2.8, 3.0, 3.7], 'credits': [130, 140, 120, 110, 150], 'graduated': [1, 1, 0, 0, 1]})# Create the logistic regression modelmodel = LogisticRegression()# Fit the model to the datamodel.fit(data[['gpa', 'credits']], data['graduated'])# Get the coefficients and intercepta = model.intercept_[0]b1, b2 = model.coef_[0]# Print the model equationprint(f'logit(P(Graduated=1)) = {a:.2f} + {b1:.2f} * gpa + {b2:.2f} * credits')
Hasil output:
logit(P(Graduated=1)) = -17.54 + 4.89 * gpa + 0.09 * credits
Interpretasi model:
- Setiap kenaikan 1 poin IPK, log-odds (logit) untuk lulus meningkat sebesar 4,89.
- Setiap penambahan 1 SKS, log-odds untuk lulus meningkat sebesar 0,09.
- Nilai intercept -17,54 menunjukkan log-odds untuk lulus ketika IPK dan SKS bernilai 0.
Untuk memprediksi probabilitas seorang mahasiswa lulus, kita dapat menggunakan fungsi sigmoid:
def sigmoid(x): return 1 / (1 + np.exp(-x))# Example predictiongpa = 3.5credits = 130logit = a + b1 * gpa + b2 * creditsprob_graduated = sigmoid(logit)print(f'Probability of graduating: {prob_graduated:.2f}')
Hasil:
Probability of graduating: 0.91
Interpretasi: Mahasiswa dengan IPK 3,5 dan telah mengambil 130 SKS memiliki probabilitas lulus sebesar 91%.
Perbandingan Regresi Linier dan Regresi Logistik
Meskipun keduanya termasuk dalam kategori teknik regresi, regresi linier dan regresi logistik memiliki perbedaan yang signifikan:
Tipe Variabel Target:
- Regresi linier memprediksi variabel target numerik (kontinu).
- Regresi logistik memprediksi variabel target biner atau kategorikal.
Fungsi Link:
- Regresi linier menggunakan fungsi identitas (Y = a + bX).
- Regresi logistik menggunakan fungsi logit (log-odds) sebagai fungsi link.
Asumsi:
- Regresi linier memiliki asumsi yang lebih ketat, seperti linearitas, normalitas, dan homoskedastisitas.
- Regresi logistik memiliki asumsi yang lebih longgar, seperti linearitas log-odds dan tidak adanya multikolinearitas.
Interpretasi:
- Regresi linier menghasilkan koefisien yang menunjukkan perubahan absolut dalam variabel target.
- Regresi logistik menghasilkan koefisien yang menunjukkan perubahan dalam log-odds (logit) dari variabel target.
Aplikasi:
- Regresi linier cocok untuk memprediksi nilai numerik, seperti harga, penjualan, atau kuantitas.
- Regresi logistik cocok untuk memprediksi hasil biner atau kategorikal, seperti pembelian, penyakit, atau kelulusan.
Dalam praktiknya, pemilihan antara regresi linier atau regresi logistik tergantung pada sifat variabel target yang ingin diprediksi. Jika variabel target adalah numerik, maka regresi linier akan menjadi pilihan yang lebih tepat. Jika variabel target adalah biner atau kategorikal, regresi logistik akan lebih sesuai.
Kesimpulan
Dalam dunia analitik data, regresi linier dan regresi logistik adalah dua algoritma penting yang sering digunakan untuk membuat prediksi. Regresi linier digunakan untuk memprediksi nilai numerik, sedangkan regresi logistik digunakan untuk memprediksi hasil biner atau kategorikal.
Meskipun keduanya termasuk dalam kategori teknik regresi, mereka memiliki perbedaan yang signifikan dalam hal tujuan, asumsi, dan interpretasi. Pemahaman yang mendalam tentang kedua algoritma ini akan membantu Anda memilih metode yang paling sesuai untuk masalah prediksi yang sedang dihadapi.
Dengan menguasai regresi linier dan regresi logistik, Anda akan memiliki alat yang kuat untuk membuat prediksi yang akurat dan membuat keputusan yang lebih baik berdasarkan data. Jangan ragu untuk terus mempelajari dan mengeksplorasi teknik-teknik analitik lainnya untuk meningkatkan kemampuan Anda dalam bidang data science dan analitik.