Pendahuluan

Diabetes merupakan salah satu penyakit metabolik kronis yang ditandai dengan tingginya kadar glukosa dalam darah akibat gangguan produksi atau fungsi insulin. Penyakit ini menjadi salah satu masalah kesehatan yang banyak terjadi di berbagai negara dan dapat menyebabkan berbagai komplikasi serius apabila tidak ditangani dengan baik. Oleh karena itu, penting untuk mengidentifikasi faktor-faktor yang berpengaruh terhadap kemungkinan seseorang mengalami diabetes.

Dalam analisis ini digunakan dataset diabetes yang berisi informasi kesehatan beberapa individu dengan sejumlah variabel klinis, seperti kadar glukosa dalam darah (Glucose), indeks massa tubuh (BMI), usia (Age), jumlah kehamilan (Pregnancies), serta tekanan darah (BloodPressure). Dataset tersebut juga memiliki variabel Outcome yang menunjukkan status diabetes seseorang, yaitu 0 untuk tidak diabetes dan 1 untuk diabetes. Dengan adanya variabel-variabel tersebut, data ini dapat digunakan untuk mempelajari hubungan antara faktor kesehatan dengan kemungkinan seseorang mengalami diabetes.

Beberapa penelitian menunjukkan bahwa variabel seperti kadar glukosa dalam darah dan indeks massa tubuh memiliki hubungan yang cukup kuat dengan kejadian diabetes. Kadar glukosa yang tinggi sering kali menjadi indikator utama adanya gangguan metabolisme glukosa, sedangkan nilai BMI yang tinggi dapat menunjukkan kondisi obesitas yang diketahui sebagai salah satu faktor risiko diabetes. Selain itu, faktor usia dan jumlah kehamilan juga dapat mempengaruhi risiko diabetes karena berkaitan dengan perubahan metabolisme dan kondisi kesehatan individu.

Untuk menganalisis hubungan antara variabel-variabel tersebut dengan status diabetes digunakan metode regresi logistik biner. Metode ini dipilih karena variabel respon yang dianalisis bersifat kategorik dengan dua kemungkinan hasil, yaitu diabetes dan tidak diabetes. Regresi logistik digunakan untuk memodelkan probabilitas terjadinya suatu kejadian berdasarkan variabel prediktor yang tersedia. Melalui model ini dapat diketahui faktor-faktor yang berpengaruh terhadap kejadian diabetes serta kemampuan model dalam memprediksi kemungkinan seseorang mengalami diabetes berdasarkan karakteristik kesehatannya.

Tujuan Analisis

Tujuan dari analisis ini adalah: 1. Mengidentifikasi pengaruh beberapa variabel kesehatan (Glucose, BMI, Age, Prenancies, dan Blood Pressure) terhadap status diabetes. 2. Membangun model regresi logistik untuk memprediksi kemungkinan seseorang mengalami diabetes. 3 .Mengevaluasi kinerja model dalam mengklasifikasikan individu yang mengalami diabetes dan yang tidak. 4. Menginterpretasikan pengaruh masing-masing variabel menggunakan odds ratio.

1. Deskripsi Data

data <- read.csv("D:/FIDELA/SEMESTER 6/KOMLAN/SEBELUM UTS/TUGAS/diabetes.csv")

summary(data)
##   Pregnancies        Glucose      BloodPressure    SkinThickness  
##  Min.   : 0.000   Min.   :  0.0   Min.   :  0.00   Min.   : 0.00  
##  1st Qu.: 1.000   1st Qu.: 99.0   1st Qu.: 62.00   1st Qu.: 0.00  
##  Median : 3.000   Median :117.0   Median : 72.00   Median :23.00  
##  Mean   : 3.845   Mean   :120.9   Mean   : 69.11   Mean   :20.54  
##  3rd Qu.: 6.000   3rd Qu.:140.2   3rd Qu.: 80.00   3rd Qu.:32.00  
##  Max.   :17.000   Max.   :199.0   Max.   :122.00   Max.   :99.00  
##     Insulin           BMI        DiabetesPedigreeFunction      Age       
##  Min.   :  0.0   Min.   : 0.00   Min.   :0.0780           Min.   :21.00  
##  1st Qu.:  0.0   1st Qu.:27.30   1st Qu.:0.2437           1st Qu.:24.00  
##  Median : 30.5   Median :32.00   Median :0.3725           Median :29.00  
##  Mean   : 79.8   Mean   :31.99   Mean   :0.4719           Mean   :33.24  
##  3rd Qu.:127.2   3rd Qu.:36.60   3rd Qu.:0.6262           3rd Qu.:41.00  
##  Max.   :846.0   Max.   :67.10   Max.   :2.4200           Max.   :81.00  
##     Outcome     
##  Min.   :0.000  
##  1st Qu.:0.000  
##  Median :0.000  
##  Mean   :0.349  
##  3rd Qu.:1.000  
##  Max.   :1.000
head(data)
##   Pregnancies Glucose BloodPressure SkinThickness Insulin  BMI
## 1           6     148            72            35       0 33.6
## 2           1      85            66            29       0 26.6
## 3           8     183            64             0       0 23.3
## 4           1      89            66            23      94 28.1
## 5           0     137            40            35     168 43.1
## 6           5     116            74             0       0 25.6
##   DiabetesPedigreeFunction Age Outcome
## 1                    0.627  50       1
## 2                    0.351  31       0
## 3                    0.672  32       1
## 4                    0.167  21       0
## 5                    2.288  33       1
## 6                    0.201  30       0

