Linear Regression
Pendahuluan
Dalam banyak kasus nyata, kita ingin mengetahui apakah suatu variabel memengaruhi variabel lain, misalnya:
- Berapa nilai ujian yang dapat diprediksi dari jumlah jam belajar?
- Seberapa besar pengaruh pengeluaran iklan terhadap penjualan?
- Bagaimana tren harga properti dari waktu ke waktu?
Regresi membantu kita menjawab pertanyaan tersebut secara kuantitatif. Dengan data historis, kita dapat membangun model untuk memperkirakan nilai target di masa mendatang.
Konsep Dasar
Pada regresi linear sederhana, hubungan antara dua variabel diasumsikan berbentuk garis lurus.
- Variabel independen (X): variabel input atau prediktor.
- Variabel dependen (Y): variabel output atau target yang diprediksi.
- Intercept: titik potong garis pada sumbu Y.
- Slope: kemiringan garis, menunjukkan perubahan Y untuk setiap kenaikan 1 satuan X.
- Error / residual: selisih antara nilai aktual dan nilai prediksi.
Contoh sederhana:
- X = jumlah jam belajar
- Y = nilai ujian
Semakin besar nilai X, sering kali Y juga meningkat. Hubungan seperti ini disebut hubungan linear positif.
Persamaan Matematis
Model regresi linear sederhana dapat dituliskan sebagai berikut:
atau dalam bentuk prediksi:
Keterangan:
- = nilai prediksi
- = intercept
- = slope atau kemiringan garis
- = nilai input
Tujuan model adalah mencari garis terbaik yang paling sesuai dengan data. Umumnya hal ini dilakukan dengan metode kuadrat terkecil (least squares), yaitu meminimalkan jumlah kuadrat selisih antara nilai aktual dan nilai prediksi.
Asumsi Dasar Regresi Linear
Klik untuk melihat asumsi model
Agar hasil regresi linear lebih baik untuk dianalisis, biasanya diasumsikan bahwa:
- Hubungan antara X dan Y bersifat linear.
- Residual memiliki rata-rata mendekati nol.
- Varians residual konstan pada semua nilai X (homoskedastisitas).
- Residual saling independen atau tidak berkorelasi.
- Pada regresi berganda, antar variabel bebas tidak mengalami multikolinearitas yang kuat.
Tiga Rumus Penting untuk Mencari Garis Regresi
Berikut tiga cara umum untuk menghitung slope dan intercept pada regresi linear sederhana.
Menggunakan jumlah total
Keterangan variabel:
- = intercept atau titik potong garis pada sumbu Y
- = slope atau kemiringan garis regresi
- = jumlah data
- = jumlah seluruh nilai
- = jumlah seluruh nilai
- = jumlah hasil perkalian setiap pasangan dan
- = jumlah kuadrat seluruh nilai
Cocok digunakan saat melakukan perhitungan manual langsung dari data mentah.
Contoh Data
Misalkan tersedia data jam belajar dan nilai ujian dari 5 siswa.
| Siswa | X (Jam Belajar) | Y (Nilai Ujian) |
|---|---|---|
| A | 2 | 65 |
| B | 4 | 70 |
| C | 6 | 75 |
| D | 8 | 85 |
| E | 10 | 95 |
Jumlah data:
Langkah Awal Perhitungan
Dari data di atas diperoleh:
Selain itu:
Contoh Perhitungan Garis Regresi
Metode 1: Jumlah total
Hitung slope:
Hitung intercept:
Sehingga persamaan regresinya:
Metode 2: Varians dan kovarians
Hitung slope:
Hitung intercept:
Hasilnya tetap:
Metode 3: Deviasi dari rata-rata
Hitung slope:
Hitung intercept:
Persamaan akhirnya juga sama:
Interpretasi Hasil
Persamaan:
Interpretasinya:
- Intercept 55.5 berarti saat jam belajar , nilai prediksi ujian adalah 55.5.
- Slope 3.75 berarti setiap tambahan 1 jam belajar akan meningkatkan nilai ujian yang diprediksi sekitar 3.75 poin.
Prediksi Menggunakan Model
Misalnya seorang siswa belajar selama 7 jam, maka nilai prediksinya adalah:
Jadi, nilai ujian yang diprediksi adalah 81.75.
Visualisasi Regresi
Jika data digambarkan dalam scatter plot, maka garis regresi akan membentuk garis lurus yang mendekati titik-titik data.
- Titik biru mewakili data aktual.
- Garis lurus mewakili hasil prediksi model regresi.
- Semakin dekat titik ke garis, semakin kecil error prediksi.
Implementasi Python
Berikut contoh implementasi regresi linear sederhana menggunakan Python.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# Data
X = np.array([2, 4, 6, 8, 10]).reshape(-1, 1)
y = np.array([65, 70, 75, 85, 95])
# Model
model = LinearRegression()
model.fit(X, y)
# Parameter model
intercept = model.intercept_
slope = model.coef_[0]
print("Intercept:", intercept)
print("Slope:", slope)
# Prediksi
x_line = np.linspace(2, 10, 100).reshape(-1, 1)
y_line = model.predict(x_line)
# Plot
plt.scatter(X, y, label="Data Asli")
plt.plot(x_line, y_line, label="Garis Regresi")
plt.xlabel("Jam Belajar (X)")
plt.ylabel("Nilai Ujian (Y)")
plt.title("Plot Regresi Linear")
plt.legend()
plt.show()Kelebihan dan Keterbatasan
| Aspek | Kelebihan | Keterbatasan |
|---|---|---|
| Simpel | Mudah dipahami dan dihitung | Tidak cocok untuk pola data yang kompleks |
| Cepat | Komputasi ringan | Kurang fleksibel untuk prediksi yang lebih canggih |
| Interpretatif | Koefisien mudah ditafsirkan | Sensitif terhadap outlier |
| Dasar yang kuat | Sangat baik untuk pengantar machine learning | Bergantung pada asumsi statistik tertentu |
Pengembangan Lanjutan
Setelah memahami regresi linear sederhana, materi dapat dikembangkan ke topik berikut:
- Regresi linear berganda
- Regresi polinomial
- Regresi logistik
- Ridge regression
- Lasso regression
- Elastic net
- Robust regression
- Stepwise regression
- Quantile regression
- Generalized Linear Model (GLM)
- Support Vector Regression (SVR)
- Tree-based regression
Ringkasan
Poin utama yang perlu diingat:
- Regresi linear memodelkan hubungan linear antara X dan Y.
- Bentuk umum model adalah .
- Slope menunjukkan perubahan Y terhadap X.
- Intercept menunjukkan nilai Y ketika X = 0.
- Tiga pendekatan perhitungan akan menghasilkan garis regresi yang sama jika datanya sama.
Latihan Kelas
Gunakan data berikut untuk menyusun model regresi linear.
| No | Tahun (X) | Harga Tanah per m² (Y) |
|---|---|---|
| 1 | 2005 | 150000 |
| 2 | 2006 | 160000 |
| 3 | 2007 | 165000 |
| 4 | 2008 | 170000 |
| 5 | 2009 | 180000 |
| 6 | 2010 | 195000 |
| 7 | 2011 | 210000 |
| 8 | 2012 | 220000 |
| 9 | 2013 | 235000 |
| 10 | 2014 | 250000 |
Tugas yang dikerjakan:
- Buat tabel data di Excel atau spreadsheet.
- Hitung , , , dan .
- Hitung rata-rata dan .
- Hitung slope dan intercept dengan rumus yang telah dipelajari.
- Susun persamaan regresi linear .
- Gunakan model tersebut untuk memprediksi harga tanah pada tahun 2016 dan 2020.
- Buat grafik scatter plot dan garis regresi.
Penutup
Regresi linear adalah pintu masuk yang sangat baik untuk mempelajari supervised learning. Setelah memahami konsep ini, Anda akan lebih mudah mempelajari model regresi yang lebih kompleks maupun algoritma machine learning lainnya.