Membaca dan Menyiapkan Dataset

library(MASS)
data <- read.csv("C:/Users/Darren Eduardo/Downloads/anmul regresi/ordinal_injury.csv", header = TRUE, sep = ",")

data <- na.omit(data)
str(data)
## 'data.frame':    200 obs. of  6 variables:
##  $ Collision_Type        : chr  "Single" "Side" "Frontal" "Frontal" ...
##  $ Vehicle_Speed         : num  77.2 81.5 42.2 56.2 60.5 ...
##  $ Seatbelt_Used         : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Injury_Location       : chr  "Head" "Legs" "Legs" "Multiple" ...
##  $ Ambulance_Response_Min: num  5.9 7.46 11.13 3 15.12 ...
##  $ Injury_Severity       : chr  "Meninggal" "Berat" "Berat" "Berat" ...

Mengatur Variabel Target sebagai Ordinal

data$Injury_Severity <- ordered(data$Injury_Severity, 
                                levels = c("Ringan", "Sedang", "Berat", "Meninggal"))
data$Seatbelt_Used <- as.factor(data$Seatbelt_Used)
data$Collision_Type <- as.factor(data$Collision_Type)
data$Injury_Location <- as.factor(data$Injury_Location)

Mewakili batas antara kategori keparahan:

Ringan|Sedang: -0.0346

Sedang|Berat: 1.0974

Berat|Meninggal: 2.7945

Nilai ini digunakan secara internal dalam menghitung probabilitas tiap kategori.

Membangun Model Regresi Ordinal

model_ordinal <- polr(Injury_Severity ~ Vehicle_Speed + Seatbelt_Used +
                      Collision_Type + Injury_Location + Ambulance_Response_Min,
                      data = data, Hess = TRUE)
summary(model_ordinal)
## Call:
## polr(formula = Injury_Severity ~ Vehicle_Speed + Seatbelt_Used + 
##     Collision_Type + Injury_Location + Ambulance_Response_Min, 
##     data = data, Hess = TRUE)
## 
## Coefficients:
##                            Value Std. Error t value
## Vehicle_Speed            0.06377    0.01158  5.5054
## Seatbelt_Used1          -3.63064    0.52056 -6.9744
## Collision_TypeRear      -0.06001    0.44813 -0.1339
## Collision_TypeSide      -0.36732    0.43044 -0.8534
## Collision_TypeSingle    -0.17473    0.43085 -0.4056
## Injury_LocationHead      2.36769    0.47386  4.9966
## Injury_LocationLegs     -0.19351    0.43027 -0.4498
## Injury_LocationMultiple -0.19722    0.42422 -0.4649
## Ambulance_Response_Min   0.10926    0.04317  2.5307
## 
## Intercepts:
##                 Value   Std. Error t value
## Ringan|Sedang   -0.0346  0.8698    -0.0397
## Sedang|Berat     1.0974  0.8725     1.2578
## Berat|Meninggal  2.7945  0.8942     3.1253
## 
## Residual Deviance: 372.897 
## AIC: 396.897
Variabel Koefisien Std. Error t-value Interpretasi
Vehicle_Speed 0.06377 0.01158 5.51 Signifikan positif: Kecepatan lebih tinggi → risiko cedera parah meningkat.
Seatbelt_Used -3.63064 0.52056 -6.97 Signifikan negatif: Memakai sabuk pengaman → menurunkan risiko cedera parah.
Collision_TypeRear -0.06001 0.44813 -0.13 Tidak signifikan.
Collision_TypeSide -0.36732 0.43044 -0.85 Tidak signifikan.
Collision_TypeSingle -0.17473 0.43085 -0.41 Tidak signifikan.
Injury_LocationHead 2.36769 0.47386 5.00 Signifikan positif: Cedera di kepala → kemungkinan cedera parah meningkat.
Injury_LocationLegs -0.19351 0.43027 -0.45 Tidak signifikan.
Injury_LocationMultiple -0.19722 0.42422 -0.46 Tidak signifikan.
Ambulance_Response_Min 0.10926 0.04317 2.53 Signifikan positif: Respon ambulans lambat → risiko cedera parah meningkat.

KESIMPULAN

Faktor-faktor signifikan yang meningkatkan risiko cedera parah:

Kecepatan kendaraan: Semakin tinggi kecepatan → semakin besar kemungkinan luka serius atau meninggal.

Waktu respons ambulans: Semakin lambat datangnya ambulans → semakin tinggi risiko keparahan.

Cedera di kepala: Sangat berkorelasi dengan keparahan cedera.

Faktor pelindung yang signifikan:

Penggunaan sabuk pengaman: Mampu secara signifikan menurunkan risiko cedera berat atau kematian.

Jenis tabrakan dan lokasi cedera selain kepala tidak menunjukkan pengaruh signifikan dalam model ini.

UJI MULTIKOLINEARITAS (VIF)

library(car)
## Warning: package 'car' was built under R version 4.4.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.3
lm_model <- lm(as.numeric(Injury_Severity) ~ Vehicle_Speed + Seatbelt_Used +
               Collision_Type + Injury_Location + Ambulance_Response_Min,
               data = data)

