Model Regresi Logistik Untuk Mengetahui Pengaruh Diabetes Penduduk Amerika Suku Indian Pima

Fitriyah Ayu Rahmawati

6/01/2023

1 PENDAHULUAN

1.1 Latar Belakang

Pada zaman sekarang ini, Statistika sangat diperlukan dalam memprediksi atau memperkirakan suatu kejadian. Statistika sangat bermanfaat di berbagai bidang. Misalnya, dalam bidang kesehatan, statistika diperlukan untuk mengetahui faktor apa saja yang menyebabkan suatu wabah atau penyakit. Diabetes merupakan salah satu penyakit berbahaya yang dapat mengakibatkan kematian karena komplikasi yang ditimbulkannya.Sangat banyak faktor-faktor yang menjadi penyebab penyakit in, diantaranya usia, merokok, kadar glukosa, BMI atau Indeks Massa Tubuh, fungsi silsilah diabetes, kehamilan, serum sodium, dan lain-lain. Untuk dapat menentukan apa saja faktor yang berpengaruh signifikan dapat kita lakukan dengan analisis regresi logistik.

Analisis regresi logistik adalah metode statistik yang digunakan untuk memprediksi atau menjelaskan hubungan antara variabel independen yang terdiri dari variabel kategorikal atau biner (disebut variabel dependen) dengan satu atau lebih variabel independen. Regresi logistik banyak digunakan dalam berbagai bidang, termasuk ilmu sosial, kedokteran, ekonomi, dan pemasaran. Tujuan utama dari analisis regresi logistik adalah untuk mengidentifikasi variabel independen yang berpengaruh signifikan terhadap variabel dependen, serta untuk memahami arah dan kekuatan hubungan antara variabel independen dan variabel dependen. Dengan menggunakan analisis regresi logistik, kita dapat menghasilkan model prediktif yang dapat digunakan untuk memprediksi kemungkinan suatu peristiwa terjadi berdasarkan nilai-nilai variabel independen yang diberikan.

1.2 Rumusan Masalah

Berdasarkan pada latar belakang di atas, penulis merumuskan beberapa rumusan masalah, diantaranya

  1. Bagaimana model regresi logistik biner yang dihasilkan berdasarkan data Suku Indian Pima, penduduk Amerika terhadap penyakit diabetes?
  2. Apa saja penyebab yang dapat berpengaruh signifikan terhadap penyakit diabetes pada Suku Indian Pima?
  3. Bagaimana kesimpulan yang didapatkan dari kejadian penyakit diabetes pada Suku Indian Pima?

1.3 Tujuan Praktikum

Berdasarkan latar belakang dan juga rumusan masalah, penulis dapat mengetahui beberapa tujuan masalah, diantaranya :

  1. Memberikan informasi mengenai model yang sesuai dari analisis regresi logistik biner yang berdasarkan data Suku Indian Pima, penduduk Amerika terhadap penyakit diabetes.
  2. Memberikan informasi mengenai penyebab yang dapat berpengaruh signifikan terhadap penyakit diabetes pada Suku Indian Pima.
  3. Memberikan informasi mengenai kesimpulan yang didapatkan dari kejadian penyakit diabetes pada Suku Indian Pima.

1.4 Manfaat Praktikum

  1. Manfaat untuk pembaca

    Pembaca dapat memperdalam wawasan mengenai faktor apa saja yang dapat berpengaruh signifikan dalam penyakit diabetes. Selain itu, pembaca dapat menjadikan ini sebagai referensi untuk penelitian, melakukan analisis, atau sebagai sumber belajar.

  2. Manfaat untuk penulis

    Penulit dapat menerapkan suatu kejadian nyata dalam lingkungan masyarakat dan menganalisis lebih lanjut apa saja faktor yang berpengaruh signifikan dari suatu kejadian dengan melakukan analisis sehingga dapat diterapkan dan diimplementasikan dengan baik dalam kehidupan di masyarakat.

2 TINJAUAN PUSTAKA

2.1 Statistika Deskriptif

Statiktika deskriptif adalah salah satu cabang statistika yang berkaitan dengan analisis dan interpretasi data. Tujuan dari analisis statistika deskriptif adalah untuk memberikan gambaran yang komprehensif tentang data yang ada. Pembagian statistika deskriptif ada dua, yaitu ukuran pemusatan data, seperti rata-rata (mean), nilai tengah data setelah diurutkan (median), nilai yang paling sering muncul (modus), dan lain lainnya. Selain itu, terdapat ukuran penyebaran data, diantaranya keragaman, standar deviasi, dan rentang (Newbold, Carlson, & Thorne, 2019).

2.2 Regresi Logistik

Model regresi logistik adalah model regresi yang sering digunakan dalam menganalisis data dengan variabel diskrit. Oleh karena itu, analisis regresi logistik biasa digunakan untuk menjelaskan hubungan antara variabel prediktor dengan variabel respon yang berupa data berskala interval dan/atau skala kategorik (Hosmer & Lemeshow, 2000).

Regresi Logistik menggambarkan dan mengestimasi hubungan antar variabel respon (y) yang berupa kategorik dengan variabel prediktor (x) yang berpengaruh pada suatu fenomena. Model regresi logistik biner merupakan model regresi logistik yang mana variabel responnya berupa data kualitatif dikotomi yaitu bernilai 0 dan 1. Bernilai 1 untuk menyatakan keberadaan sebuah karakteristik dan bernilai 0 untuk menyatakan ketidakberadaan sebuah karakteristik. Bentuk model regresi logistik biner dengan beberapa variabel prediktor adalah :

\[ \pi(x)= \frac{\exp[\beta_0+\beta_1x_1+...+\beta_px_p]}{1+\exp[\beta_0+\beta_1x_1+...+\beta_px_p]} \]

