Lompat ke konten Lompat ke sidebar Lompat ke footer

Regresi Linear Data x dan y - Metode Least Square

Daftar Isi
1. Pengertian Regresi Linear
2. Menghitung Koefisien Regresi Linear
3. Menghitung Koefisien Least Square Menggunakan Numpy
4. Menghitung Harga Mobil Menggunakan Model Least Square

Setelah memahami tentang korelasi atau hubungan antara 2 variabel numerik, dimana data yang berkorelasi baik adalah ketika satu data berubah maka data lain ikut berubah dengan pola tertentu.

Lebih jauh lagi, misal ada data numerik variabel a dan b, data b bisa diprediksi atau dihitung menggunakan variabel a. Contoh realnya begini, mobil dengan merek dan tipe yang sama, akan tergantung dengan kapan mobil tersebut diproduksi.

Semakin muda mobil seharusnya semakin mahal juga harganya. Pertanyaannya adalah, apakah harga mobil bisa diprediksi menggunakan tahun keluarannya?

Penghitungan tersebut dapat dilakukan menggunakan model yang disebut sebagai regresi linear.


Pengertian Regresi Linear

Sebelum membahas tentang regresi linear, mari inget sejenak pelajaran dulu waktu smp tentang persamaan garis lurus. Persamaan garis lurus dituliskan seperti ini:

$ y = mx + c $

Menggunakan persamaan di atas, nilai y dapat dihitung menggunakan nilai x yang dikalikan dengan m ditambah dengan suatu nilai c

Menggunakan prinsip di atas, regresi linear adalah menyatakan hubungan antara variabel x dan y menggunakan persamaan garis lurus source. Misalkan seperti ini, kita bisa menghitung harga sebuah mobil berdasarkan tahun mobil tersebut diproduksi.

harga_mobil

Grafik di atas adalah scatter plot yang menunjukkan hubungan antara harga mobil (sumbu y) dengan tahun produksi (sumbu x). Terlihat bahwa kedua variabel tersebut memiliki koefisien korelasi positif. Semakin muda mobil, maka semakin mahal harganya.

Menggunakan data-data di atas, kita dapat menghitung nilai m dan c dari persamaan linear di atas. Ketika m dan c diketahui, maka kita dapat menghitung harga mobil (y) menggunakan tahun produksi (x).

Model atau persamaan linear yang terbentuk dari data di atas adalah:

$ y = 1.19x - 2337 $

Menggunakan persamaan di atas, kita dapat menghitung atau melakukan prediksi harga mobil berdasarkan tahun produksinya. Misalkan mobil keluaran tahun 2000, maka harga prediksinya adalah 2000 dikali 1.19 dikurangi 2337, adalah 43 juta.

Harga di atas adalah harga hasil kalkulasi atau prediksi, sehingga akan sangat mungkin berbeda dengan harga aslinya.


Menghitung Koefisien Regresi Linear

Setelah cukup memahami tentang model linear, langkah selanjutnya adalah, bagaimana menghitung koefisien dalam persamaan linear?

Pada persamaan linear di atas, semua selain x dan y, disebut sebagai koefisien. Pengertian koefisien regresi linear adalah sebagai berikut:

  • m : gradien, atau pengali pada nilai x. Semakin besar gradien, maka semakin besar juga pertambahan nilai y.
  • c : intercept, atau berapa nilai y ketika nilai x bernilai 0

Jika ingin lebih paham dan agak sedikit repot, gradient dan intercept dari regresi linear atau least square dapat dihitung menggunakan persamaan di bawah ini source:

$ m = \frac{N\sum_{}^{}(xy) - \sum_{}^{}x\sum_{}^{}y}{N\sum_{}^{}(x^2) - (\sum_{}^{}x)^2} $

$ c = \frac{\sum_{}^{}y - m\sum_{}^{}x}{N} $

Lihat persamaannya sih kayaknya sulit ya. Agar lebih mudah, gradient dapat dihitung menggunakan numpy least square. Modul dari numpy ini menerima input berupa data x dan y. Hasil dari kalkulasinya berupa tuple yang berisi (m, c).

Proses nya kira-kira seperti dibawah ini. Tapi sebelum mencoba, jangan lupa pastiin numpy sudah terinstal di python ya.


Menghitung Koefisien Least Square Menggunakan Numpy