vif(lm_model)
##                            GVIF Df GVIF^(1/(2*Df))
## Vehicle_Speed          1.075544  1        1.037084
## Seatbelt_Used          1.073868  1        1.036276
## Collision_Type         1.159204  3        1.024928
## Injury_Location        1.071372  3        1.011556
## Ambulance_Response_Min 1.055275  1        1.027266

Semua GVIF < 5, menandakan tidak ada multikolinearitas yang signifikan antar prediktor.

Uji Serentak

library(pscl)
## Warning: package 'pscl' was built under R version 4.4.3
## Classes and Methods for R originally developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University (2002-2015),
## by and under the direction of Simon Jackman.
## hurdle and zeroinfl functions by Achim Zeileis.
pR2(model_ordinal)
## fitting null model for pseudo-r2
##          llh      llhNull           G2     McFadden         r2ML         r2CU 
## -186.4484894 -246.6172528  120.3375268    0.2439763    0.4521138    0.4940644

McFadden’s R² > 0.2 → model memiliki daya prediksi yang baik secara keseluruhan.

Uji Parsial (z-test)

coefs <- summary(model_ordinal)$coefficients
z_values <- coefs[, "t value"]
p_values <- 2 * (1 - pnorm(abs(z_values)))

result <- cbind(coefs, "p value" = p_values)
print(result)
##                               Value Std. Error    t value      p value
## Vehicle_Speed            0.06376597 0.01158251  5.5053657 3.684028e-08
## Seatbelt_Used1          -3.63063947 0.52056488 -6.9744226 3.071321e-12
## Collision_TypeRear      -0.06001063 0.44813248 -0.1339127 8.934716e-01
## Collision_TypeSide      -0.36731936 0.43043926 -0.8533593 3.934601e-01
## Collision_TypeSingle    -0.17473269 0.43084732 -0.4055559 6.850689e-01
## Injury_LocationHead      2.36768522 0.47386052  4.9965868 5.835390e-07
## Injury_LocationLegs     -0.19351433 0.43026638 -0.4497547 6.528873e-01
## Injury_LocationMultiple -0.19722161 0.42421500 -0.4649096 6.419962e-01
## Ambulance_Response_Min   0.10926379 0.04317472  2.5307355 1.138237e-02
## Ringan|Sedang           -0.03455557 0.86978204 -0.0397290 9.683092e-01
## Sedang|Berat             1.09741315 0.87245853  1.2578399 2.084497e-01
## Berat|Meninggal          2.79453146 0.89416648  3.1252921 1.776286e-03
Variabel p-value Kesimpulan
Vehicle_Speed < 0.001 Signifikan (+)
Seatbelt_Used (Yes) < 0.001 Signifikan (negatif)
Injury_LocationHead < 0.001 Signifikan (+)
Ambulance_Response_Min 0.011 Signifikan (+)
Collision_Type & others > 0.05 Tidak signifikan

Kecepatan kendaraan, penggunaan sabuk pengaman, lokasi cedera di kepala, dan waktu respon ambulans berpengaruh signifikan terhadap tingkat keparahan cedera.

Uji Goodness of Fit (GOF)

model_ordinal$deviance  
## [1] 372.897
AIC(model_ordinal)
## [1] 396.897

Odds Ratio dan Interpretasi

OR <- exp(coef(model_ordinal))
CI <- exp(confint(model_ordinal)) 
## Waiting for profiling to be done...
OR_table <- cbind("Odds Ratio" = OR, "Lower CI" = CI[,1], "Upper CI" = CI[,2])
print(OR_table)
##                          Odds Ratio    Lower CI   Upper CI
## Vehicle_Speed            1.06584293 1.042591274  1.0911862
## Seatbelt_Used1           0.02649923 0.008902442  0.0693558
## Collision_TypeRear       0.94175452 0.389830226  2.2709062
## Collision_TypeSide       0.69258843 0.296003494  1.6072552
## Collision_TypeSingle     0.83968144 0.359340782  1.9552710
## Injury_LocationHead     10.67265885 4.302094935 27.7228026
## Injury_LocationLegs      0.82405803 0.352891051  1.9145658
## Injury_LocationMultiple  0.82100867 0.355447219  1.8829441
## Ambulance_Response_Min   1.11545655 1.026172306  1.2160942
Variabel Odds Ratio Interpretasi Singkat
Vehicle_Speed 1.07 Setiap peningkatan 1 km/jam meningkatkan risiko cedera
Seatbelt_Used (Yes) 0.026 Mengurangi peluang cedera parah hingga 97%
Injury_LocationHead 10.67 Cedera di kepala → 10× lebih besar risiko parah
Ambulance_Response_Min 1.11 Setiap menit tambahan meningkatkan risiko 11%

Kesimpulan Umum

Model regresi ordinal menunjukkan bahwa variabel:

Kecepatan kendaraan,Pemakaian sabuk pengaman, Lokasi cedera (terutama kepala), dan Waktu tanggap ambulans. secara signifikan mempengaruhi tingkat keparahan cedera. Sabuk pengaman secara khusus memiliki efek protektif yang sangat besar.