Pengertian dan Penjelasan Regresi Linear

By | November 29, 2022
Print Friendly, PDF & Email
4,173 Views

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

    \[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.

See also  Package lubridate untuk mengolah date time

Dataset

Berikut contoh dataset yang digunakan mengetahui hubungan antara suhu dengan jumlah cacat produk. Berikut data excelnya

data suhu dan cacat produk

Generated by wpDataTables

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}\]

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+bx

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 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
See also  Belajar Riset Operasi Bagian 1

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