R - Regresi Logistik

Regresi Logistik merupakan model regresi dimana variabel respon (variabel terikat) memiliki nilai kategorik seperti True / False atau 0/1. Ini sebenarnya mengukur probabilitas respons biner sebagai nilai variabel respons berdasarkan persamaan matematika yang menghubungkannya dengan variabel prediktor.

Persamaan matematika umum untuk regresi logistik adalah -

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...))

Berikut ini adalah deskripsi parameter yang digunakan -

  • y adalah variabel respon.

  • x adalah variabel prediktor.

  • a dan b adalah koefisien yang merupakan konstanta numerik.

Fungsi yang digunakan untuk membuat model regresi adalah glm() fungsi.

Sintaksis

Sintaks dasar untuk glm() fungsi dalam regresi logistik adalah -

glm(formula,data,family)

Berikut ini adalah deskripsi parameter yang digunakan -

  • formula adalah simbol yang menyajikan hubungan antar variabel.

  • data adalah kumpulan data yang memberikan nilai variabel ini.

  • familyadalah objek R untuk menentukan detail model. Nilainya adalah binomial untuk regresi logistik.

Contoh

Kumpulan data internal "mtcars" menjelaskan berbagai model mobil dengan berbagai spesifikasi mesinnya. Dalam kumpulan data "mtcars", mode transmisi (otomatis atau manual) dijelaskan oleh kolom am yang merupakan nilai biner (0 atau 1). Kita dapat membuat model regresi logistik antara kolom "am" dan 3 kolom lainnya - hp, wt dan cyl.

# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]

print(head(input))

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

am   cyl  hp    wt
Mazda RX4          1   6    110   2.620
Mazda RX4 Wag      1   6    110   2.875
Datsun 710         1   4     93   2.320
Hornet 4 Drive     0   6    110   3.215
Hornet Sportabout  0   8    175   3.440
Valiant            0   6    105   3.460

Buat Model Regresi

Kami menggunakan glm() berfungsi untuk membuat model regresi dan mendapatkan ringkasannya untuk dianalisis.

input <- mtcars[,c("am","cyl","hp","wt")]

am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)

print(summary(am.data))

Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -

Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)

Deviance Residuals: 
     Min        1Q      Median        3Q       Max  
-2.17272     -0.14907  -0.01464     0.14116   1.27641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 19.70288    8.11637   2.428   0.0152 *
cyl          0.48760    1.07162   0.455   0.6491  
hp           0.03259    0.01886   1.728   0.0840 .
wt          -9.14947    4.15332  -2.203   0.0276 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  9.8415  on 28  degrees of freedom
AIC: 17.841

Number of Fisher Scoring iterations: 8

Kesimpulan

Dalam ringkasan karena p-value di kolom terakhir lebih dari 0,05 untuk variabel "cyl" dan "hp", kami menganggapnya tidak signifikan dalam berkontribusi pada nilai variabel "am". Hanya bobot (wt) yang memengaruhi nilai "am" dalam model regresi ini.