Analisis Regresi Logistik dan Asumsinya

Almas Izdihar Al Ghifari

2024-05-31

1 PENDAHULUAN

1.1 Latar Belakang

Regresi logistik adalah salah satu teknik statistik yang sangat penting dalam berbagai bidang ilmu, termasuk kedokteran, biologi, pemasaran, dan ilmu sosial. Teknik ini digunakan untuk memodelkan hubungan antara satu atau lebih variabel independen (prediktor) dengan variabel dependen biner (dichotomous), yang memiliki dua kemungkinan hasil, seperti berhasil/gagal, hidup/mati, atau lulus/tidak lulus.

Di dunia kedokteran, misalnya, regresi logistik digunakan untuk memprediksi kemungkinan seseorang terkena penyakit tertentu berdasarkan berbagai faktor risiko seperti usia, jenis kelamin, gaya hidup, dan riwayat kesehatan. Dalam pemasaran, regresi logistik dapat digunakan untuk memprediksi apakah seorang konsumen akan membeli produk tertentu berdasarkan karakteristik demografis dan perilaku belanja mereka. Pentingnya regresi logistik terletak pada kemampuannya untuk memberikan wawasan tentang faktor-faktor yang mempengaruhi hasil biner serta kemampuannya untuk menghasilkan probabilitas terjadinya suatu peristiwa. Hal ini sangat berguna dalam pengambilan keputusan yang berbasis data, yang dapat meningkatkan efektivitas strategi intervensi dan kebijakan yang diterapkan.

Dalam regresi logistik, kita memodelkan logit (log-odds) dari probabilitas kejadian sebagai fungsi linear dari variabel independen. Pendekatan ini memungkinkan kita untuk menangani masalah di mana hubungan antara variabel prediktor dan variabel dependen tidak harus linear, tetapi hubungan antara variabel prediktor dan logit dari variabel dependen harus linear.

Dengan demikian, memahami teknik regresi logistik, serta asumsi-asumsi yang mendasarinya, adalah sangat penting bagi para peneliti dan praktisi dalam berbagai bidang. Asumsi-asumsi ini harus dipenuhi agar model yang dihasilkan dapat diandalkan dan memiliki validitas yang baik.

1.2 Tinjauan Pustaka

