Buku Belajar Machine Learning dengan Matlab – Regresi Linear

By | March 28, 2020
Print Friendly, PDF & Email

Sinopsis

Regresi Linear adalah Metode Statistik yang berfungsi untuk menentukan hubungan sebab akibat antara independen Penyebab (X) terhadap  dependen akibatnya Y dengan bentuk umum persamaan linear yaitu

    \[y = a+bX\]

Dimana :

Y = Variabel Response atau Variabel Akibat (Dependent)

X = Variabel Predictor atau Variabel Faktor Penyebab (Independent)

a = konstanta

b = koefisien regresi (kemiringan); besaran Response yang ditimbulkan oleh Predictor.

Untuk menghitung nilia a dan b yaitu

    \[a=\frac{\sum{y} \sum{x^2}-\sum{x}\sum{xy}}{n\sum{x^2}-(\sum{x})^2}\]

    \[b=\frac{n\sum{xy}-\sum{x}\sum{y}}{n\sum{x^2}-(\sum{x})^2}\]

Dengan n adalah jumlah data observasi, langkah sederhana kapan kalian menggunakan regresi linear yaitu dengan cara memplotkan data tersebut kedalam sebuah grafik, karena regresi linear bersifat linear maka akan tampak data tersebut berbanding lurus.

Dataset

Berikut contoh dataset yang digunakan (data ini disimpan dengan nama data.csv)

>> data

data =

  30×3 table

    hari    suhu    jumlah_cacat
    ____    ____    ____________

      1      24          10     
      2      22           5     
      3      21           6     
      4      20           3     
      5      22           6     
      6      19           4     
      7      20           5     
      8      23           9     
      9      24          11     
     10      25          13     
     11      21           7     
     12      20           4     
     13      20           6     
     14      19           3     
     15      25          12     
     16      27          13     
     17      28          16     
     18      25          12     
     19      26          14     
     20      24          12     
     21      27          16     
     22      23           9     
     23      24          13     
     24      23          11     
     25      22           7     
     26      21           5     
     27      26          12     
     28      25          11     
     29      26          13     
     30      27          14     

>>

Ada 2 variabel yaitu suhu sebagai X dan jumlah_cacat sebagai y, kalian bisa plotkan dalam sebuah grafik, seperti tampil pada grafik dibawah ini. Bahwa terlihat X dan Y berbanding lurus positif yaitu ketika suhu naik maka jumlah cacat semakin banyak.

Maka dengan menggunakan rumus dibawah ini Untuk menghitung nilia a dan b yaitu

    \[a=\frac{\sum{y} \sum{x^2}-\sum{x}\sum{xy}}{n\sum{x^2}-(\sum{x})^2}\]

    \[b=\frac{n\sum{xy}-\sum{x}\sum{y}}{n\sum{x^2}-(\sum{x})^2}\]

Didapatkan hasil sebagai berikut

a =

  -24.3809


b =

    1.4498

Kita akan buktikan nilai tersebut kedalam sebuah plot grafik / fitting.

Kode Matlab

Agar kalian bisa pelajari, berikut dibawah ini penulis berikan kodenya untuk menghitung regresi linear, kalian setup sendiri ya untuk data.csv nya

clc;clear all;close all;
data = readtable('data.csv');
X = data.suhu;
y = data.jumlah_cacat;
 
figure
scatter(X,y,30,'filled')
xlabel('suhu'),ylabel('jumlah cacat')
title('Data Suhu dan Jumlah Cacat');
grid on
 
%hitung
[a,b] = regresilinear(X,y)
 
%fitting
y2 = a+b*X;
 
figure
hold on
scatter(X,y,30,'filled')
line(X,y2)
xlabel('suhu'),ylabel('jumlah cacat')
title('Data Suhu dan Jumlah Cacat');
grid on
legend('target','line fitting')
hold off
 
 
%hitung regresi linear
function [a,b] = regresilinear(X,y)
    n = length(X);
    pembilang = (sum(y).*sum(X.^2))-(sum(X).*sum(X.*y));
    penyebut = n*sum(X.^2)-sum(X)^2;
    a = (pembilang/penyebut);
 
    pembilang = n*sum(X.*y)-sum(X).*sum(y);
    penyebut = n*sum(X.^2)-sum(X)^2;
    b = pembilang/penyebut;
 
end

Function Regresi di Matlab

Tentu di Matlab sudah diberikan koq function built in, kalian bisa menggunakan function fitlm yaitu Linear Model, contoh penggunaanya sebagai berikut

clc;clear all;close all;
data = readtable('data.csv');
X = data.suhu;
y = data.jumlah_cacat;
 
%panggil function regresi linear di Matlab
model = fitlm(X,y)

hasil

model = 


Linear regression model:
    y ~ 1 + x1

Estimated Coefficients:
                   Estimate       SE        tStat       pValue  
                   ________    ________    _______    __________

    (Intercept)    -24.381        1.984    -12.289    8.4852e-13
    x1              1.4498     0.084632     17.131    2.2552e-16


Number of observations: 30, Error degrees of freedom: 28
Root Mean Squared Error: 1.2
R-squared: 0.913,  Adjusted R-Squared 0.91
F-statistic vs. constant model: 293, p-value = 2.26e-16

Kalian bisa melihat summary nya dengan Intercept (a) = -24.381 dan variabel x1 (b) = 1.4498, untuk melakukan prediksi/fitting caranya sebagai berikut

y2 = predict(model,X)

Ini kode lengkapnya yang bisa kalian pelajari lagi

clc;clear all;close all;
data = readtable('data.csv');
X = data.suhu;
y = data.jumlah_cacat;
 
%panggil function regresi linear di Matlab
model = fitlm(X,y)
 
 
y2 = predict(model,X);
 
 
figure
hold on
scatter(X,y,30,'filled')
line(X,y2)
xlabel('suhu'),ylabel('jumlah cacat')
title('Data Suhu dan Jumlah Cacat');
grid on
legend('target','line fitting')
hold off

Kalau kalian masing bingung kesini saja

  1. Loading Data di Matlab
  2. Plot Grafik di Matlab

Daftar Pustaka Regresi Linear

  • Hasan M. Iqbal, Ir., M.M. 2005. Pokok-Pokok Materi Statistik 1 (Statistik Deskriptif). Edisi Kedua. Jakarta: PT. Bumi Aksara.
  • Priyatno Duwi. 2008. Mandiri Belajar SPSS (Statistical Product and Service Solution) Untuk Analisis Data dan Uji Statistik. Yogyakarta: MediaKom.
  • Sugiyono.2010.  Statistik Untuk Penelitian. Alfabeta : Bandung.

Leave a Reply

Your email address will not be published. Required fields are marked *