Saturday, February 22, 2020

Buku Belajar Machine Learning dengan Matlab - Regresi Linear


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


kalian bisa lanjut baca lagi di http://softscients.com/2020/03/26/buku-belajar-machine-learning-dengan-matlab-regresi-linear/


Buku Belajar Machine Learning dengan Matlab - Regresi Linear

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.

Buku Belajar Machine Learning dengan Matlab - Regresi Linear

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

Buku Belajar Machine Learning dengan Matlab - Regresi Linear

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)

Buku Belajar Machine Learning dengan Matlab - Regresi Linear

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.

No comments:

Post a Comment