Analisis Regresi Logistik adalah metode statistik yang digunakan untuk memodelkan hubungan antara satu atau lebih variabel independen dengan variabel dependen biner. Variabel dependen biner memiliki dua kategori, misalnya sukses/gagal, hidup/mati, atau ya/tidak. Regresi logistik menggunakan fungsi logit untuk menghubungkan variabel dependen dengan variabel independen.

  1. Logit Function: Regresi logistik menggunakan fungsi logit untuk menghubungkan variabel dependen dengan variabel independen. Pada fungsi logit, p adalah probabilitas kejadian dari variabel dependen. Fungsi logit (log-odds) didefinisikan sebagai: \[log(\frac{p}{1-p})\]

  2. Model Linier: Model regresi logistik dinyatakan sebagai: \[ \text{logit}(p) = \ln\left(\frac{p}{1-p}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \ldots + \beta_k X_k \] Di mana:

    • \(p\) adalah probabilitas kejadian dari variabel dependen.
    • \(\beta_0\) adalah intersep.
    • \(\beta_1, \beta_2, \ldots, \beta_k\) adalah koefisien regresi untuk variabel independen \(X_1, X_2, \ldots, X_k\).
  3. Estimasi Koefisien: Koefisien regresi (\(\beta\)) diestimasi menggunakan metode maksimum likelihood, yang mencari parameter yang memaksimalkan kemungkinan (likelihood) pengamatan data yang ada.

  4. Probabilitas: Setelah koefisien diestimasi, probabilitas kejadian dapat dihitung menggunakan fungsi logistik: \[ p=\frac{exp(\beta _{0}+\beta _{1}x _{1i}+\beta _{2}x _{2i}+...+\beta _{p}x _{pi})}{1+exp(\beta _{0}+\beta _{1}x _{1i}+\beta _{2}x _{2i}+...+\beta _{p}x _{pi})} \]

1.3 Data

Data yang digunakan berasal dari dataset website kaggle tentang Heart Failure (Gagal Jantung). Variabel dependen (Y) merupakan kolom ‘HeartDisease’ yaitu indikasi terkena Gagal Jantung (1) atau tidak (0). Variabel prediktor (x) yang digunakan yaitu MaxHR (detak jantung maksimum yang tercapai sebagai \(X_1\)) dan Oldpeak (Depresi ST yang diinduksi oleh olahraga relatif terhadap istirahat sebagai \(X_2\)). Berikut merupakan cuplikan data yang digunakan.

> setwd("C:/Users/Acer-PC/Downloads")
> data1 <- read.csv("heart.csv", header = TRUE, sep = ",")
> head(data1)
  Age Sex ChestPainType RestingBP Cholesterol FastingBS RestingECG MaxHR
1  40   M           ATA       140         289         0     Normal   172
2  49   F           NAP       160         180         0     Normal   156
3  37   M           ATA       130         283         0         ST    98
4  48   F           ASY       138         214         0     Normal   108
5  54   M           NAP       150         195         0     Normal   122
6  39   M           NAP       120         339         0     Normal   170
  ExerciseAngina Oldpeak ST_Slope HeartDisease
1              N     0.0       Up            0
2              N     1.0     Flat            1
3              N     0.0       Up            0
4              Y     1.5     Flat            1
5              N     0.0       Up            0
6              N     0.0       Up            0

1.4 Tujuan

Tujuan dilakukan analisis regresi logistik adalah untuk mengetahui pengaruh variabel prediktor (detak jantung maksimum yang tercapai dan Depresi ST yang diinduksi oleh olahraga relatif terhadap istirahat) terhadap variabel dependen (indikasi gagal jantung).

2 SOURCE CODE

2.1 Library

> library(readr)
> library(generalhoslem)
> library(pscl)

2.2 Impor Data

> setwd("C:/Users/Acer-PC/Downloads")
> data1 <- read.csv("heart.csv", header = TRUE, sep = ",")
> head(data1)
  Age Sex ChestPainType RestingBP Cholesterol FastingBS RestingECG MaxHR
1  40   M           ATA       140         289         0     Normal   172
2  49   F           NAP       160         180         0     Normal   156
3  37   M           ATA       130         283         0         ST    98
4  48   F           ASY       138         214         0     Normal   108
5  54   M           NAP       150         195         0     Normal   122
6  39   M           NAP       120         339         0     Normal   170
  ExerciseAngina Oldpeak ST_Slope HeartDisease
1              N     0.0       Up            0
2              N     1.0     Flat            1
3              N     0.0       Up            0
4              Y     1.5     Flat            1
5              N     0.0       Up            0
6              N     0.0       Up            0

2.3 Analisis

Penyesuaian data

> Y <- as.factor(data1$HeartDisease)
> X1 <- data1$MaxHR
> X2 <- data1$Oldpeak
> datareg <- data.frame(Y, X1, X2)
> head(datareg)
  Y  X1  X2
1 0 172 0.0
2 1 156 1.0
3 0  98 0.0
4 1 108 1.5
5 0 122 0.0
6 0 170 0.0

Regresi Logistik

> reg <- glm(Y ~ X1 + X2, family=binomial, data=datareg)
> summary <- summary(reg)
> summary

Call:
glm(formula = Y ~ X1 + X2, family = binomial, data = datareg)

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  4.262160   0.481167   8.858   <2e-16 ***
X1          -0.034779   0.003434 -10.126   <2e-16 ***
X2           0.936189   0.091007  10.287   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1262.14  on 917  degrees of freedom
Residual deviance:  965.93  on 915  degrees of freedom
AIC: 971.93

Number of Fisher Scoring iterations: 4

Uji Signifikansi Keseluruhan Model

> pR2(reg)
fitting null model for pseudo-r2
         llh      llhNull           G2     McFadden         r2ML         r2CU 
-482.9643516 -631.0681937  296.2076843    0.2346875    0.2757845    0.3691257 
> qchisq(0.95,2)
[1] 5.991465

Uji Parsial Parameter Model

> summary(reg)

Call:
glm(formula = Y ~ X1 + X2, family = binomial, data = datareg)

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  4.262160   0.481167   8.858   <2e-16 ***
X1          -0.034779   0.003434 -10.126   <2e-16 ***
X2           0.936189   0.091007  10.287   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1262.14  on 917  degrees of freedom
Residual deviance:  965.93  on 915  degrees of freedom
AIC: 971.93

Number of Fisher Scoring iterations: 4
> #R square
> summary(reg)

Call:
glm(formula = Y ~ X1 + X2, family = binomial, data = datareg)

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  4.262160   0.481167   8.858   <2e-16 ***
X1          -0.034779   0.003434 -10.126   <2e-16 ***
X2           0.936189   0.091007  10.287   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1262.14  on 917  degrees of freedom
Residual deviance:  965.93  on 915  degrees of freedom
AIC: 971.93

Number of Fisher Scoring iterations: 4
> Rsq<-1-(163.65/226.88)
> Rsq
[1] 0.2786936
> #Odds Ratio
> beta<-(coef(reg))
> OR_beta<-exp(beta)
> cbind(beta,OR_beta)
                   beta    OR_beta
(Intercept)  4.26216013 70.9631076
X1          -0.03477906  0.9658188
X2           0.93618901  2.5502439
> #Membentuk klasifikasi
> yp_hat<-fitted(reg)
> datareg$yp_hat<-yp_hat
> class<-table(datareg$Y,datareg$yp_hat>0.5)
> class
   
    FALSE TRUE
  0   286  124
  1   112  396
> #Uji Kelayakan Model
> logitgof(datareg$Y,fitted(reg))

    Hosmer and Lemeshow test (binary model)

data:  datareg$Y, fitted(reg)
X-squared = 15.542, df = 8, p-value = 0.04942

3 HASIL DAN PEMBAHASAN

3.1 Model Logit

Berdasarkan perhitungan software R yang telah dilakukan, didapatkan model logit yang terbentuk sebagai berikut: \[ Logit(\widehat{\pi})= 4,262160 -0,034779X_1 +0,936189X_2 \] Interpretasi:

  • Ketika nilai seluruh variabel prediktor (MaxHR dan Oldpeak) bernilai 0, nilai logit (log odds) dari variabel dependen (indikasi gagal jantung) bernilai 4,262160.

  • Setiap kenaikan 1 dari variabel prediktor MaxHR (\(X_1\)), nilai logit variabel dependen (indikasi gagal jantung) akan turun sebesar 0,034779.

  • Setiap kenaikan 1 dari variabel prediktor Oldpeak (\(X_2\)), nilai logit variabel dependen (indikasi gagal jantung) akan naik sebesar 0,936189.

3.2 Uji Parsial

3.2.1 Nilai-p untuk variabel prediktor MaxHR (\(X_1\))

> summary$coefficients[, "Pr(>|z|)"]
 (Intercept)           X1           X2 
8.149308e-19 4.215497e-24 8.064298e-25 

P-value = 4.215497e-24 < 5%

Dengan taraf nyata 5%, dapat disimpulkan bahwa variabel prediktor MaxHR berpengaruh sangat signifikan terhadap variabel dependen yaitu indikasi gagal jantung.

3.2.2 Nilai-p untuk variabel prediktor Oldpeak (\(X_2\))

> summary$coefficients[, "Pr(>|z|)"]
 (Intercept)           X1           X2 
8.149308e-19 4.215497e-24 8.064298e-25 

P-value = 8.064298e-25 < 5%

Dengan taraf nyata 5%, dapat disimpulkan bahwa variabel prediktor Oldpeak berpengaruh sangat signifikan terhadap variabel dependen yaitu indikasi gagal jantung.

3.3 R-Squared

> Rsq<-1-(163.65/226.88)
> Rsq
[1] 0.2786936

Variabel prediktor (MaxHR dan Oldpeak) hanya menjelaskan pengaruh terhadap variabel dependen Y (Indikasi gagal jantung) sebanyak 0,28. Sedangkan sisanya 0,72 dipengaruhi oleh variabel lain di luar model.

3.4 Odds Ratio

> OR_beta
(Intercept)          X1          X2 
 70.9631076   0.9658188   2.5502439 
  • Intercept (OR = 70.9631076): Tingginya odds terkena gagal jantung pada baseline ketika semua variabel prediktor bernilai nol, namun ini biasanya tidak memiliki interpretasi praktis langsung karena nilai nol untuk MaxHR dan oldpeak tidak realistis.

  • MaxHR (OR = 0.9658188): Ada hubungan negatif antara detak jantung maksimum yang tercapai dan risiko gagal jantung. Peningkatan dalam MaxHR mengurangi risiko gagal jantung, dengan setiap unit peningkatan dalam MaxHR menurunkan odds terkena gagal jantung.

  • Oldpeak (OR = 2.5502439): Ada hubungan positif antara depresi ST yang diinduksi oleh olahraga dan risiko gagal jantung. Peningkatan dalam oldpeak meningkatkan risiko gagal jantung, dengan setiap unit peningkatan dalam oldpeak meningkatkan odds terkena gagal jantung.

4 KESIMPULAN

Berdasarkan analisis regresi logistik yang telah dilakukan, dapat disimpulkan bahwa Variabel prediktor (detak jantung maksimum yang tercapai (MaxHR) dan Depresi ST yang diinduksi oleh olahraga relatif terhadap istirahat(Oldpeak)) berpengaruh sangat signifikan terhadap variabel dependen (indikasi gagal jantung). Peningkatan detak jantung maksimum yang tercapai (MaxHR) tampaknya melindungi terhadap gagal jantung, sedangkan peningkatan depresi ST yang diinduksi oleh olahraga (Oldpeak) meningkatkan risiko gagal jantung. Temuan ini dapat membantu dalam penilaian risiko dan pengambilan keputusan klinis untuk pencegahan dan pengelolaan gagal jantung.

5 DAFTAR PUSTAKA

Achmad Effendi, Ni Wayan Surya Wardhani, Rahma Fitriani, Eni Sumarminingsih. (2020). Analisis Regresi: Teori dan Aplikasi dalam R. Malang: Universitas Brawijaya Press.

https://www.kaggle.com/datasets/fedesoriano/heart-failure-prediction