Persamaan tersebut ditransformasikan sehingga menghasilkan bentuk logit regresi logistik sebagai berikut :

\[ g(x) = ln (\frac{\pi(x)}{1-\pi(x)})=\beta_0+\beta_1x_1+...+\beta_px_p \]

dimana:

\(\pi\) : peluang kejadian sukses dengan nilai probabilitas 0≤π(x)≤1

\(\beta_0\) : intersept (bilangan konstan)

\(\beta_1...\beta_p\) : parameter regresi logistik

\(x_1...x_p\) : nilai peubah bebas

\(p\) : banyaknya prediktor

2.3 Uji Asumsi Regresi Logistik

UJi asumsi yang digunakan dalam analisis regresi logistik yaitu uji nonmultikolinearitas. Asumsi nonmultikolinearitas tidak boleh dilanggar karena apabila antar variabel terjadi multikolineartitas maka akan menyebabkan model menjadi tidak terdefinisi yang dapat berarti bahwa parameter dalam model regresi diestimasi. Model regresi yang baik seharusnya tidak terjadi korelasi tinggi diantara variabel bebas (tidak terjadi multikolinearitas).

Untuk mendeteksi adanyakasus multikolinearitas dapat dilakukan dengan melihat nilai VIF (variance inflation factor) dengan rumus :

\[ VIF = \frac{1}{Tolerance} \]

\[ Tolerance = \frac{1}{(1-R^2)} \]

Batas nilai VIF adalah 10. Apabila VIF kurang dari 10 atau nilai tolerance lebih dari 0.10, maka tidak terjadi kasus multikolinearitas. Apabila nilai VIF lebih dari 10 atau nilai tolerance kurang dari 0.10, maka dapat diartikan terjadi indikasi multikolinearitas yang tinggi antar vasiael prediktor. Regresi yang baik memiliki VIF sekitar angka 1 dan mempunyai nilai tolerance mendekati 1 (Diksa & Fithriasari, 2021).

2.4 Uji Signifikansi Keseluruhan Model

Untuk mengetahui signifikansi parameter β terhadap variabel dependennya secara keseluruhan menggunakan Uji simultan (serentak). Menurut Homser dan Lemeshow, pengujian parameter model dengan cara serentak dapat menggunakan uji ratio likelihood test dengan statistik uji G, yang dapat digunakan untuk menguji peranan varibel independen dalam model secara bersama-sama.

Hipotesis

\(H_0 : \beta_1=\beta_2=...=\beta_i=0\)

\(H_1\) : minimal terdapat satu parameter \(\beta_i≠0\)

Statistik Uji

\[ G = -2log\frac{L_0}{L_p} \]

dimana:

p : banyaknya variabel prediktor dalam model

L0 : nilai likelihood tanpa variabel prediktor

Lp : nilai likelihood dengan variabel prediktorUji Parsial Parameter Model

Statistik uji G mengikuti distribusi chi square, sehingga untuk memeperoleh keputusan dilakukan perbandingan dengan nilai 𝜒2 tabel, dengan derajat bebas (db) = k – 1, k merupakan banyaknya variabel predictor. Kriteria penolakan (tolak H0) jika nilai G>𝜒2 tabel atau jika p-value<⍺ (Diksa & Fithriasari, 2021).

2.5 Uji Parsial Parameter Model

Pengujian parsial digunakan untuk menguji pengaruh setiap 𝛽𝑖 secara individual dalam model yang diperoleh. Pengujian parsial parameter model regresi logistik ini menggunakan Uji Wald.

Hipotesis

\(H_0 : \beta_j=0\)

\(H_1 : \beta_j≠0\) dengan j=1,2,…,p

Statistik Uji

\[ W = \frac{\hat\beta_j}{SE(\hat\beta_j)} \] dimana:

\(SE(\hat\beta_j)\) : dugaan galat baku untuk koefisien \(\beta_j\)

\(\hat\beta_j\) : nilai dugaan untuk parameter \((\beta_j)\)

\(\beta_1...\beta_p\) : parameter regresi logistik

Hipotesis awal akan ditolak apabila nilai W > \(Z(\alpha/2)\). Apabila hipotesis awal ditolak, maka variabel prediktor berpengaruh signifikan terhadap variabel respons (Diksa & Fithriasari, 2021).

2.6 R Square

Uji Psoude R Square merupakan uji yang digunakan untuk menunjukkan adanya kekuatan hubungan variasi variabel dependen dengan penjelasan variabel independen. Psoude R Square dapat diketahui dari salah satu nilai Cox and Snell untuk mengukur nilai dengan nilai maksimum 1, Nagelkerke untuk memastikan nilainya berkisar antara 0 sampai 1, dan McFadden untuk mengetahui tingkat variabilitas.

2.7 Odds Ratio

Secara umum, rasio peluang atau Odds Ratio merupakan sekumpulan peluang yang dibagi oleh peluang lainnya. Nilai odds ratio didefinisikan sebagai berikut :

\[ 𝛙= \frac{\pi(1)/[1-\pi(1)]}{\pi(0)/[1-\pi(0)]}=\frac{e[(\beta_0+\beta_1)]}{e[\beta_0]} \]

Bila nilai \(\psi=1\) , artinya adalah antara kedua variabel tersebut tidak ada hubungan. Apabila nilai \(\psi<1\) berarti bahwa antara kedua variabel memiliki hubungan yang terbalik atau terdapat hubungan negatif terhadap perubahan kategori dari nilai x dan sebaliknya apabila nilai \(\psi>1\) (Tampil, Komalig, & Lamgi, 2017).

2.8 Uji Kelayakan Model

