
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
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 dan
yaitu
Dengan 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 dan
yaitu
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 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
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.