Regresi Linear Sederhana

Memprediksi Masa Depan dengan Garis Lurus

1. Apa itu Regresi Linear?

Regresi Linear adalah metode statistik untuk memodelkan hubungan antara dua variabel: Variabel Independen ($X$) (penyebab) dan Variabel Dependen ($Y$) (akibat). Tujuannya adalah mencari garis lurus terbaik yang bisa mewakili sebaran data tersebut.

Contoh penggunaan:

  • Memprediksi Penjualan ($Y$) berdasarkan Biaya Iklan ($X$).
  • Memprediksi Gaji ($Y$) berdasarkan Tahun Pengalaman ($X$).

2. Persamaan Matematika

Persamaan garis lurus dalam Regresi Linear ditulis sebagai:

$$ Y = a + bX $$

Dimana:

  • $Y$ : Variabel Dependen (yang ingin diprediksi).
  • $X$ : Variabel Independen (data input).
  • $a$ (Alpha/Intercept) : Nilai $Y$ ketika $X = 0$ (titik potong sumbu Y).
  • $b$ (Beta/Slope) : Kemiringan garis (seberapa besar perubahan $Y$ setiap kenaikan 1 unit $X$).

Cara Mencari Nilai $a$ dan $b$

Kita menggunakan metode Ordinary Least Squares (OLS) untuk meminimalkan error kuadrat.

Rumus Slope ($b$)
$$ b = \frac{n(\sum XY) - (\sum X)(\sum Y)}{n(\sum X^2) - (\sum X)^2} $$
Rumus Intercept ($a$)
$$ a = \frac{\sum Y - b(\sum X)}{n} $$
atau $a = \bar{Y} - b\bar{X}$ (Rata-rata Y dikurang b dikali rata-rata X)

* $n$ adalah jumlah data.

3. Contoh Perhitungan Manual Lengkap

Kasus: Prediksi Nilai Ujian berdasarkan Jam Belajar

Kita punya data 5 siswa sebagai berikut:

Siswa Jam Belajar ($X$) Nilai Ujian ($Y$)
A 1 50
B 2 60
C 3 70
D 4 80
E 5 90
Langkah 1: Buat Tabel Bantu Hitung

Kita perlu menghitung $X^2$ dan $XY$ untuk setiap baris, lalu menjumlahkannya ($\sum$).

No ($n$) $X$ $Y$ $X^2$ ($X \times X$) $XY$ ($X \times Y$)
1 1 50 1 50
2 2 60 4 120
3 3 70 9 210
4 4 80 16 320
5 5 90 25 450
n = 5 ΣX = 15 ΣY = 350 ΣX² = 55 ΣXY = 1150
Langkah 2: Hitung Nilai $b$ (Slope)

$$ b = \frac{n(\sum XY) - (\sum X)(\sum Y)}{n(\sum X^2) - (\sum X)^2} $$

Masukkan angka dari tabel:

$$ b = \frac{5(1150) - (15)(350)}{5(55) - (15)^2} $$ $$ b = \frac{5750 - 5250}{275 - 225} $$ $$ b = \frac{500}{50} $$ $$ b = 10 $$

Nilai $b = 10$. Artinya, setiap bertambah 1 jam belajar, nilai ujian naik 10 poin.
Langkah 3: Hitung Nilai $a$ (Intercept)

$$ a = \frac{\sum Y - b(\sum X)}{n} $$

Masukkan angka:

$$ a = \frac{350 - 10(15)}{5} $$ $$ a = \frac{350 - 150}{5} $$ $$ a = \frac{200}{5} $$ $$ a = 40 $$

Nilai $a = 40$. Artinya, jika tidak belajar sama sekali ($X=0$), nilai dasar siswa adalah 40.
Langkah 4: Susun Persamaan Akhir

$$ Y = 40 + 10X $$

Langkah 5: Prediksi (Implementasi Nyata)

Jika ada siswa baru (Siswa F) yang belajar selama 3.5 jam, berapakah prediksi nilainya?

Masukan $X = 3.5$ ke dalam rumus:
$$ Y = 40 + 10(3.5) $$ $$ Y = 40 + 35 $$ $$ Y = 75 $$

Kesimpulan: Siswa yang belajar 3.5 jam diprediksi mendapat nilai 75.

4. Contoh Implementasi Python

Dalam dunia kerja, kita tidak menghitung manual. Kita menggunakan library seperti Scikit-Learn.

import numpy as np
from sklearn.linear_model import LinearRegression

# 1. Siapkan Data (X harus bentuk 2D array)
X = np.array([[1], [2], [3], [4], [5]]) 
y = np.array([50, 60, 70, 80, 90])

# 2. Buat Model
model = LinearRegression()

# 3. Training
model.fit(X, y)

# 4. Ambil Koefisien (a dan b)
a = model.intercept_  # Output: 40.0
b = model.coef_[0]    # Output: 10.0

print(f"Persamaan: Y = {a:.0f} + {b:.0f}X")

# 5. Prediksi X = 3.5
prediksi = model.predict([[3.5]])
print(f"Prediksi untuk 3.5 jam: {prediksi[0]:.0f}")