Dataset yang digunakan dalam analisis ini merupakan data kesehatan yang memuat beberapa variabel klinis yang berhubungan dengan risiko diabetes.

Variabel dependen:

  • Outcome
    0 = Tidak diabetes
    1 = Diabetes

Variabel independen yang digunakan:

  • Glucose : kadar glukosa dalam darah
  • BMI : indeks massa tubuh
  • Age : usia individu
  • Pregnancies : jumlah kehamilan
  • BloodPressure : tekanan darah

2. Eksplorasi Data

str(data)
## 'data.frame':    768 obs. of  9 variables:
##  $ Pregnancies             : int  6 1 8 1 0 5 3 10 2 8 ...
##  $ Glucose                 : int  148 85 183 89 137 116 78 115 197 125 ...
##  $ BloodPressure           : int  72 66 64 66 40 74 50 0 70 96 ...
##  $ SkinThickness           : int  35 29 0 23 35 0 32 0 45 0 ...
##  $ Insulin                 : int  0 0 0 94 168 0 88 0 543 0 ...
##  $ BMI                     : num  33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 0 ...
##  $ DiabetesPedigreeFunction: num  0.627 0.351 0.672 0.167 2.288 ...
##  $ Age                     : int  50 31 32 21 33 30 26 29 53 54 ...
##  $ Outcome                 : int  1 0 1 0 1 0 1 0 1 1 ...

Distribusi variabel Outcome

table(data$Outcome)
## 
##   0   1 
## 500 268

3. Model Regresi Logistik

Bentuk umum model regresi logistik:

\[ \ln\left(\frac{p}{1-p}\right) = \beta_0 + \beta_1X_1 + \beta_2X_2 + \dots + \beta_kX_k \]

dengan \(p\) adalah probabilitas seseorang terkena diabetes.

Estimasi Parameter

model <- glm(Outcome ~ Glucose + BMI + Age + Pregnancies + BloodPressure,
             data = data,
             family = binomial)

summary(model)
## 
## Call:
## glm(formula = Outcome ~ Glucose + BMI + Age + Pregnancies + BloodPressure, 
##     family = binomial, data = data)
## 
## Coefficients:
##                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)   -7.957463   0.684278 -11.629  < 2e-16 ***
## Glucose        0.033787   0.003401   9.935  < 2e-16 ***
## BMI            0.090961   0.014212   6.400 1.55e-10 ***
## Age            0.017087   0.009172   1.863  0.06249 .  
## Pregnancies    0.118803   0.031594   3.760  0.00017 ***
## BloodPressure -0.013514   0.005104  -2.648  0.00811 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 993.48  on 767  degrees of freedom
## Residual deviance: 734.99  on 762  degrees of freedom
## AIC: 746.99
## 
## Number of Fisher Scoring iterations: 5

4. Persamaan Model

Persamaan logit yang diperoleh:

\[ Logit(p) = -7.9575 + 0.0338 Glucose + 0.091 BMI + 0.0171 Age + 0.1188 Pregnancies + -0.0135 BloodPressure \]


5. Uji Signifikansi Model

Likelihood Ratio Test

anova(model, test="Chisq")
## Analysis of Deviance Table
## 
## Model: binomial, link: logit
## 
## Response: Outcome
## 
## Terms added sequentially (first to last)
## 
## 
##               Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
## NULL                            767     993.48              
## Glucose        1  184.764       766     808.72 < 2.2e-16 ***
## BMI            1   37.317       765     771.40 1.004e-09 ***
## Age            1   15.718       764     755.68 7.351e-05 ***
## Pregnancies    1   13.585       763     742.10  0.000228 ***
## BloodPressure  1    7.113       762     734.99  0.007651 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Jika p-value < 0.05, maka model signifikan.


6. Odds Ratio

Odds Ratio digunakan untuk melihat besar pengaruh variabel.

exp(coef(model))
##   (Intercept)       Glucose           BMI           Age   Pregnancies 
##    0.00035004    1.03436446    1.09522613    1.01723334    1.12614761 
## BloodPressure 
##    0.98657715

