Review R dan Regresi Linier Sederhana

Simple Linear Regression

Offline di Departemen Matematika
Published

September 23, 2024

Review R

Instalasi Library

install.packages (Nama Packages) , untuk mengunduh library yang diperlukan kita dapat mengganti Nama Packages dengan packages yang kita butuhkan. Jangan lupa untuk menambahkan tanda " " atau ' ' sebelum dan sesudah Nama packages

install.packages('psych')

Mengimport Library

library (Nama Packages) , untuk mengimport atau menggunakan library yang sudah diunduh sebelumnya kita dapat menggunakan fungsi tersebut dengan mengubah Nama Packages menjadi packages yang dibutuhkan atau yang sudah diunduh sebelumnya. Pada bagian import library tidak diperlukan tanda " " atau ' '

library(psych)

Membaca Data

pada dasarnya pembacaan file di R studio bisa berbagai macam format file , untuk contohnya:

  • library (readxl) untuk membaca data yang berformat .xlsx atau .xls
  • library (readr) untuk membaca data yang berformat .csv
library(readxl)
library(readr)

Tahap - Tahap Membaca Data

  1. Membuka Menu File pada RStudio

  1. Memilih File / Data yang diinginkan

  1. Memilih section import dataset

  1. Megcopy File Path URL

setelah mendapatkan file url , selanjutnya akan dibaca menggunakan read_csv ('file_url') , jangan lupa untuk mengubah file url sesuai file url yang didapatkan dari tahap mecari data. Selain itu jangan lupa untuk menambahkan tanda ' ' atau " " sebelum dan sesudah file url yang didapatkan.

library(readr)

data <- read_csv('~/Downloads/Iris.csv')

Memeriksa Data

Untuk melanjutkan modul ini, akan digunakan dataset iris bawaan r yang dapat diakses dengan syntax berikut.

data(iris)
data <- iris

Untuk memeriksa data dapat menggunakan banyak cara diantaranya:

  1. View (data) , untuk melihat keseluruhan data
  2. head (data) , untuk melihat 6 data teratas
  3. tail (data) , untuk melihat 6 data terbawah

jangan lupa untuk mengubah variabel data sesuai dengan variabel yang didefinisikan sebelumnya.

View(data)
head(data)
tail(data)

Tipe Data

Untuk memperoleh informasi tipe data dari sebuah data kita akan menggunakan str (data) , jangan lupa untuk mengubah data sesuai variabel yang didefinisikan sebelumnya

str(data)

Penjelasan tipe data:

  • num : Num mengartikan bahwa variabel tersebut adalah nilai numerik / sebuah angka
  • chr : Chr mengartikan bahwa variabel tersebut adalah nilai yang berupa tulisan atau bisa disebut juga string

Statistik Deksriptif

Untuk memeriksa statisika deskriptif dari data dapat menggunakan:

  1. library (psych)
  2. library (DescTools)
  3. library (moments)

Untuk penjelasan fungsi statistik deskriptif bisa dilihat pada tabel berikut:

Fungsi Penjelasan Library
mean(data) Menghitung rata-rata dari data. Base R
median(data) Menghitung nilai tengah dari data. Base R
sum(data) Menghitung jumlah total elemen dalam data. Base R
sd(data) Menghitung standar deviasi dari data. Base R
var(data) Menghitung varians dari data. Base R
Mode(data) Menghitung modus dari data, nilai yang paling sering muncul. DescTools
standarerror <- sd(data)/sqrt(length(data)) Menghitung standar error dari data. Base R
sort(data) Mengurutkan elemen dalam dari nilai terkecil ke terbesar. Base R
min(data) Menghitung nilai minimum dari data. Base R
max(data) Menghitung nilai maksimum dari data. Base R
range(data) Menghitung selisih antara nilai maksimum dan minimum dari data. Base R
quantile(data, prob=0.25) Menghitung kuartil ke-1 (Q1) atau persentil ke-25 dari data. Base R
quantile(data, prob=0.75) Menghitung kuartil ke-3 (Q3) atau persentil ke-75 dari data. Base R
skewness(data) Menghitung kemiringan distribusi (skewness) dari data. moments
kurtosis(data) Menghitung keruncingan distribusi (kurtosis) dari data. moments
library(psych)
library(DescTools)
library(moments)
mean(data$Petal.Length)
median(data$Petal.Length)
sd(data$Petal.Length)
var(data$Petal.Length)

untuk melihat keseluruhan statistika deskriptif dapat menggunakan :

  • summary (data) ,
  • describe (data) , menggunakan library psych untuk statistika deksriptif yang lebih advance
summary(data)
describe(data)

Split Data

  • untuk membuat split data kita dapat menggunakan : sample() ,

  • untuk memperoleh hasil yang selalu sama jangan lupa untuk mengatur seed dengan cara : set.seed(42) , angka 42 dapat digantikan sesuai yang diinginkan.

set.seed(42) 

index <- sample(1:nrow(data), size = 0.8 * nrow(data))

train_data <- data[index, ]  # 80% of the data
test_data <- data[-index, ] # 20% of the data

size dapaat diatur sesuai ketentuan , jika ketentuannya diambil 70% data maka dapat mengubah size menjadi 0.7.

Regresi Linier Sederhana

Untuk mendefinisikan suatu regresi linier sederhana kita dapat menggunakan fungsi lm() , dengan cara:

lm(variabel response ~ variabel prediktor , data = data)

dimana :

  • Variabel Response (y)
  • Variabel Prediktor (X)
model <- lm(Petal.Length ~ Petal.Width, data = train_data)
model

Interpretasi summary(model)

Fungsi summary(model) dapat digunakan untuk melihat informasi mengenai model yang telah dibentuk.

summary(model)

Visualisasi Model

Untuk membuat visualisasi regresi linier sederhana, lakukan langkah-langkah berikut: 1. Buat scatter plot variabel respons dan variabel prediktor dengan function plot(pred, resp) 2. Buat garis regresi dengan function abline(model) 3. Buat keterangan garis regresi dengan function legend() (*optional)

# Scatter Plot Petal.Width ~ Petal.Length
plot(iris$Petal.Width,
     iris$Petal.Length,
     xlab = "Petal Width",
     ylab = "Petal Length",
     main = "Plot Regresi Petal Length ~ Petal Width",
     pch = 20)

# Garis Regresi
abline(model,
       col = "red",
       lwd = 2)

legend("bottomright",
       legend = "Garis Regresi",
       col = "blue",
       lwd = 2,
       bty = "n")

Interval Kepercayaan dan Interval Prediksi

Interval Kepercayaan untuk taksiran koefisien dapat dihitung dengan fungsi confint(model)

confint(model, level = 0.9)

Interval Prediksi untuk suatu nilai-nilai di luar data yang digunakan untuk pemodelan dapat dihitung dengan fungsi predict(model, newdata, interval='prediction')

predict(model, newdata = test_data, interval = "prediction", level = 0.9)

Untuk suatu nilai x tertentu, dapat dicari interval prediksinya dengan syntax berikut

predict(model, newdata = data.frame(Petal.Width=20), interval = "prediction", level = 0.9)

Representasi Grafik Residual Model

Residual model dapat diakses dengan memanggil model$residual atau resid(model)

head(model$residual)
head(resid(model))

Plot residual dapat dibentuk dengan cara-cara berikut.

plot(model$residual)
plot(model, 1)
hist(model$residual)