Regresi Linear

Konsep Regresi Linear

Regresi linear adalah model linear yang mana sebuah model tersebut mengasumsikan adanya hubungan linear antara variabel input (variabel bebas) dengan variabel output (variabel bebas).

Dalam kasus regresi linear, variabel bebas biasa disimbolkan dengan (x) sedangkan variabel terikatnya disimbolkan dengan (y).

Untuk dapat memodelkan data menggunakan regresi linear, setidaknya kita harus memiliki satu variabel input yang kemudian dikenal dengan istilah simple linear regression.

Regresi linear merupakan model yang sangat menarik, hal ini karena representasinya paling simpel dan relatif mudah untuk dipahami. Mari kita pelajari lebih dalam tentang model ini.

Persamaan Regresi Linear

Persamaan regresi linear secara umum dapat dirumuskan seperti berikut.

$y = \beta + \sum_{i=1}^{n}\alpha_i x_i$ ...(1)

Dalam hal ini, y merupakan variabel output yang terikat tergantung pada variabel input (x). Sedangkan $\alpha$ merupakan gradien, $\beta$ merupakan bias dan masing-masing keduanya merupakan bilangan tertentu dari hasil hubungan x dan y.

Jika diperhatikan, dalam persamaan regresi di atas terdapat operator sum atau penjumlahan index (i) di setiap $\alpha$ dan $x$. Hal itu dikarenakan terdapat kemungkinan lebih dari satu variabel input (x).

Untuk kasus regresi linear sederhana yang hanya memiliki satu variabel input (x), maka persamaan regresinya menjadi seperti berikut.

$y = \beta + \alpha x$ ...(2)

Rumus Regresi Linear

Mungkin Anda bertanya-tanya bagaimana cara memperoleh nilai $\beta$ dan $\alpha$ dari hubungan x dan y?

Rumus Menghitung Gradien Regresi Linear

$\alpha = \frac{\sum_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y})}{\sum_{i=1}^{n} (x_{i}-\bar{x})^{2}}$ ...(3)

$\bar{x}, \bar{y}$ masing-masing merupakan nilai rata-rata x dan y.

$\bar{x}=\frac{\sum_{i=1}^{n}x_{i}}{n}$ ...(4)

$\bar{y}=\frac{\sum_{i=1}^{n}y_{i}}{n}$ ...(5)

Rumus Menghitung Bias Regresi Linear

$\beta = \bar{y} - \alpha \bar{x}$ ...(6)

Membuat Prediksi dengan Regresi Linear

Misalkan kita diberikan dataset sebagai berikut.

X Y
1 5
2 3
3 6
4 8
5 10
6 14
7 12
8 17
9 19
10 23

Berapa nilai Y saat nilai X 20?

Dengan menggunakan regresi linear, kita bisa membuat prediksi di nilai X 20 tersebut. Perhatikan, kita memiliki dataset variabel input (X) dan variabel output (Y). Ini memenuhi untuk dihitung menggunakan rumus persamaan (2).

Tapi masalahnya, kita tidak tahu berapa nilai gradien dan bias nya. Oleh karena itu, perlu dihitung terlebih dahulu menggunakan persamaan (3) dan (6).

1. Hitung Nilai Rata-Rata X

$\bar{x}=\frac{\sum_{i=1}^{10}x_{i}}{10} = \frac{1+2+3+4+5+6+7+8+9+10}{10} = 5.5$

2. Hitung Nilai Rata-Rata Y

$\bar{y}=\frac{\sum_{i=1}^{10}y_{i}}{10} = \frac{5+3+6+8+10+14+12+17+19+23}{10} = 11.7$

3. Menghitung Gradien

X Y $X_i-\bar{X}$ $(X_i-\bar{X})^2$ $Y_i-\bar{Y}$ $(X_i-\bar{X})(Y_i-\bar{Y})$
1 5 -4.5 20.25 -6.7 30.15
2 3 -3.5 12.25 -8.7 30.45
3 6 -2.5 6.25 -5.7 14.25
4 8 -1.5 2.25 -3.7 5.55
5 10 -0.5 0.25 -1.7 0.85
6 14 0.5 0.25 2.3 1.15
7 12 1.5 2.25 0.3 0.45
8 17 2.5 6.25 5.3 13.25
9 19 3.5 12.25 7.3 25.55
10 23 4.5 20.25 11.3 50.85

$\sum_{i=1}^{10}(x_{i}-\bar{x})(y_{i}-\bar{y}) = 172.5$

$\sum_{i=1}^{10} (x_{i}-\bar{x})^{2} = 82.5$

$\alpha = \frac{\sum_{i=1}^{10}(x_{i}-\bar{x})(y_{i}-\bar{y})}{\sum_{i=1}^{10} (x_{i}-\bar{x})^{2}} = \frac{172.5}{82.5} = 2.09$

4. Menghitung Bias

$\beta = \bar{y} - \alpha \bar{x} = 11.7 - (2.09\times5.5) = 0.19$

Maka sekarang kita peroleh persamaan regresi linear lengkapnya menjadi seperti berikut.

$Y = 0.19 + 2.09X$

Mari kita gunakan untuk memprediksi nilai Y saat X 20.

$Y = 0.19 + (2.09\times20) = 41.99$

Program Regresi Linear Menggunakan Python

Berikut ini program regresi linear sederhana menggunakan python.

import numpy as np

def regresi_linear(x, y):
   x_bar = np.mean(x)
   y_bar = np.mean(y)

   numerator = np.sum( (x-x_bar)*(y-y_bar) )
   denumerator = np.sum( pow((x - x_bar), 2) )
   alpha = numerator/denumerator
   beta = y_bar - (alpha*x_bar)
   return alpha, beta

def prediksi(x, alpha, beta):
   return beta + (alpha*x)

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([5, 3, 6, 8, 10, 14, 12, 17, 19, 23])

alpha, beta = regresi_linear(x, y)
nilai_perlu_diprediksi = 20
nilai_prediksi = prediksi(nilai_perlu_diprediksi, alpha, beta)

print(f"Nilai gradien alpha : {alpha}")
print(f"Nilai bias beta : {beta}")
print(f"Nilai perlu diprediksi : {nilai_perlu_diprediksi}")
print(f"Nilai prediksi : {nilai_prediksi}")

Output:

Nilai gradien alpha : 2.090909090909091

Nilai bias beta : 0.1999999999999993

Nilai perlu diprediksi : 20

Nilai prediksi : 42.018181818181816

Tomi Nurhidayat

Data Science dan Machine Learning Enthusiast | SEO Enthusiast.

Previous Post Next Post