![](https://softscients.com/wp-content/uploads/2020/03/1.-regresi-linear-dan-cara-perhitungan-manualnya-660x377.png?v=1669679745)
Regresi Linear merupakan salah satu bab dasar dalam statistika yang perlu kalian pelajari. Jenis regresi ada 2 yaitu sederhana dan berganda serta linear dan logistik. Pada postingan kali ini, akan dibahas terlebih dahulu mengenai regresi linear. Agar lebih mudah, kalian bisa menggunakan 2 tools yaitu R/RStudio ataupun matlab.
Sejarah: Apa yang dimaksud dengan regresi linier? Istilah regresi pertama kali dalam konsep statistik digunakan oleh Sir Francis Galton dimana yang bersangkutan melakukan kajian yang menunjukkan bahwa tinggi badan anak-anak yang dilahirkan dari para orang tua yang tinggi cenderung bergerak (regress) kearah ketinggian rata-rata populasi secara keseluruhan. Galton memperkenalkan kata regresi (regression) sebagai nama proses umum untuk memprediksi satu variabel, yaitu tinggi badan anak dengan menggunakan variabel lain, yaitu tinggi badan orang tua.
Pada perkembangan berikutnya hukum Galton mengenai regresi ini ditegaskan lagi oleh Karl Pearson dengan menggunakan data lebih dari seribu. Pada perkembangan berikutnya, para ahli statistik menambahkan isitilah regresi berganda (multiple regression) untuk menggambarkan proses dimana beberapa variabel digunakan untuk memprediksi satu variabel lainnya.
Pengertian: Regresi linier mempunyai persamaan yang disebut sebagai persamaan regresi. Regresi Linear adalah Metode Statistik yang berfungsi untuk menentukan hubungan sebab akibat antara independen Penyebab (X) terhadap dependen akibatnya Y
Persamaan Regresi 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
Contents
Berikut contoh dataset yang digunakan mengetahui hubungan antara suhu dengan jumlah cacat produk. Berikut data excelnya
data suhu dan cacat produk
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
Berikut cara menghitung manual regresi linear:
Kita akan menggunakan R/Studio dan package dplyr untuk mempermudah perhitungannnya
library(dplyr) df = read.csv("data suhu dan cacat produk.csv") x = df$suhu y = df$jumlah_cacat n = nrow(df) a = (sum(y)*sum(x^2)-sum(x)*sum(x*y))/(n*sum(x^2)-sum(x)^2) b = (n*sum(x*y)-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 dengan memasukannya dalam persamaan regresi linear
y2 = a+b*x df2 = data.frame(suhu = x,jumlah_cacat = y2)
jangan lupa masukan package ggplot nya
library(ggplot2) ggplot() + geom_point(data=df,aes(x=suhu,y=jumlah_cacat))+ geom_line(data=df2,aes(x=suhu,y=jumlah_cacat))+ labs(title="Plot Scatter", subtitle = "Regresi Linear", caption ="www.softscients.com", x = "suhu", y = "jumlah cacat")
Regresi Linear dengan R
Selain cara manual diatas, sebenarnya kita bisa kok menggunakan function built in yang ada di RStudio yaitu
model = lm(data=df, formula = jumlah_cacat ~ suhu) model
hasilnya
Call: lm(formula = jumlah_cacat ~ suhu, data = df) Coefficients: (Intercept) suhu -24.38 1.45
sedangkan untuk melakukan prediksi, kita terlebih dahulu membuat data frame dengan menggunakan nama kolom yang sama
df3 = data.frame(suhu=df$suhu) predict(model,df3)
hasilnya
1 2 3 4 5 6 7 10.414878 7.515227 6.065402 4.615577 7.515227 3.165751 4.615577 8 9 10 11 12 13 14 8.965052 10.414878 11.864703 6.065402 4.615577 4.615577 3.165751 15 16 17 18 19 20 21 11.864703 14.764353 16.214179 11.864703 13.314528 10.414878 14.764353 22 23 24 25 26 27 28 8.965052 10.414878 8.965052 7.515227 6.065402 13.314528 11.864703 29 30 13.314528 14.764353
Regresi Linear dengan Matlab
Agar kalian bisa pelajari, berikut dibawah ini penulis berikan kodenya untuk menghitung regresi linear
clc;clear all;close all; data = readtable('data suhu dan cacat produk.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.