Apa itu Regresi Linier?
Regresi linier adalah metode statistik yang digunakan untuk memahami hubungan antara dua variabel, yaitu variabel dependen dan independen. Tujuannya adalah untuk menemukan hubungan linier antara variabel dependen dan independen. Regresi linier adalah salah satu teknik yang paling umum digunakan dalam analisis data dan machine learning.
Rumus regresi linier sederhana adalah sebagai berikut:
Di mana:
y
adalah variabel dependen (target)
x
adalah variabel independen (fitur)
m
adalah koefisien regresi
c
adalah konstanta
Regresi Linear cocok digunakan ketika kita ingin memodelkan hubungan linier/garis lurus antara dua variabel. Misalnya, kita ingin memprediksi harga rumah berdasarkan luas tanah, atau memprediksi penjualan produk berdasarkan biaya iklan.
Studi Kasus
Berikut adalah contoh dataset sederhana yang menunjukkan hubungan antara jam belajar per hari (x) dengan nilai ujian matematika (y):
Jam Belajar (x) |
Nilai Ujian (y) |
1 |
2.1 |
2 |
4.0 |
3 |
6.3 |
4 |
8.1 |
5 |
9.9 |
Dataset di atas menunjukkan hubungan yang cenderung linier antara waktu belajar dan nilai ujian, di mana nilai ujian siswa meningkat seiring dengan bertambahnya jam belajar per hari.
Kita akan menggunakan regresi linier untuk memodelkan hubungan ini dan memprediksi nilai ujian berdasarkan jam belajar.
Implementasi Regresi Linier Statistika Sederhana
Pertama, kita akan menghitung koefisien regresi m
dan konstanta c
menggunakan rumus regresi linier:
# Hitung rata-rata x dan y
mean_x = sum(x) / len(x)
mean_y = sum(y) / len(y)
# Hitung koefisien regresi m
numerator = sum((xi - mean_x) * (yi - mean_y) for xi, yi in zip(x, y))
denominator = sum((xi - mean_x) ** 2 for xi in x)
m = numerator / denominator
# Hitung konstanta c
c = mean_y - m * mean_x
print(f"m = {m:.2f}")
print(f"c = {c:.2f}")
Setelah menghitung koefisien regresi m
dan konstanta c
, kita dapat menggunakan rumus regresi linier untuk memprediksi nilai ujian berdasarkan jam belajar:
# Prediksi nilai ujian untuk jam belajar 6
x_new = 6
y_pred = m * x_new + c
print(f"Prediksi nilai ujian untuk jam belajar {x_new} adalah {y_pred:.1f}")
Prediksi nilai ujian untuk jam belajar 6 adalah 11.9
Implementasi Regresi Linier dengan Scikit-Learn
Python menyediakan library untuk machine learning yang disebut Scikit-Learn yang memudahkan kita dalam mengimplementasikan regresi linier dan model machine learning lainnya. Berikut adalah contoh implementasi regresi linier menggunakan Scikit-Learn:
from sklearn.linear_model import LinearRegression
# Inisialisasi model regresi linier
model = LinearRegression()
# Melatih model menggunakan data
model.fit([[xi] for xi in x], y)
# Prediksi nilai ujian untuk jam belajar 6
x_new = [[6]]
y_pred = model.predict(x_new)[0]
print(f"Prediksi nilai ujian untuk jam belajar {x_new[0][0]} adalah {y_pred:.1f}")
Prediksi nilai ujian untuk jam belajar 6 adalah 11.9
Pada kode di atas, kita menggunakan LinearRegression
dari Scikit-Learn untuk membuat model regresi linier.
Kemudian, kita melatih model menggunakan data jam belajar dan nilai ujian. Kode model.fit([[xi] for xi in x], y)
digunakan untuk melatih model dengan data x
dan y
.
Terakhir, kita menggunakan model untuk memprediksi nilai ujian untuk jam belajar 6 dengan kode model.predict(x_new)[0]
.
Implementasi regresi linier menggunakan Scikit-Learn lebih mudah dan efisien daripada menghitung koefisien regresi dan konstanta secara manual. Terlebih untuk model yang lebih kompleks, yang biasanya tidak bisa dihitung secara analitik.
Kesimpulan
Regresi linier adalah teknik statistik yang digunakan untuk memodelkan hubungan linier antara dua variabel. Dalam kasus ini, kita menggunakan regresi linier untuk memprediksi nilai ujian berdasarkan jam belajar. Kita dapat mengimplementasikan regresi linier dari nol menggunakan Python atau menggunakan library machine learning seperti Scikit-Learn untuk memudahkan prosesnya.