Uji Hosmer-Lemeshow adalah goodness of fit berdasarkan nilai-nilai prediksi peluang. Namun, Hosmer-Lemeshow Test memiliki kelemahan dimana kuasa uji akan meningkat dengan ukuran sampel n. Jika ukuran sampel sangat besar, maka kuasa uji akan sangat tinggi sehingga cenderung menolak \(H_0\) meskipun \(H_0\) benar. Kuasa ujinya akan kurang jika ukuran sampelnya kecil. Selain itu jika data berasal dari populasi yang sama, uji ini akan cenderung menerima \(H_0\) untuk sampel kecil dan cenderung menolak \(H_0\) untuk sampel besar, dengan kata lain ada masalah kestabilan uji akibat perbedaan ukuran sampel (Yuhadisi dan Suliadi, 2021).

Prinsip dasar dari uji Hosmer-Lemeshow ini yaitu pertama dengan mengelompokkan π ̂ ke dalam g kelompok, lalu kemudian hitung Ĉ sebagai statistik ujinya (Hosmer dan Lemeshow, 2000). Hipotesis yang digunakan untuk pengujian Goodness of fit sebagai berikut:

\(H_0\) : Model yang digunakan sesuai dengan data.

\(H_1\) : Model yang digunakan tidak sesuai dengan data.

Untuk perhitungan statistik uji, digunakan persamaan berikut : \[ C = \Sigma \frac{(O_k-n_k\bar\pi_k)^2}{n_k\bar\pi_k(1-\bar\pi_k)} \] Daerah penolakan : tolak \(H_0\) jika \(C>𝟀^2(g-2,n)\)

keterangan :

\(O_k\) : observasi pada grup ke-k

\(\bar\pi_k\) : rata-rata taksiran peluang

\(g\) ; jumlah grup

\(n_k\) : banyak observasi pada grup ke-k

3 SOURCE CODE

3.1 Library

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

3.2 Data

Data yang digunakan merupakan data sekunder yang berasal dari kaggle yang berasal dari “National Institute of Diabetes and Digestive and Kidney Diseases” yang merupakan bagian Database Pima Indians Diabetes. Pada data ini berisikan beberapa pengaruh yang menyebabkan Suku Indian Pima,Penduduk Negara Amerika mengalami diabetes atau tidak. Untuk pengujiannya diambil sampel 50 warga Suku Indian Pima.

Keterangan :

  • Y : Status Diabetes (0 : Tidak Menderita Diabetes, 1 : Menderita Diabetes)

  • X1 : Kadar Glukosa

  • X2 : BMI

  • X3 : Fungsi Silsilah Diabetes

> #Mengimpor data
> setwd("D:/KOMSTAT PIPIT")
> data <- read_excel("DataDiabetes.xlsx")
> View(data)
> str(data)
tibble [50 x 4] (S3: tbl_df/tbl/data.frame)
 $ Glucose                 : num [1:50] 148 85 183 89 137 116 78 115 197 125 ...
 $ BMI                     : num [1:50] 33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 0 ...
 $ DiabetesPedigreeFunction: num [1:50] 0.627 0.351 0.672 0.167 2.288 ...
 $ Outcome                 : num [1:50] 1 0 1 0 1 0 1 0 1 1 ...
> Y <- as.factor(data$Outcome)
> X1 <- data$Glucose
> X2 <- data$BMI
> X3 <- data$DiabetesPedigreeFunction
> str(Y)
 Factor w/ 2 levels "0","1": 2 1 2 1 2 1 2 1 2 2 ...
> summary(data)
    Glucose           BMI        DiabetesPedigreeFunction    Outcome   
 Min.   : 71.0   Min.   : 0.00   Min.   :0.1340           Min.   :0.0  
 1st Qu.:103.0   1st Qu.:27.18   1st Qu.:0.2540           1st Qu.:0.0  
 Median :118.5   Median :31.35   Median :0.4090           Median :0.5  
 Mean   :127.4   Mean   :31.26   Mean   :0.5208           Mean   :0.5  
 3rd Qu.:146.8   3rd Qu.:37.48   3rd Qu.:0.5867           3rd Qu.:1.0  
 Max.   :197.0   Max.   :45.80   Max.   :2.2880           Max.   :1.0  

Data yang sudah ada pada file excel dan diberi nama ‘data’. Setelah itu, nama kolomnya diubah dan diberi inisial Y, X1, X2, dan X3. Tujuannya adalah untuk mempermudah dan mempersingkat selama proses coding. Selain itu, juga akan ditampilkan rangkuman statistika deskriptif masing-masing variabel dalam syntax summary(data).

> #Membentuk data frame
> df_data<-data.frame(X1,X2,X3,Y)
> str(df_data)
'data.frame':   50 obs. of  4 variables:
 $ X1: num  148 85 183 89 137 116 78 115 197 125 ...
 $ X2: num  33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 0 ...
 $ X3: num  0.627 0.351 0.672 0.167 2.288 ...
 $ Y : Factor w/ 2 levels "0","1": 2 1 2 1 2 1 2 1 2 2 ...

Data Frame

setelah diberi nama sesuai dengan variabel pada data, data yang akan dianalisis dikelompokkan atau disusun dalam data frame yang diberi nama df_data agar dapat dilakukan proses analisis.

3.3 Uji Asumsi Nonmultikolinearitas

> #asumsi nonmultikolinearitas
> reg1 <- lm(X1~X2+X3, data=df_data)
> summary(reg1)

