Skip to content
Linear Regression

Linear Regression

Regresi linear adalah metode dasar dalam machine learning dan statistika untuk memodelkan hubungan antara variabel input (X) dan variabel target (Y), lalu menggunakan hubungan tersebut untuk melakukan prediksi.

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:

Y=β0+β1X+ε Y = \beta_0 + \beta_1 X + \varepsilon

atau dalam bentuk prediksi:

y^=a+bx \hat{y} = a + bx

Keterangan:

  • y^\hat{y} = nilai prediksi
  • aa = intercept
  • bb = slope atau kemiringan garis
  • xx = 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:

  1. Hubungan antara X dan Y bersifat linear.
  2. Residual memiliki rata-rata mendekati nol.
  3. Varians residual konstan pada semua nilai X (homoskedastisitas).
  4. Residual saling independen atau tidak berkorelasi.
  5. 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

b=nxy(x)(y)nx2(x)2 b = \frac{n\sum xy - (\sum x)(\sum y)}{n\sum x^2 - (\sum x)^2} a=ybxn a = \frac{\sum y - b\sum x}{n}

Keterangan variabel:

  • aa = intercept atau titik potong garis pada sumbu Y
  • bb = slope atau kemiringan garis regresi
  • nn = jumlah data
  • x\sum x = jumlah seluruh nilai xx
  • y\sum y = jumlah seluruh nilai yy
  • xy\sum xy = jumlah hasil perkalian setiap pasangan xx dan yy
  • x2\sum x^2 = jumlah kuadrat seluruh nilai xx

Cocok digunakan saat melakukan perhitungan manual langsung dari data mentah.

Contoh Data

Misalkan tersedia data jam belajar dan nilai ujian dari 5 siswa.

SiswaX (Jam Belajar)Y (Nilai Ujian)
A265
B470
C675
D885
E1095

Jumlah data:

n=5 n = 5

Langkah Awal Perhitungan

Dari data di atas diperoleh:

  • x=30\sum x = 30
  • y=390\sum y = 390
  • xy=2490\sum xy = 2490
  • x2=220\sum x^2 = 220
  • xˉ=6\bar{x} = 6
  • yˉ=78\bar{y} = 78

Selain itu:

Sxy=24905(6)(78)=498468=30 S_{xy} = \frac{2490}{5} - (6)(78) = 498 - 468 = 30 Sx2=220562=4436=8 S_x^2 = \frac{220}{5} - 6^2 = 44 - 36 = 8 (xxˉ)2=40,(xxˉ)(yyˉ)=150 \sum (x-\bar{x})^2 = 40, \qquad \sum (x-\bar{x})(y-\bar{y}) = 150

Contoh Perhitungan Garis Regresi

Metode 1: Jumlah total

Hitung slope:

b=5(2490)(30)(390)5(220)302 b = \frac{5(2490) - (30)(390)}{5(220) - 30^2} b=12450117001100900=750200=3.75 b = \frac{12450 - 11700}{1100 - 900} = \frac{750}{200} = 3.75

Hitung intercept:

a=3903.75(30)5 a = \frac{390 - 3.75(30)}{5} a=390112.55=277.55=55.5 a = \frac{390 - 112.5}{5} = \frac{277.5}{5} = 55.5

Sehingga persamaan regresinya:

y^=55.5+3.75x \hat{y} = 55.5 + 3.75x

Metode 2: Varians dan kovarians

Hitung slope:

b=SxySx2=308=3.75 b = \frac{S_{xy}}{S_x^2} = \frac{30}{8} = 3.75

Hitung intercept:

a=yˉbxˉ=783.75(6)=7822.5=55.5 a = \bar{y} - b\bar{x} = 78 - 3.75(6) = 78 - 22.5 = 55.5

Hasilnya tetap:

y^=55.5+3.75x \hat{y} = 55.5 + 3.75x

Metode 3: Deviasi dari rata-rata

Hitung slope:

b=(xxˉ)(yyˉ)(xxˉ)2=15040=3.75 b = \frac{\sum (x-\bar{x})(y-\bar{y})}{\sum (x-\bar{x})^2} = \frac{150}{40} = 3.75

Hitung intercept:

a=yˉbxˉ=783.75(6)=55.5 a = \bar{y} - b\bar{x} = 78 - 3.75(6) = 55.5

Persamaan akhirnya juga sama:

y^=55.5+3.75x \hat{y} = 55.5 + 3.75x

Interpretasi Hasil

Persamaan:

y^=55.5+3.75x \hat{y} = 55.5 + 3.75x

Interpretasinya:

  • Intercept 55.5 berarti saat jam belajar x=0x = 0, 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.
Model regresi tidak selalu menunjukkan hubungan sebab-akibat mutlak. Model ini menunjukkan pola hubungan berdasarkan data yang tersedia.

Prediksi Menggunakan Model

Misalnya seorang siswa belajar selama 7 jam, maka nilai prediksinya adalah:

y^=55.5+3.75(7) \hat{y} = 55.5 + 3.75(7) y^=55.5+26.25=81.75 \hat{y} = 55.5 + 26.25 = 81.75

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

AspekKelebihanKeterbatasan
SimpelMudah dipahami dan dihitungTidak cocok untuk pola data yang kompleks
CepatKomputasi ringanKurang fleksibel untuk prediksi yang lebih canggih
InterpretatifKoefisien mudah ditafsirkanSensitif terhadap outlier
Dasar yang kuatSangat baik untuk pengantar machine learningBergantung pada asumsi statistik tertentu

Pengembangan Lanjutan

Setelah memahami regresi linear sederhana, materi dapat dikembangkan ke topik berikut:

  1. Regresi linear berganda
  2. Regresi polinomial
  3. Regresi logistik
  4. Ridge regression
  5. Lasso regression
  6. Elastic net
  7. Robust regression
  8. Stepwise regression
  9. Quantile regression
  10. Generalized Linear Model (GLM)
  11. Support Vector Regression (SVR)
  12. Tree-based regression

Ringkasan

Regresi linear adalah fondasi penting dalam machine learning karena memperkenalkan cara memodelkan hubungan data, melakukan prediksi, memahami interpretasi koefisien, dan mengevaluasi pola hubungan antar variabel.

Poin utama yang perlu diingat:

  • Regresi linear memodelkan hubungan linear antara X dan Y.
  • Bentuk umum model adalah y^=a+bx\hat{y} = a + bx.
  • 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.

NoTahun (X)Harga Tanah per m² (Y)
12005150000
22006160000
32007165000
42008170000
52009180000
62010195000
72011210000
82012220000
92013235000
102014250000

Tugas yang dikerjakan:

  1. Buat tabel data di Excel atau spreadsheet.
  2. Hitung X\sum X, Y\sum Y, XY\sum XY, dan X2\sum X^2.
  3. Hitung rata-rata Xˉ\bar{X} dan Yˉ\bar{Y}.
  4. Hitung slope dan intercept dengan rumus yang telah dipelajari.
  5. Susun persamaan regresi linear y^=a+bx\hat{y} = a + bx.
  6. Gunakan model tersebut untuk memprediksi harga tanah pada tahun 2016 dan 2020.
  7. 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.