Pada tahap ini, dilakukan analisis menggunakan regresi probit sebagai alternatif dari regresi logistik. Model ini digunakan untuk mengkaji pengaruh jam belajar (X₁), kehadiran (X₂), dan metode belajar (X₃) terhadap peluang kelulusan mahasiswa.

Persiapan Data

data <- read.csv("D:/Youtube/Regresi/Logistic Regression/logistic1.csv")

head(data)
##   X1 X2      X3           Y
## 1  6 85  Online Tidak Lulus
## 2 14 72 Offline       Lulus
## 3 10 90  Online       Lulus
## 4  8 76 Offline Tidak Lulus
## 5 15 88  Online       Lulus
## 6 12 70 Offline Tidak Lulus
# Encoding Data
Y <- ifelse(data$Y=="Lulus",1,0)
X1 <- data$X1
X2 <- data$X2
X3 <- as.factor(ifelse(data$X3 == "Offline", 0,1))

Pembentukan Model Regresi Logistik

model_probit <- glm(Y ~ X1 + X2 + X3, family = binomial(link = "probit")) 
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
summary(model_probit)
## 
## Call:
## glm(formula = Y ~ X1 + X2 + X3, family = binomial(link = "probit"))
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## (Intercept) -56.1119    24.3016  -2.309   0.0209 *
## X1            1.0906     0.4965   2.197   0.0281 *
## X2            0.5655     0.2435   2.322   0.0202 *
## X31           0.2106     1.3520   0.156   0.8762  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 62.6869  on 49  degrees of freedom
## Residual deviance:  7.2388  on 46  degrees of freedom
## AIC: 15.239
## 
## Number of Fisher Scoring iterations: 12

Berdasarkan hasil estimasi, diperoleh persamaan model probit sebagai berikut:

\[ Z = -56.1119 + 1.0906X_1 + 0.5655X_2 + 0.2106X_3 \]

Interpretasi Koefisien: - X₁ (Jam Belajar) memiliki koefisien sebesar 1.0906 dengan nilai signifikansi 0.0281 (mendekati signifikan pada α = 5%).Semakin tinggi jam belajar, semakin besar peluang mahasiswa untuk lulus.

Odds Ratio

exp(coef(model_probit))
##  (Intercept)           X1           X2          X31 
## 4.274866e-25 2.976047e+00 1.760319e+00 1.234444e+00

Nilai odds ratio diperoleh sebagai berikut:

Klasifikasi

data$prob <- predict(model_probit, type = "response") 
head(data[, c("X1","X2","X3","Y","prob")])
##   X1 X2      X3           Y         prob
## 1  6 85  Online Tidak Lulus 9.842206e-02
## 2 14 72 Offline       Lulus 4.491200e-01
## 3 10 90  Online       Lulus 1.000000e+00
## 4  8 76 Offline Tidak Lulus 5.180958e-06
## 5 15 88  Online       Lulus 1.000000e+00
## 6 12 70 Offline Tidak Lulus 2.907851e-04
data$pred_class <- ifelse(data$prob > 0.5, 1, 0) 

Kinerja Model

library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
confusionMatrix(as.factor(data$pred_class), as.factor(Y))
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction  0  1
##          0 15  1
##          1  1 33
##                                           
##                Accuracy : 0.96            
##                  95% CI : (0.8629, 0.9951)
##     No Information Rate : 0.68            
##     P-Value [Acc > NIR] : 1.249e-06       
##                                           
##                   Kappa : 0.9081          
##                                           
##  Mcnemar's Test P-Value : 1               
##                                           
##             Sensitivity : 0.9375          
##             Specificity : 0.9706          
##          Pos Pred Value : 0.9375          
##          Neg Pred Value : 0.9706          
##              Prevalence : 0.3200          
##          Detection Rate : 0.3000          
##    Detection Prevalence : 0.3200          
##       Balanced Accuracy : 0.9540          
##                                           
##        'Positive' Class : 0               
## 
  1. Accuracy = 0.96 (96%) Model mengklasifikasikan 96% data dengan benar (48 dari 50 observasi benar).

  2. Sensitivity = 0.9375 Artinya: Dari seluruh data yang benar-benar kelas 0, model berhasil menangkap 93,75%

  3. Specificity = 0.9706 Dari seluruh data yang kelas 1, model mampu mengenali 97,06% dengan benar

  4. F1 Score (≈ 0.9375) → model seimbang dan stabil

Goodness of Fit

library(DescTools) 
## 
## Attaching package: 'DescTools'
## The following objects are masked from 'package:caret':
## 
##     MAE, RMSE
PseudoR2(model_probit, which = "Nagelkerke")
## Nagelkerke 
##  0.9377724

Model mampu menjelaskan sekitar 93.8% variasi peluang kelulusan, yang menunjukkan model memiliki kekuatan prediksi yang sangat tinggi.