Call:
lm(formula = X1 ~ X2 + X3, data = df_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-55.489 -25.989  -6.164  18.831  74.435 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 104.8630    16.4783   6.364 7.56e-08 ***
X2            0.5173     0.5289   0.978    0.333    
X3           12.1898    11.2577   1.083    0.284    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 32.27 on 47 degrees of freedom
Multiple R-squared:  0.06023,   Adjusted R-squared:  0.02024 
F-statistic: 1.506 on 2 and 47 DF,  p-value: 0.2323
> R2_1 <- 1/(1-0.06023)
> R2_1
[1] 1.06409
> 
> reg2 <- lm(X2~X1+X3, data =df_data)
> summary(reg2)

Call:
lm(formula = X2 ~ X1 + X3, data = df_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-29.5300  -3.4057   0.9425   5.8184  14.8958 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.39666    5.10179   4.586 3.36e-05 ***
X1           0.03855    0.03942   0.978   0.3331    
X3           5.66540    2.99973   1.889   0.0651 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.809 on 47 degrees of freedom
Multiple R-squared:  0.1047,    Adjusted R-squared:  0.06663 
F-statistic: 2.749 on 2 and 47 DF,  p-value: 0.07429
> R2_2 <- 1/(1-0.1047)
> R2_2
[1] 1.116944
> 
> reg3 <- lm(X3~X1+X2, data =df_data)
> summary(reg3)

Call:
lm(formula = X3 ~ X1 + X2, data = df_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.49239 -0.22643 -0.10777  0.07861  1.60053 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)  
(Intercept) -0.122701   0.287190  -0.427   0.6712  
X1           0.001997   0.001844   1.083   0.2844  
X2           0.012451   0.006593   1.889   0.0651 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4129 on 47 degrees of freedom
Multiple R-squared:  0.1087,    Adjusted R-squared:  0.07082 
F-statistic: 2.867 on 2 and 47 DF,  p-value: 0.06684
> R2_3 <- 1/(1-0.1087)
> R2_3
[1] 1.121957

Pada uji asumsi variabel X1 atau kadar glukosa, variabel X2 yaitu BMI atau indeks massa tubuh, dan variabel X3 yaitu fungsi silsilah diabetes digunakan regresi linier untuk mengetahui hubungan dengan variabel lain karena variabel kadar glukosa bukan tipe kategorik atau memiliki skala pengukuran numerik. Dalam hasil regresi linear diambil R square kemudian dihitung nilai VIF nya.

3.4 Analisis Regresi Logistik

> #Analisis Regresi Logistik
> reglog<-glm(Y~X1+X2+X3,family=binomial,data=df_data)
> summary(reglog)

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

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.66724  -1.04181  -0.06556   0.95270   1.88865  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -4.48385    1.76463  -2.541   0.0111 *
X1           0.02175    0.01054   2.063   0.0391 *
X2           0.04349    0.04021   1.082   0.2794  
X3           0.71376    0.90135   0.792   0.4284  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 69.315  on 49  degrees of freedom
Residual deviance: 59.780  on 46  degrees of freedom
AIC: 67.78

Number of Fisher Scoring iterations: 4

Pada analisis regresi logistik ini diberi nama reglog dengan menggunakan fungsi glm() dan untuk memunculkan hasil regresi menggunakan summary(reglog).

3.5 Uji Signifikansi Keseluruhan Model

> #Uji Signifikansi Keseluruhan Model
> pR2(reglog)
fitting null model for pseudo-r2
        llh     llhNull          G2    McFadden        r2ML        r2CU 
-29.8901392 -34.6573590   9.5344397   0.1375529   0.1736103   0.2314804 
> qchisq(0.95,2)
[1] 5.991465

Pada uji signifikansi keseluruhan model menggunakan fungsi pR2 untuk mendapatkan nilai statistik G2 kemudian akan dibandingkan dengan nilai Chi Square tabel.

3.6 Uji Parsial Parameter Model

> #Uji Parsial Parameter Model
> summary(reglog)

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

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.66724  -1.04181  -0.06556   0.95270   1.88865  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -4.48385    1.76463  -2.541   0.0111 *
X1           0.02175    0.01054   2.063   0.0391 *
X2           0.04349    0.04021   1.082   0.2794  
X3           0.71376    0.90135   0.792   0.4284  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 69.315  on 49  degrees of freedom
Residual deviance: 59.780  on 46  degrees of freedom
AIC: 67.78

Number of Fisher Scoring iterations: 4

Pada uji parsial parameter model menggunakan summary(reglog) kemudian akan muncul p-value masing-masing variabel prediktor untuk ditunjukkan apakah variabel-variabel tersebut perpengaruh atau tidak terhadap variabel respon.

3.7 R Square

> #R square
> summary(reglog)

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

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.66724  -1.04181  -0.06556   0.95270   1.88865  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -4.48385    1.76463  -2.541   0.0111 *
X1           0.02175    0.01054   2.063   0.0391 *
X2           0.04349    0.04021   1.082   0.2794  
X3           0.71376    0.90135   0.792   0.4284  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 69.315  on 49  degrees of freedom
Residual deviance: 59.780  on 46  degrees of freedom
AIC: 67.78

Number of Fisher Scoring iterations: 4
> Rsq<-1-(59.780/69.315)
> Rsq
[1] 0.1375604

Untuk menghitung R Square pada regresi logistik ini diberi nama Rsq dan dalam hasil tersebut kita akan melihat sejauh mana variabel bebas dalam model regresi mampu menjelaskan variabel terikatnya.

3.8 Odds Ratio

> #Odds Ratio
> beta<-(coef(reglog))
> beta
(Intercept)          X1          X2          X3 
-4.48384851  0.02174988  0.04349359  0.71375671 
> OR_beta<-exp(beta)
> OR_beta
(Intercept)          X1          X2          X3 
 0.01128988  1.02198813  1.04445329  2.04164674 
> cbind(beta,OR_beta)
                   beta    OR_beta
(Intercept) -4.48384851 0.01128988
X1           0.02174988 1.02198813
X2           0.04349359 1.04445329
X3           0.71375671 2.04164674

Pada perhitungan odds ratio terlebih dahulu mengumpulkan koefien masing-masing variabel kemudian dihitung nilai odds ratio yang diberi nama OR_beta. Untuk mempermudah menarik kesimpulan, hasil-hasil yang sudah didapatkan akan dibentuk matriks yang berisi koefisien masing-masing variabel dengan hasil odds ratio.

3.9 Pembentukan Klasifikasi

> #Membentuk klasifikasi
> yp_hat<-fitted(reglog)
> df_data$yp_hat<-yp_hat
> df_data
    X1   X2    X3 Y    yp_hat
1  148 33.6 0.627 1 0.6556669
2   85 26.6 0.351 0 0.2265928
3  183 23.3 0.672 1 0.7289741
4   89 28.1 0.167 0 0.2302780
5  137 43.1 2.288 1 0.8811676
6  116 25.6 0.201 0 0.3309344
7   78 31.0 0.248 1 0.2206220
8  115 35.3 0.134 0 0.4129834
9  197 30.5 0.158 1 0.7755997
10 125  0.0 0.232 1 0.1680484
11 110 37.6 0.191 0 0.4207548
12 168 38.0 0.537 1 0.7696214
13 139 27.1 1.441 0 0.6784339
14 189 30.1 0.398 1 0.7720830
15 166 25.8 0.587 1 0.6609971
16 100 30.0 0.484 1 0.3410553
17 118 45.8 0.551 1 0.6148921
18 107 29.6 0.254 1 0.3344988
19 103 43.3 0.183 0 0.4428209
20 115 34.6 0.529 1 0.4749816
21 126 39.3 0.704 0 0.6150094
22  99 35.4 0.388 0 0.3742563
23 196 39.8 0.451 1 0.8620089
24 119 29.0 0.263 1 0.3901739
25 143 36.6 0.254 1 0.5985779
26 125 31.1 0.205 1 0.4338542
27 147 39.4 0.257 1 0.6480471
28  97 23.2 0.487 0 0.2655225
29 145 22.2 0.245 0 0.4527196
30 117 34.1 0.337 0 0.4463460
31 109 36.0 0.546 0 0.4606735
32 158 31.6 0.851 1 0.7179745
33  88 24.8 0.267 0 0.2140564
34  92 19.9 0.188 0 0.1849519
35 122 27.6 0.512 0 0.4342585
36 103 24.0 0.966 0 0.3751288
37 138 33.2 0.420 0 0.5649803
38 102 32.9 0.665 1 0.4110143
39  90 38.2 0.503 1 0.3761587
40 111 37.1 1.390 1 0.6309098
41 180 34.0 0.271 0 0.7508853
42 133 40.2 0.696 0 0.6579342
43 106 22.7 0.235 0 0.2643804
44 171 45.4 0.721 1 0.8487214
45 159 27.4 0.294 0 0.5928961
46 180 42.0 1.893 1 0.9314387
47 146 29.7 0.564 0 0.5953078
48  71 28.0 0.586 0 0.2135723
49 103 39.1 0.344 1 0.4261737
50 105  0.0 0.305 0 0.1210616
> klasifikasi<-table(df_data$Y,df_data$yp_hat>0.5)
> klasifikasi
   
    FALSE TRUE
  0    18    7
  1    10   15

Pembentukan klasifikasi digunakan untuk mempermudah kita dalam melakukan penyekatan kelas kelas antar variabel dengan kriteria-kriteria tertentu yang akan dimunculkan dalam bentuk tabel klasifikasi.

3.10 Uji kelayakan Model

> #Uji Kelayakan Model
> logitgof(df_data$Y,fitted(reglog))

    Hosmer and Lemeshow test (binary model)

data:  df_data$Y, fitted(reglog)
X-squared = 3.8373, df = 8, p-value = 0.8715

Pada uji kelayakan model menggunakan fungsi logitgof() yang kemudian akan muncul hasil pengujian apakah model yang kita ambil untuk melakukan analisis regresi logistik ini sudah sesuai dengan data atau tidak.

4 HASIL DAN PEMBAHASAN

4.1 Statistika Deskriptif

> summary(data)
    Glucose           BMI        DiabetesPedigreeFunction    Outcome   
 Min.   : 71.0   Min.   : 0.00   Min.   :0.1340           Min.   :0.0  
 1st Qu.:103.0   1st Qu.:27.18   1st Qu.:0.2540           1st Qu.:0.0  
 Median :118.5   Median :31.35   Median :0.4090           Median :0.5  
 Mean   :127.4   Mean   :31.26   Mean   :0.5208           Mean   :0.5  
 3rd Qu.:146.8   3rd Qu.:37.48   3rd Qu.:0.5867           3rd Qu.:1.0  
 Max.   :197.0   Max.   :45.80   Max.   :2.2880           Max.   :1.0  

Pada output tersebut memunculkan rangkuman statistika deskriptif dari masing-masing variabel yang akan dianalisis. Statistika deskriptif yang tedapat pada output tersebut diantaranya adalah nilai paling rendah (min), Kuartil bawah (1st Qu), Median atau nilai tengah data setelah diurutkan, rata-rata, kuartil atas (3rd Qu), dan nilai paling tinggi (max).

4.2 Uji Asumsi Nonmultikolinearitas

Berdasarkan Data yang digunakan, diperoleh output sebagai berikut:

> reg1 <- lm(X1~X2+X3, data=df_data)
> summary(reg1)

Call:
lm(formula = X1 ~ X2 + X3, data = df_data)

Residuals:
    Min      1Q  Median      3Q     Max 
-55.489 -25.989  -6.164  18.831  74.435 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 104.8630    16.4783   6.364 7.56e-08 ***
X2            0.5173     0.5289   0.978    0.333    
X3           12.1898    11.2577   1.083    0.284    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 32.27 on 47 degrees of freedom
Multiple R-squared:  0.06023,   Adjusted R-squared:  0.02024 
F-statistic: 1.506 on 2 and 47 DF,  p-value: 0.2323

> R2_1 <- 1/(1-0.06023)
> R2_1
[1] 1.06409

Hasil VIF yang didapatkan pada variabel X1 atau kadar glukosa yaitu sebesar 1.06409 sehingga memenuhi kriteria nonmultikolinearitas yaitu VIF<10. Hal tersebut berarrti bahwa tidak terdapat korelasi antara variabel X1 atau kadar glukosa dengan variabel yang lainnya.

> reg2 <- lm(X2~X1+X3, data =df_data)
> summary(reg2)

Call:
lm(formula = X2 ~ X1 + X3, data = df_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-29.5300  -3.4057   0.9425   5.8184  14.8958 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.39666    5.10179   4.586 3.36e-05 ***
X1           0.03855    0.03942   0.978   0.3331    
X3           5.66540    2.99973   1.889   0.0651 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 8.809 on 47 degrees of freedom
Multiple R-squared:  0.1047,    Adjusted R-squared:  0.06663 
F-statistic: 2.749 on 2 and 47 DF,  p-value: 0.07429

> R2_2 <- 1/(1-0.1047)
> R2_2
[1] 1.116944

Hasil VIF yang didapatkan pada variabel X2 atau BMI (Indeks Massa Tubuh) yaitu sebesar 1.116944 sehingga memenuhi kriteria nonmultikolinearitas yaitu VIF<10. Hal tersebut berarti bahwa tidak terdapat korelasi antara variabel X2 atau BMI dengan variabel yang lainnya.

> reg3 <- lm(X3~X1+X2, data =df_data)
> summary(reg3)

Call:
lm(formula = X3 ~ X1 + X2, data = df_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.49239 -0.22643 -0.10777  0.07861  1.60053 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)  
(Intercept) -0.122701   0.287190  -0.427   0.6712  
X1           0.001997   0.001844   1.083   0.2844  
X2           0.012451   0.006593   1.889   0.0651 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4129 on 47 degrees of freedom
Multiple R-squared:  0.1087,    Adjusted R-squared:  0.07082 
F-statistic: 2.867 on 2 and 47 DF,  p-value: 0.06684

> R2_3 <- 1/(1-0.1087)
> R2_3
[1] 1.121957

Hasil VIF yang didapatkan pada variabel X3 atau fungsi silsilah diabetes yaitu sebesar 1.121957 sehingga memenuhi kriteria nonmultikolinearitas yaitu VIF<10. Hal tersebut berarti bahwa tidak terdapat korelasi antara variabel X3 atau fungsi massa diabetes dengan variabel yang lainnya.

4.3 Analisis Regresi Logistik

> #Analisis Regresi Logistik
> reglog<-glm(Y~X1+X2+X3,family=binomial,data=df_data)
> summary(reglog)

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

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.66724  -1.04181  -0.06556   0.95270   1.88865  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -4.48385    1.76463  -2.541   0.0111 *
X1           0.02175    0.01054   2.063   0.0391 *
X2           0.04349    0.04021   1.082   0.2794  
X3           0.71376    0.90135   0.792   0.4284  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 69.315  on 49  degrees of freedom
Residual deviance: 59.780  on 46  degrees of freedom
AIC: 67.78

Number of Fisher Scoring iterations: 4

Berdasarkan hasil analisis regresi logistik, dihasilkan persamaan analisis regresi sebagai betikut:

\[ g(x) = ln (\frac{\pi(x)}{1-\pi(x)})=-4.48385+0.02175X1+ 0.04349X2+0.71376X3 \]

Interpretasi masing-masing parameter yaitu :

  • Konstanta sebesar -4.4385 berarti apabila variabel kadar glukosa (X1), variabel BMI (X2), dan variabel fungsi silsilah diabetes (X3) bernilai konstan atau sebesar nol maka akan hasil y duga yang didapatkan turun sebesar 4.4385 atau kejadian orang terkena diabetes akan berkurang sebesar 4 kejadian.

  • Koefisien variabel kadar glukosa (X1) sebesar 0.02175 yang berarti apabila variabel kadar glukosa naik 1 satuan akan diikuti naiknya kejadian orang terkena diabetes sebesar 0.02175 atau 0 kejadian dengan asumsi variabel BMI (X2) dan fungsi silsilah diabetes (X3) dianggap konstan.

  • Koefisien variabel BMI (X2) sebesar 0.04349 yang berarti apabila variabel BMI naik 1 satuan akan diikuti naiknya kejadian orang terkena diabetes sebesar 0.04349 atau 0 kejadian dengan asumsi variabel kadar glukosa (X1) dan fungsi silsilah diabetes (X3) dianggap konstan.

  • Koefisien variabel fungsi silsilah diabetes (X3) sebesar 0.71376 yang berarti apabila variabel fungsi silsilah diabetes naik 1 satuan akan diikuti naiknya kejadian orang terkena diabetes sebesar 0.71376 atau 1 kejadian dengan asumsi variabel kadar glukosa (X1) dan BMI (X2) dianggap konstan.

4.4 Uji Signifikansi keseluruhan Model

> #Uji Signifikansi Keseluruhan Model
> pR2(reglog)
fitting null model for pseudo-r2
        llh     llhNull          G2    McFadden        r2ML        r2CU 
-29.8901392 -34.6573590   9.5344397   0.1375529   0.1736103   0.2314804 
> qchisq(0.95,2)
[1] 5.991465

Pada output uji signifikansi keseluruhan model dengan fungsi pR2() dapat dilihat hasil statistik G2 sebesar 9.5344397 dan nilai Chi Square dengan derajat bebas 2 dan tingkat keyakinan 95% yaitu 5.991465. Nilai Statistik G2 lebih besar dari Chi Square tabel sehingga memutuskan bahwa H0 ditolak dan dapat disimpulkan bahwa secara simultan paling sedikit terdapat satu variabel independen yang mempengaruhi variabel dependen.

4.5 Uji Parsial Parameter Model

> #Uji Parsial Parameter Model
> summary(reglog)

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

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-1.66724  -1.04181  -0.06556   0.95270   1.88865  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -4.48385    1.76463  -2.541   0.0111 *
X1           0.02175    0.01054   2.063   0.0391 *
X2           0.04349    0.04021   1.082   0.2794  
X3           0.71376    0.90135   0.792   0.4284  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 69.315  on 49  degrees of freedom
Residual deviance: 59.780  on 46  degrees of freedom
AIC: 67.78

Number of Fisher Scoring iterations: 4

Pada output uji parsial parameter model dengan fungsi summary() dapat dilihat hasil p-value masing-masing variabel independen dan dapat diartikan sebagai berikut:

  • Variabel kadar glukosa (X1) menghasilkan p-value sebesar 0.0391, karena p-value (0.0391) < \(\alpha\) (0.05), maka dapat diputuskan H0 ditolak. Jadi, dengan tingkat keyakinan 95% dapat disimpulkan bahwa variabel kadar glukosa berpengaruh signifikan terhadap variabel status diabetes.
  • Variabel BMI (X2) menghasilkan p-value sebesar 0.2794, karena p-value (0.2794) > \(\alpha\) (0.05), maka dapat diputuskan H0 diterima. Jadi, dengan tingkat keyakinan 95% dapat disimpulkan bahwa variabel BMI tidak berpengaruh signifikan terhadap variabel status diabetes.
  • Variabel fungsi silsilah diabetes (X3) menghasilkan p-value sebesar 0.4285, karena p-value (0.4284) > \(\alpha\) (0.05), maka dapat diputuskan H0 diterima. Jadi, dengan tingkat keyakinan 95% dapat disimpulkan bahwa variabel fungsi silsilah diabetes tidak berpengaruh signifikan terhadap variabel status diabetes.

4.6 R Square

> Rsq<-1-(59.780/69.315)
> Rsq
[1] 0.1375604

Berdasarkan nilai R Square diatas didapatkan hasil 0.1375604 yang berarti bahwa variabel kadar glukosa (X1), variabel BMI (X2), dan variabel fungsi silsilah diabetes (X3) dapat menjelaskan variabel kejadian diabetes di Suku Indian Pima sebesar 13.76% dan 86.24% lainnya dijelaskann oleh variabel lain di luar model ini.

4.7 Odds Ratio

> #Odds Ratio
> beta<-(coef(reglog))
> beta
(Intercept)          X1          X2          X3 
-4.48384851  0.02174988  0.04349359  0.71375671 
> OR_beta<-exp(beta)
> OR_beta
(Intercept)          X1          X2          X3 
 0.01128988  1.02198813  1.04445329  2.04164674 
> cbind(beta,OR_beta)
                   beta    OR_beta
(Intercept) -4.48384851 0.01128988
X1           0.02174988 1.02198813
X2           0.04349359 1.04445329
X3           0.71375671 2.04164674

Berdasarkan output diatas dapat diartikan sebagai berikut :

  • Variabel kadar glukosa (X1)

    Apabila kadar glukosa seseorang bertambah 1 satuan, maka kecenderungan seseorang menderita diabetes meningkat 1.02198813 kali. Dapat diartikan juga bahwa apabila kadar glukosa seseorang naik maka naik pula potensi orang tersebut menderita diabetes.

  • Variabel BMI (X2)

    Apabila BMI seseorang bertambah 1 satuan, maka kecenderungan seseorang menderita diabetes meningkat 1.02198813 kali. Dapat diartikan juga bahwa apabila BMI atau Indeks Massa Tubuh seseorang naik maka naik pula potensi orang tersebut menderita diabetes.

  • Variabel fungsi silsilah diabetes (X3)

    Apabila fungsi silsilah diabetes seseorang bertambah 1 satuan, maka kecenderungan seseorang menderita diabetes meningkat 2.04164674 kali. Dapat diartikan juga bahwa apabila fungsi silsilah diabetes seseorang naik maka naik pula potensi orang tersebut menderita diabetes.

4.8 Pembentukan Klasifikasi

> yp_hat<-fitted(reglog)
> df_data$yp_hat<-yp_hat
> df_data
    X1   X2    X3 Y    yp_hat
1  148 33.6 0.627 1 0.6556669
2   85 26.6 0.351 0 0.2265928
3  183 23.3 0.672 1 0.7289741
4   89 28.1 0.167 0 0.2302780
5  137 43.1 2.288 1 0.8811676
6  116 25.6 0.201 0 0.3309344
7   78 31.0 0.248 1 0.2206220
8  115 35.3 0.134 0 0.4129834
9  197 30.5 0.158 1 0.7755997
10 125  0.0 0.232 1 0.1680484
11 110 37.6 0.191 0 0.4207548
12 168 38.0 0.537 1 0.7696214
13 139 27.1 1.441 0 0.6784339
14 189 30.1 0.398 1 0.7720830
15 166 25.8 0.587 1 0.6609971
16 100 30.0 0.484 1 0.3410553
17 118 45.8 0.551 1 0.6148921
18 107 29.6 0.254 1 0.3344988
19 103 43.3 0.183 0 0.4428209
20 115 34.6 0.529 1 0.4749816
21 126 39.3 0.704 0 0.6150094
22  99 35.4 0.388 0 0.3742563
23 196 39.8 0.451 1 0.8620089
24 119 29.0 0.263 1 0.3901739
25 143 36.6 0.254 1 0.5985779
26 125 31.1 0.205 1 0.4338542
27 147 39.4 0.257 1 0.6480471
28  97 23.2 0.487 0 0.2655225
29 145 22.2 0.245 0 0.4527196
30 117 34.1 0.337 0 0.4463460
31 109 36.0 0.546 0 0.4606735
32 158 31.6 0.851 1 0.7179745
33  88 24.8 0.267 0 0.2140564
34  92 19.9 0.188 0 0.1849519
35 122 27.6 0.512 0 0.4342585
36 103 24.0 0.966 0 0.3751288
37 138 33.2 0.420 0 0.5649803
38 102 32.9 0.665 1 0.4110143
39  90 38.2 0.503 1 0.3761587
40 111 37.1 1.390 1 0.6309098
41 180 34.0 0.271 0 0.7508853
42 133 40.2 0.696 0 0.6579342
43 106 22.7 0.235 0 0.2643804
44 171 45.4 0.721 1 0.8487214
45 159 27.4 0.294 0 0.5928961
46 180 42.0 1.893 1 0.9314387
47 146 29.7 0.564 0 0.5953078
48  71 28.0 0.586 0 0.2135723
49 103 39.1 0.344 1 0.4261737
50 105  0.0 0.305 0 0.1210616
> klasifikasi<-table(df_data$Y,df_data$yp_hat>0.5)
> klasifikasi
   
    FALSE TRUE
  0    18    7
  1    10   15

Berdasarkan output tersebut didapatkan tabel klasifiksi atau biasa disebut kontingensi antara variabel independen dan dependen.

Dari 25 amatan dengan Y=0 hanya 7 yang diklasifikasikan dengan benar.

Dari 25 amatan dengan Y=1 terdapat 15 diantaranya yang diklasifikasikan dengan benar.

Tingkat akurasi model sebesar(18+15)/50*100%=66%

4.9 Uji Kelayakan Model

> #Uji Kelayakan Model
> logitgof(df_data$Y,fitted(reglog))

    Hosmer and Lemeshow test (binary model)

data:  df_data$Y, fitted(reglog)
X-squared = 3.8373, df = 8, p-value = 0.8715

Berdasarkan output tersebut, dihasilkan nilai p-value dari pengujian Goodness of Fit atau Uji Hosmer-Lemeshow sebesar 0.8715. Karena p-value (0.8715) > \(\alpha\) (0.05) maka diputuskan bahwa H0 diterima. Dapat disimpulkan bahwa model pada analisis ini sudah sesuai untuk digunakan.

5 KESIMPULAN

Berdasarkan analisis faktor-faktor yang mempengaruhi penyakit diabetes pada Suku Indian Pima, Penduduk Ameika menghasilkan kesimpulan bahwa diantara 3 variabel prediktor, yaitu kadar glukosa, BMI atau indeks massa tubuh, dan fungsi silsilah diabetes, terdapat satu variabel yang berpengaruh signifikan terhadap status penyakit diabetes pada penduduk Suku Indian Pima. Dengan tingkat keyakinan 95%, variabel prediktor yang berpengaruh signifikan yaitu variabel kadar glukosa. Sedangkan variabel prediktor yang tidak berpengaruh signifikan yaitu BMI atau indeks massa tubuh dan variabel fungsi silsilah diabetes. Karena kadar glukosa sangat berpengaruh terhadap status penyakit diabetes, maka terdapat beberapa penanganan yang dapat dilakukan oleh penduduk yang memiliki kadar glukosa tinggi, diantaranya :

  • Mengatur makanan dan minuman yang dikonsumsi setiap hari yaitu dengan mengonsumsi makanan yang tinggi serat, seperti buah-buahan dan sayuran untuk menurunkan gula darah, serta biji-bijian utuh yang baik untuk memenuhi kebutuhan nutrisi setiap hari.

  • Berolahraga secara rutin akan membuat hormon insulin akan membawa gula darah ke dalam otot agar dapat mendapatkan energi untuk bergerak, sehingga kadar gula darah menjadi turun.

  • Mengurangi stres juga dapat menurunkan kadar glukosa karena hormon kortisol yang dihasilkan tubuh saat stres dapat mempengaruhi kinerja insulin

Dengan menerapkan pola hidup sehat dan menjaga pola makan dengan baik dapat menurunkan resiko terkena penyakit diabetes seseorang.

6 DAFTAR PUSTAKA

Sumber Data : https://www.kaggle.com/datasets/kandij/diabetes-dataset/code?resource=download

Agresti, A. (1990). An Introduction to Categorical Data Analysis. Canada: John Wiley & Sons, Inc., Hoboken, New Jersey.

Diksa, I. B., & Fithriasari, K. (2021). Analisis faktor Resiko Penyebab Diabetes Melitus dengan Regresi Logistik Biner.

Hosmer, D. W., & Lemeshow, S. (2000). Applied Logistic Regression (2nd ed.). Canada : John Wiley & Sons, Inc.

Newbold, P., Carlson, L. W., & Thorne, B. (2019). Statistics for Business and Economics. Pearson.

Tampil, Y. A., Komalig, H., & Langi, Y. (2017). Analisis Regresi Logistik Untuk Menentukan Faktor-Faktor Yang Mempengaruhi Indeks Prestasi Kumulatif (IPK) Mahasiswa FMIPA Universitas Sam Ratulangi Manado. Jurnal Matematika dan Aplikasi.

Yuhadisi, S., & Suliadi, S. (2021). Penerapan Metode Modifikasi Hosmer-Lemeshow Test pada Model Regresi Logistik Data Penderita Penyakit Hipertensi, 50-55.