Interpretasi:

  • OR > 1 → meningkatkan peluang diabetes
  • OR < 1 → menurunkan peluang diabetes

7. Uji Goodness of Fit

Menggunakan Hosmer-Lemeshow Test.

library(ResourceSelection)
## ResourceSelection 0.3-6   2023-06-27
hoslem.test(data$Outcome, fitted(model))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  data$Outcome, fitted(model)
## X-squared = 4.5996, df = 8, p-value = 0.7994

Interpretasi:

  • p-value > 0.05 → model cocok dengan data

8. Prediksi Model

prob <- predict(model, type="response")
pred <- ifelse(prob > 0.5,1,0)

head(prob)
##          1          2          3          4          5          6 
## 0.66673999 0.05169005 0.72657006 0.05685631 0.64910323 0.16756826
head(pred)
## 1 2 3 4 5 6 
## 1 0 1 0 1 0

9. Confusion Matrix

table(Prediksi = pred, Aktual = data$Outcome)
##         Aktual
## Prediksi   0   1
##        0 437 110
##        1  63 158

Menghitung akurasi model

mean(pred == data$Outcome)
## [1] 0.7747396

10. ROC Curve

library(pROC)
## Type 'citation("pROC")' for a citation.
## 
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
roc_curve <- roc(data$Outcome, prob)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_curve, col="blue")

auc(roc_curve)
## Area under the curve: 0.8304

AUC mendekati 1 menunjukkan model yang baik.


11. Visualisasi

Glucose vs Diabetes

boxplot(Glucose ~ Outcome,
        data=data,
        col=c("lightblue","salmon"),
        main="Distribusi Glucose Berdasarkan Status Diabetes",
        xlab="Status Diabetes",
        ylab="Glucose")
Hubungan Glucose dengan Outcome

Hubungan Glucose dengan Outcome

Pregnancies vs Diabetes

boxplot(Pregnancies ~ Outcome,
        data=data,
        col=c("green","salmon"),
        main="Distribusi Pregnancies Berdasarkan Status Diabetes",
        xlab="Status Diabetes",
        ylab="Pregnancies")
Hubungan Pregnancies dengan Outcome

Hubungan Pregnancies dengan Outcome

BMI vs Diabetes

boxplot(BMI ~ Outcome,
        data=data,
        col=c("pink","salmon"),
        main="Distribusi BMI Berdasarkan Status Diabetes",
        xlab="Status Diabetes",
        ylab="BMI")
Hubungan BMI dengan Outcome

Hubungan BMI dengan Outcome

Age vs Diabetes

boxplot(Age ~ Outcome,
        data=data,
        col=c("purple","salmon"),
        main="Distribusi Age Berdasarkan Status Diabetes",
        xlab="Status Diabetes",
        ylab="Age")
Hubungan Age dengan Outcome

Hubungan Age dengan Outcome


12. Kesimpulan

Berdasarkan hasil analisis regresi logistik yang dilakukan pada dataset diabetes, diperoleh bahwa variabel Glucose, BMI, Pregnancies, dan BloodPressure memiliki pengaruh signifikan terhadap status diabetes dengan nilai p-value kurang dari 0.05. Sementara itu, variabel Age menunjukkan pengaruh yang lebih lemah terhadap status diabetes dalam model yang dibangun.

Interpretasi odds ratio menunjukkan bahwa peningkatan nilai Glucose, BMI, Age, dan Pregnancies cenderung meningkatkan peluang seseorang mengalami diabetes, sedangkan BloodPressure memiliki pengaruh yang relatif kecil terhadap kemungkinan terjadinya diabetes. Hasil ini menunjukkan bahwa faktor-faktor kesehatan tertentu memiliki peran penting dalam mempengaruhi risiko diabetes.

Hasil uji Hosmer–Lemeshow menunjukkan nilai p-value sebesar 0.7994, yang berarti model regresi logistik yang dibangun memiliki kesesuaian yang baik dengan data. Evaluasi performa model menggunakan confusion matrix menunjukkan tingkat akurasi sebesar 77.47%, yang menunjukkan bahwa model cukup baik dalam mengklasifikasikan status diabetes. Selain itu, nilai Area Under Curve (AUC) sebesar 0.8304 pada ROC curve menunjukkan bahwa model memiliki kemampuan klasifikasi yang baik dalam membedakan individu yang mengalami diabetes dan yang tidak.

Secara keseluruhan, model regresi logistik yang dibangun mampu menjelaskan hubungan antara beberapa faktor kesehatan (Glucose, BMI, Age, dan Blood Pressure) dengan status diabetes serta memiliki kemampuan prediksi yang cukup baik dalam mengidentifikasi kemungkinan seseorang mengalami diabetes berdasarkan variabel yang digunakan dalam analisis.