M - Logistic Regression
Create Regression Model
Selamat datang ke dunia regresi logistik dalam R! Dalam panduan ini, kita akan memandu Anda melalui dasar-dasar pembuatan model regresi logistik menggunakan R. Kita akan mulai dari beberapa konsep dasar dan kemudian masuk ke dalam kode. Ingat, ini dirancang untuk pemula yang tidak memiliki pengalaman pemrograman sebelumnya, jadi jangan khawatir jika Anda merasa sedikit kehilangan awal. Ayo mulai!
Apa Itu Regresi Logistik?
Regresi logistik adalah metode statistik yang digunakan untuk menganalisis data dan membuat prediksi berdasarkan satu atau lebih variabel penentu. Ini sering digunakan untuk masalah klasifikasi biner, di mana hasilnya dapat "ya" (1) atau "tidak" (0). Perbedaan utama antara regresi logistik dan regresi linear adalah bahwa regresi logistik memprediksi probabilitas terjadinya hasil, sedangkan regresi linear memprediksi nilai kontinu.
Mengapa Menggunakan Regresi Logistik?
Regresi logistik secara luas digunakan dalam berbagai bidang, termasuk kesehatan, keuangan, pemasaran, dan sains sosial. Ini sangat berguna saat Anda ingin memahami hubungan antara hasil biner dan satu atau lebih variabel penentu. Misalnya, Anda mungkin menggunakan regresi logistik untuk memprediksi apakah seorang pelanggan akan membeli produk berdasarkan umur, pendapatan, dan riwayat pembelian mereka.
Membuat Model Regresi Logistik dalam R
Untuk membuat model regresi logistik dalam R, kita akan menggunakan fungsi glm()
, yang berarti Generalized Linear Models. Berikut adalah panduan langkah demi langkah:
Langkah 1: Install dan Load Library yang Diperlukan
Pertama, Anda perlu menginstall dan memuat library yang diperlukan. Kita akan menggunakan library tidyverse
untuk manipulasi dan visualisasi data, dan library caret
untuk modeling.
install.packages("tidyverse")
install.packages("caret")
library(tidyverse)
library(caret)
Langkah 2: Muat Data
Berikutnya, mari muat dataset. Untuk contoh ini, kita akan menggunakan dataset bawaan mtcars
, yang mengandung informasi tentang berbagai model mobil. Kita akan fokus pada memprediksi apakah mobil adalah mobil sport berdasarkan berat dan daya mesinnya.
data(mtcars)
head(mtcars)
Langkah 3: Praproses Data
Sebelum membuat model regresi logistik, kita perlu praproses data. Ini termasuk mengkodekan variabel kategorik, menangani nilai hilang, dan menskala fitur. Dalam kasus kita, kita hanya memiliki variabel numerik, jadi kita tidak perlu melakukan pengkodean atau penskalaan. Namun, kita akan membuat variabel biner baru yang disebut is_sports_car
untuk menunjukkan apakah mobil adalah mobil sport atau tidak.
mtcars <- mtcars %>%
mutate(is_sports_car = ifelse(hp > 150, 1, 0))
Langkah 4: Pisahkan Data Menjadi Set Latihan dan Tes
Pemisahan data menjadi set latihan dan tes penting untuk mengevaluasi performa model kita. Kita akan menggunakan fungsi createDataPartition()
dari paket caret
untuk membuat partisi.
set.seed(123)
trainIndex <- createDataPartition(mtcars$is_sports_car, p = 0.8, list = FALSE)
trainSet <- mtcars[trainIndex, ]
testSet <- mtcars[-trainIndex, ]
Langkah 5: Bangun Model Regresi Logistik
Sekarang kita siap membuat model regresi logistik kita. Kita akan menggunakan fungsi glm()
dengan argumen family
diatur ke binomial
untuk menentukan bahwa kita ingin melakukan regresi logistik.
model <- glm(is_sports_car ~ wt + hp, data = trainSet, family = binomial)
summary(model)
Fungsi summary()
memberikan gambaran umum model, termasuk koefisien, kesalahan standar, nilai z, dan nilai p. Statistik ini membantu kita memahami pentingnya setiap variabel penentu dan apakah mereka statistiknya signifikan.
Langkah 6: Buat Prediksi dan Evaluasi Model
Setelah kita memiliki model, kita dapat menggunakannya untuk membuat prediksi pada set tes dan mengevaluasi performanya. Kita akan menggunakan fungsi predict()
untuk menghasilkan probabilitas diprediksi dan kemudian mengkonversinya menjadi hasil biner menggunakan ambang batas 0.5.
predictions <- predict(model, newdata = testSet, type = "response")
predicted_classes <- ifelse(predictions > 0.5, 1, 0)
Sekarang, mari kita hitung akurasi model kita dengan membandingkan kelas diprediksi dengan kelas aktual dalam set tes.
accuracy <- mean(predicted_classes == testSet$is_sports_car) * 100
cat("Akurasi:", accuracy, "%")
Dan itu adalah dia! Anda telah berhasil membuat model regresi logistik dalam R menggunakan fungsi glm()
. Ingat, ini hanya contoh dasar, dan ada banyak faktor lain yang perlu dipertimbangkan saat membuat dan mengevaluasi model regresi logistik, seperti pemilihan fitur, regularisasi, dan penyetelan model. Tetapi ini seharusnya memberikan Anda titik awal yang bagus untuk perjalanan Anda ke dunia regresi logistik dalam R.
Credits: Image by storyset