Data yang akan dibuat modelnya adalah data harga mobil terhadap tahun produksi pada scatter plot di atas. Sedangkan modelnya akan dibuat menggunakan numpy least square.

Numpy least square membutuhkan 2 buah input. Input pertama adalah sebuah matriks n baris 2 kolom, atau bisa disebut sebagai matrix G. Kolom pertama matrix G berisi data x, sedangkan kolom kedua berisi 1.

Input kedua adalah matriks n x 1, yang berisi data y. Matriks ini bisa disebut sebagai matriks d.

Misalkan digunakan data yang terdiri dari 5 pasang data x dan y, maka bentuk inputnya kira-kira seperti ini

$ G = \begin{bmatrix} x_1 & 1 \\ x_2 & 1 \\ x_3 & 1 \\ x_4 & 1 \\ x_5 & 1 \end{bmatrix}    d = \begin{bmatrix} y_1 \\ y_2 \\ y_3 \\ y_4 \\ y_5 \end{bmatrix} $

Setelah cukup paham dengan input numpy least square, berikut ini adalah script untuk menghitung koefisien least square.

1   import numpy as np
2   import matplotlib.pyplot as plt
3   
4   data = np.loadtxt("data.txt")
5   
6   G = np.full((len(data), 2), 1)
7   G[:, 0] = data[:, 0]
8   
9   grad = np.linalg.lstsq(G, data[:, 1])[0]
10  
11  print(grad)
[ 1.19041558e+00 -2.33744817e+03]

Mari kita bahas script di atas.

  • Baris 1 dan 2 digunakan untuk mengimport modul numpy dan matplotlib. Matplotlib digunakan untuk visualisasi hasil model data.
  • Kemudian dilanjutkan dengan load data pada baris k-4. Disini data yang digunakan adalah data dengan 2 kolom, x dan y, disimpan pada file "data.txt".
  • Baris 6 dan 7 adalah proses pembuatan matriks G. Pertama dibuat matriks ukuran n x 2 dan berisi angka 1, menggunakan np.full()
  • Setelah itu, ganti kolom pertama dengan data x, atau data[:, 0], data kolom pertama (baris 7).
  • Baris 9 adalah proses kalkulasi least square menggunakan np.linalg.lstsq(). Seperti yang sudah dijelaskan sebelumnya, inputnya adalah matrix G, dan data y. Pada kasus ini data y adalah data kolom kedua, atau data[:, 1]
  • Kemudian print  variabel grad, maka diperoleh nilai m dan c.

Menghitung Harga Mobil Menggunakan Model Least Square

Seperti sebelumnya, setelah mendapatkan koefisien least square, maka dapat dihitung atau dipredeksi nilai harga mobil menggunakan tahun produksi. Kita coba lakukan perhitungan untuk 5 data, dan berikut ini hasilnya.

Tahun Nilai Asli Hasil Perhitungan
1990 32.38 31.48
1991 32.67 32.19
1992 33.86 33.44

Pada tabel di atas terlihat bahwa terdapat perbedaan antara data asli dengan hasil perhitungan model least square. Hal ini wajar terjadi, karena least square menggunakan pendekatan dengan persamaan garis lurus.

Agar lebih jelas, pola hasil perhitungan least square dapat dilihat pada grafik di bawah ini:


harga_mobil_interpolasi

Data yang diplot merah adalah hasil perhitungan harga mobil untuk setiap tahun. Sesuai dengan pengertiannya, data hasil perhitungan mengikuti pola garis lurus / linear.

Pola tersebut tentu saja berbeda dengan data asli. Walaupun berkorelasi tinggi, kenaikan harga mobil tidak selalu lurus terhadap tahun produksi. Kadang ada yang naiknya sedikit, ada yang banyak, bahkan ada yang turun.

Karena itu, terdapat perbedaan antara nilai data asli dengan data model least square. Perbedaan tersebut dapat dihitung dan digunakan untuk mengukur kualitas model yang terbentuk. Model yang bagus adalah model yang menghasilkan nilai yang dekat dengan data asli, tapi tidak boleh sangat mirip dengan data asli.

Kualitas model dan bagaimana menghitungnya akan dibahas pada artikel lain.

Posting Komentar untuk "Regresi Linear Data x dan y - Metode Least Square"