Tugas Individu 1 Praktikum
STA1343 - Pengantar Analisis Data Kategorik

Pendahuluan

Regresi logistik biner adalah salah satu model analisis statistik yang bertujuan menghitung peluang terjadinya suatu peubah respon berdasarkan nilai-nilai pada peubah penjelasnya (Nurdiansah dan Khikmah 2020). Pada model regresi logistik biner, peubah respon haruslah berjenis kategorik dengan skala 0 hingga 1 yang menjelaskan nilai probabilitas terjadinya respon. Sementara itu, jenis peubah untuk peubah penjelas dapat berupa kategorik maupun numerik. Secara umum, model regresi logistik dapat dituliskan sebagai berikut,

\[ \begin{aligned} logit[\pi(x)] = \alpha + \beta_1x_1 + \beta_2x_2 + ... + \beta_kx_k \end{aligned} \]

dengan koefisien \(\beta_i\) menjelaskan besarnya pengaruh \(x_i\) pada log odds ketika nilai \(y=1\) dan nilai \(x\) lainnya tetap.

Berdasarkan model di atas, dugaan peluang terjadinya peubah respon pada regresi logistik dapat dihitung menggunakan rumus sebagai berikut,

\[ \begin{aligned} \hat{\pi(x)}= \frac{exp(logit[\hat{\pi(x)]})}{1+exp(logit[\hat{\pi(x)}])} \end{aligned} \]

dengan \(\pi(x)\) menunjukkan peluang terjadinya kategori sukses (\(y=1\)) pada peubah bebas (Agresti 2003).

Pra-Processing Data

Memanggil Package di R

Untuk melakukan proses analisis regresi logistik, diperlukan beberapa library untuk menunjang proses analisis data sebagai berikut,

library(rcompanion)
library(car)
library(dplyr)
library(ggplot2)

Impor Data

Data yang digunakan adalah data penumpang kapal Titanic dalam format csv dengan proses pemanggilan data menggunakan sintaks sebagai berikut,

titanic <- data.frame(read.csv("D:/DATA AKMAL/IPB/Semester 5/Pengantar Analisis Data Kategorik/titanic_clean.csv"))
d1 <- head(titanic)
kableExtra::kable(d1, align = rep('c',9))
X Survived Pclass Sex Age SibSp Parch Fare Embarked
1 0 3 male 22.00000 1 0 7.2500 S
2 1 1 female 38.00000 1 0 71.2833 C
3 1 3 female 26.00000 0 0 7.9250 S
4 1 1 female 35.00000 1 0 53.1000 S
5 0 3 male 35.00000 0 0 8.0500 S
6 0 3 male 29.69912 0 0 8.4583 Q

Analisis yang akan dilakukan pada data penumpang kapal Titanic ini dilakukan dengan menggunakan peubah Survived, peubah kategorik yang menerangkan status selamat penumpang, sebagai perubah respon, dan peubah sex, Pclass, dan Age sebagai peubah penjelas. Oleh karena itu, perlu dilakukan pra-processing data sebagai berikut,

titanic$sex <- ifelse(titanic$Sex == "male", 1, 0)

Pra-processing data pertama yang dilakukan adalah melakukan indeksasi pada peubah Sex yang menjelaskan jenis kelamin penumpang. Indeksasi (sex) yang dilakukan adalah sebagai berikut,

  1. Laki-laki (male): 1
  2. Perempuan (female): 0
titanic$pclass1 <- ifelse(titanic$Pclass == "1", 1, 0) 
titanic$pclass2 <- ifelse(titanic$Pclass == "2", 1, 0) 

Pra-processing data kedua yang dilakukan adalah melakukan indeksasi pada peubah Pclass yang menjelaskan 3 (tiga) status kelas penumpang kapal Titanic. Indeksasi (pclass1, pclass2) yang dilakukan adalah sebagai berikut,

  1. Kelas Tumpangan 1: 1,0
  2. Kelas Tumpangan 2: 0,1
  3. Kelas Tumpangan 3: 0,0
titanic <- titanic[, c(2,3,5,10:12)]

titanic$Survived <- as.factor(titanic$Survived)
titanic$pclass1 <- as.factor(titanic$pclass1)
titanic$pclass2 <- as.factor(titanic$pclass2)
titanic$Age <- as.integer(round(titanic$Age, 0))
titanic$sex <- as.integer(titanic$sex)
str(titanic)
## 'data.frame':    889 obs. of  6 variables:
##  $ Survived: Factor w/ 2 levels "0","1": 1 2 2 2 1 1 1 1 2 2 ...
##  $ Pclass  : int  3 1 3 1 3 3 1 3 3 2 ...
##  $ Age     : int  22 38 26 35 35 30 54 2 27 14 ...
##  $ sex     : int  1 0 0 0 1 1 1 1 0 0 ...
##  $ pclass1 : Factor w/ 2 levels "0","1": 1 2 1 2 1 1 2 1 1 1 ...
##  $ pclass2 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 2 ...

Eksplorasi Data

Dalam rangka mengenal dataset yang digunakan, perlu dilakukan eksplorasi data sebagai langkah awal proses analisis data. Berikut beberapa visualisasi data yang dapat digunakan untuk menjelaskan data Titanic,

titanic$surv <- as.integer(titanic$Survived)
d <- titanic %>% count(surv)

pie(c(d[1,2],d[2,2]), col = c("#990066", "#FFFFCC"), 
    labels = c("Tidak Selamat", "Selamat"), border = "black",
    main = "Status Selamat Penumpang Titanic")

Berdasarkan pie chart di atas, dapat diketahui bahwa lebih banyak penumpang yang tidak selamat dari tragedi tenggelamnya kapal Titanic dibandingkan penumpang yang berhasil selamat. Selain itu, kondisi data yang berupa data biner (hanya ada dua jenis, yaitu selamat dan tidak selamat) menguatkan argumen untuk melakukan proses analisis data menggunakan metode regresi logistik.

ggplot(titanic) +
  aes(x = Survived, fill = Pclass) +
  geom_bar() +
  scale_fill_viridis_c(option = "magma", direction = 1) +
  labs(
    x = "Status Selamat (0: Tidak Selamat, 1: Selamat)",
    y = "Jumlah Penumpang",
    title = "Status Selamat Penumpang Titanic",
    subtitle = "Berdasarkan Kelas Tumpangan (Kelas 1, 2, 3)",
    fill = "Kelas"
  ) +
  theme_bw() +
  theme(
    legend.position = "none",
    plot.title = element_text(face = "bold",
                              hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  ) +
  facet_wrap(vars(Pclass), scales = "free_x")

Berdasarkan diagram batang di atas, dapat diketahui bahwa kelas tumpangan 3 merupakan kelas dengan jumlah penumpang terbanyak pada kapal Titanic. Kemudian, dapat diketahui pula bahwa hanya kelas tumpangan 1 yang penumpangnya tercatat lebih banyak yang selamat. Hal ini dapat mengindikasikan bahwa dalam proses evakuasi, penumpang pada kelas tumpangan 1 lebih diprioritaskan dibanding penumpang pada kelas-kelas tumpangan lainnya.

ggplot(titanic) +
  aes(x = Age, y = Survived) +
  geom_violin(adjust = 1L, scale = "area", fill = "#5E0274") +
  labs(
    x = "Usia",
    y = "(0: Tidak Selamat, 1: Selamat)",
    title = "Status Selamat Penumpang Titanic",
    subtitle = "Berdasarkan Sebaran Usia"
  ) +
  theme_bw() +
  theme(
    plot.title = element_text(face = "bold",
                              hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

Berdasarkan violin plot di atas, dapat diamati bahwa secara umum tidak terdapat perbedaan yang berarti antara sebaran usia penumpang yang selamat dan tidak selamat dari tragedi Titanic. Di sisi lain, berdasarkan plot di atas, dapat diketahui bahwa sebagian besar penumpang kapal Titanic berada pada rentang usia 20-40 tahun.

Regresi Logistik dengan Peubah Dummy

Model Regresi Logistik

Metode regresi logistik pertama yang diujikan adalah regresi logistik menggunakan peubah dummy untuk peubah-peubah yang berjenis kategorik. Hasil analisis regresi logistik sebagaimana yang dimaksud dapat diperoleh menggunakan rangkaian sintaks sebagai berikut,

titanic.dummy <- glm(Survived~as.factor(sex)+pclass1+pclass2+Age, data = titanic, 
                     family = binomial(link = "logit"))
summary(titanic.dummy)
## 
## Call:
## glm(formula = Survived ~ as.factor(sex) + pclass1 + pclass2 + 
##     Age, family = binomial(link = "logit"), data = titanic)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.6470  -0.6683  -0.4189   0.6290   2.4272  
## 
## Coefficients:
##                  Estimate Std. Error z value Pr(>|z|)    
## (Intercept)      1.219254   0.242457   5.029 4.94e-07 ***
## as.factor(sex)1 -2.603856   0.186876 -13.934  < 2e-16 ***
## pclass11         2.320532   0.240896   9.633  < 2e-16 ***
## pclass21         1.204652   0.224521   5.365 8.08e-08 ***
## Age             -0.033490   0.007381  -4.537 5.69e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1182.82  on 888  degrees of freedom
## Residual deviance:  804.71  on 884  degrees of freedom
## AIC: 814.71
## 
## Number of Fisher Scoring iterations: 5

Berdasarkan summary dari metode regresi logistik di atas, dapat diperoleh persamaan regresi logistik sebagai berikut,

\[ \begin{aligned} logit[\pi(x)] = 1.22 - 2.6c_1 + 2.32c_2 + 1.2c_3 - 0.03x \end{aligned} \]

dengan \(c_1\) menjelaskan peubah dummy jenis kelamin, \(c_2\) dan \(c_3\) secara berturut-turut menjelaskan peubah dummy tingkatan kelas penumpang, dan \(x\) menjelaskan peubah usia.

Uji Simultan

Untuk menguji signifikansi pengaruh peubah-peubah penjelas pada model regresi logistik secara bersamaan terhadap peubah respon, perlu dilakukan uji simultan Likelihood Ratio (Putri et al 2021). Uji tersebut dapat dilakukan dengan rangkaian hipotesis dan sintaks sebagai berikut,

\[ \begin{aligned} H_0&: \beta_1 = \beta_2 = \beta_3 = \beta_4 = 0 \\ H_1&: \text{ minimal ada satu } \beta_i \neq 0 \end{aligned} \]

nagelkerke(titanic.dummy) 
## $Models
##                                                                                                       
## Model: "glm, Survived ~ as.factor(sex) + pclass1 + pclass2 + Age, binomial(link = \"logit\"), titanic"
## Null:  "glm, Survived ~ 1, binomial(link = \"logit\"), titanic"                                       
## 
## $Pseudo.R.squared.for.model.vs.null
##                              Pseudo.R.squared
## McFadden                             0.319666
## Cox and Snell (ML)                   0.346437
## Nagelkerke (Cragg and Uhler)         0.470923
## 
## $Likelihood.ratio.test
##  Df.diff LogLik.diff  Chisq    p.value
##       -4     -189.05 378.11 1.4931e-80
## 
## $Number.of.observations
##           
## Model: 889
## Null:  889
## 
## $Messages
## [1] "Note: For models fit with REML, these statistics are based on refitting with ML"
## 
## $Warnings
## [1] "None"

Berdasarkan hasil uji simultan Likelihood Ratio di atas, dapat diperoleh nilai \(p-value < 0.05\). Dengan demikian, dapat disimpulkan bahwa pada taraf nyata 5%, cukup bukti untuk menyatakan bahwa setidaknya ada satu peubah penjelas yang memberikan pengaruh signifikan terhadap keselamatan penumpang Titanic.

Uji Parsial

Setelah melakukan uji simultan, pengujian signifikansi peubah penjelas dilanjutkan melalui rangkaian uji parsial Wald (Putri et al 2021). Pengujian yang dilakukan terhadap setiap peubah penjelas dalam model ini dapat disusun berdasarkan hipotesis dan rangkaian sintaks berikut,

\[ \begin{aligned} H_0&: \beta_j = 0 \\ H_1&: \beta_j \neq 0, j=1,2,3,4 \end{aligned} \]

Anova(titanic.dummy, type="II", test="Wald")
## Analysis of Deviance Table (Type II tests)
## 
## Response: Survived
##                Df   Chisq Pr(>Chisq)    
## as.factor(sex)  1 194.144  < 2.2e-16 ***
## pclass1         1  92.793  < 2.2e-16 ***
## pclass2         1  28.788  8.076e-08 ***
## Age             1  20.588  5.694e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji parsial Wald di atas, dapat diamati bahwa seluruh peubah penjelas memiliki nilai \(p-value < 0.05\). Dengan demikian, dapat disimpulkan bahwa pada taraf nyata 5%, peubah \(c_1\), \(c_2\), \(c_3\), dan \(x\) masing-masing berpengaruh signifikan terhadap keselamatan penumpang Titanic.

Dugaan Peluang Peubah Respon

Untuk mempermudah perhitungan dugaan peluang, perlu dibentuk suatu fungsi dengan menginputkan nilai koefisien \(\alpha\), \(\beta_1\), \(\beta_2\), \(\beta_3\), dan \(\beta_4\) secara manual sebagai berikut,

phi.x.1 <- function(c1, c2, c3, x){
  intercept = -1.22 ; beta.c1 = -2.6 ; beta.c2 = 2.32; beta.c3 = 1.2; 
  beta1 = -0.03
  pers <- intercept + beta.c1*c1 + beta.c2*c2 + beta.c3*c3 + beta1*x
  phi.x <- exp(pers)/(1+exp(pers))
  return(list(nilai.log.odds=pers, dugaan.peluang=phi.x))
}

Menimbang adanya satu peubah numerik pada model, yaitu peubah Age, maka perlu dilakukan standardisasi nilai peubah tersebut untuk menghitung nilai dugaan peluang masing-masing kombinasi peubah dummy yang mungkin. Usia yang relevan untuk diinput dalam peubah ini adalah nilai median dari keseluruhan data yang dapat diamati menggunakan fungsi summary sebagai berikut,

summary(titanic$Age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00   22.00   30.00   29.71   35.00   80.00

Berdasarkan keluaran dari sintaks di atas, dapat diamati statistik lima serangkai dengan nilai median usia sebesar 30 tahun. Nilai inilah yang akan diinput pada peubah Age. Dugaan peluang selamat setiap kombinasi peubah respon dummy dapat diamati melalui tabel berikut,

mc1 <- phi.x.1(1,1,0,30)
fc1 <- phi.x.1(0,1,0,30)
mc2 <- phi.x.1(1,0,1,30)
fc2 <- phi.x.1(0,0,1,30)
mc3 <- phi.x.1(1,0,0,30)
fc3 <- phi.x.1(0,0,0,30)

gol <- c("Male-Class 1", "Female-Class 1", "Male-Class 2", "Female-Class 2",
         "Male-Class 3", "Female-Class 3")
usia <- c(rep("30 tahun", 6))
logit1 <- c(mc1$nilai.log.odds, fc1$nilai.log.odds, mc2$nilai.log.odds, 
          fc2$nilai.log.odds, mc3$nilai.log.odds, fc3$nilai.log.odds)
prob <- c(mc1$dugaan.peluang, fc1$dugaan.peluang, mc2$dugaan.peluang, 
          fc2$dugaan.peluang, mc3$dugaan.peluang, fc3$dugaan.peluang)
dugaan1 <- data.frame(cbind(gol, usia, logit1, round(prob,2)))
colnames(dugaan1) <- c("Golongan", "Usia", "logit", "Dugaan Peluang")
dugaan1$`Dugaan Selamat` <- ifelse(dugaan1$`Dugaan Peluang` >= 0.5, "Selamat", 
                                   "Tidak Selamat")
kableExtra::kable(dugaan1, align = rep("c",3), 
                  caption = "Pendugaan Peluang Selamat dari Tragedi Titanic")
Pendugaan Peluang Selamat dari Tragedi Titanic
Golongan Usia logit Dugaan Peluang Dugaan Selamat
Male-Class 1 30 tahun -2.4 0.08 Tidak Selamat
Female-Class 1 30 tahun 0.2 0.55 Selamat
Male-Class 2 30 tahun -3.52 0.03 Tidak Selamat
Female-Class 2 30 tahun -0.92 0.28 Tidak Selamat
Male-Class 3 30 tahun -4.72 0.01 Tidak Selamat
Female-Class 3 30 tahun -2.12 0.11 Tidak Selamat

Berdasarkan tabulasi pada tabel di atas, dengan nilai cut off respon pada angka 0,5, dapat diamati bahwa hanya golongan perempuan dengan jenis kelas tumpangan 1 yang diduga selamat dari tragedi Titanic. Selain itu, dapat diamati pula bahwa secara umum dugaan peluang selamat penumpang berjenis kelamin perempuan lebih tinggi dibandingkan penumpang laki-laki.

Odds Ratio Antarlevel Peubah

Setelah menduga peluang selamat tiap kombinasi peubah respon dummy yang mungkin, dapat dihitung pula nilai odds ratio antarlevel tiap peubah dengan sintaks sebagai berikut,

male <- phi.x.1(1,0,0,0)
female <- phi.x.1(0,0,0,0)
sel_sex <- male$nilai.log.odds-female$nilai.log.odds
or_sex <- exp(sel_sex)

c1 <- phi.x.1(0,1,0,0)
c3 <- phi.x.1(0,0,0,0)
sel_c1c3 <- c1$nilai.log.odds-c3$nilai.log.odds
or_c1c3 <- exp(sel_c1c3)

c2 <- phi.x.1(0,0,1,0)
sel_c1c2 <- c1$nilai.log.odds-c2$nilai.log.odds
or_c1c2 <- exp(sel_c1c2)

sel_c2c3 <- c2$nilai.log.odds-c3$nilai.log.odds
or_c2c3 <- exp(sel_c2c3)

rasio <- c("Male to Female", "Class 1 to Class 3", "Class 1 to Class 2", 
           "Class 2 to Class 3")
int.model1 <- c(male$nilai.log.odds, c1$nilai.log.odds, c1$nilai.log.odds, 
                c2$nilai.log.odds)
int.comp1 <- c(female$nilai.log.odds, c3$nilai.log.odds, c2$nilai.log.odds, 
               c3$nilai.log.odds)
sel_int <- c(sel_sex, sel_c1c3, sel_c1c2, sel_c2c3)
or <- c(or_sex, or_c1c3, or_c1c2, or_c2c3)
odds_rasio1 <- cbind(rasio, int.model1, int.comp1, sel_int, round(or,2))
colnames(odds_rasio1) <- c("Perbandingan", "Intersep Model", 
                           "Intersep Pembanding", "Selisih Intersep", "Odds Ratio")
kableExtra::kable(odds_rasio1, align = rep("c",3), 
                  caption = "Perhitungan Odds Ratio Antarlevel Peubah")
Perhitungan Odds Ratio Antarlevel Peubah
Perbandingan Intersep Model Intersep Pembanding Selisih Intersep Odds Ratio
Male to Female -3.82 -1.22 -2.6 0.07
Class 1 to Class 3 1.1 -1.22 2.32 10.18
Class 1 to Class 2 1.1 -0.02 1.12 3.06
Class 2 to Class 3 -0.02 -1.22 1.2 3.32

Berdasarkan tabulasi pada tabel di atas, dapat dibuat interpretasi sebagai berikut,

  1. Untuk usia dan jenis kelas tumpangan tertentu, dugaan odds seorang penumpang lelaki untuk selamat dari tragedi Titanic adalah sebesar 0.07 kali dugaan odds selamatnya penumpang perempuan.

  2. Untuk usia dan jenis kelamin tertentu, dugaan odds penumpang di kelas tumpangan 1 untuk selamat dari tragedi Titanic adalah sebesar 10.18 kali dugaan odds selamatnya penumpang di kelas tumpangan 3.

  3. Untuk usia dan jenis kelamin tertentu, dugaan odds penumpang di kelas tumpangan 1 untuk selamat dari tragedi Titanic adalah sebesar 3.06 kali dugaan odds selamatnya penumpang di kelas tumpangan 2.

  4. Untuk usia dan jenis kelamin tertentu, dugaan odds penumpang di kelas tumpangan 2 untuk selamat dari tragedi Titanic adalah sebesar 3.32 kali dugaan odds selamatnya penumpang di kelas tumpangan 3.

Regresi Logistik Tanpa Peubah Dummy

Model Regresi Logistik

Setelah sebelumnya dilakukan analisis regresi logistik menggunakan peubah dummy, dicobakan juga proses analisis tanpa peubah dummy untuk seluruh peubah-peubah penjelas berjenis kategorik. Hasil analisis regresi logistik sebagaimana yang dimaksud dapat diperoleh menggunakan rangkaian sintaks sebagai berikut,

titanic.nodummy <- glm(Survived~sex+Pclass+Age, data = titanic, 
                       family = binomial(link = "logit"))
summary(titanic.nodummy)
## 
## Call:
## glm(formula = Survived ~ sex + Pclass + Age, family = binomial(link = "logit"), 
##     data = titanic)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.6542  -0.6581  -0.4203   0.6383   2.4252  
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  4.723927   0.449753  10.503  < 2e-16 ***
## sex         -2.604618   0.186767 -13.946  < 2e-16 ***
## Pclass      -1.164375   0.118905  -9.792  < 2e-16 ***
## Age         -0.033618   0.007359  -4.568 4.91e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1182.82  on 888  degrees of freedom
## Residual deviance:  804.76  on 885  degrees of freedom
## AIC: 812.76
## 
## Number of Fisher Scoring iterations: 5

Berdasarkan summary dari metode regresi logistik di atas, dapat diperoleh persamaan regresi logistik sebagai berikut,

\[ \begin{aligned} logit[\pi(x)] = 4.72 - 2.6x_1 - 1.16x_2 - 0.03x_3 \end{aligned} \]

dengan \(x_1\) menjelaskan peubah jenis kelamin, \(x_2\) menjelaskan peubah tingkatan kelas penumpang, dan \(x_3\) menjelaskan peubah usia.

Uji Simultan

Untuk menguji signifikansi pengaruh peubah-peubah penjelas pada model regresi logistik secara bersamaan terhadap peubah respon, perlu dilakukan uji simultan Likelihood Ratio (Putri et al 2021). Uji ini dapat dilakukan dengan rangkaian hipotesis dan sintaks sebagai berikut,

\[ \begin{aligned} H_0&: \beta_1 = \beta_2 = \beta_3 = 0 \\ H_1&: \text{ minimal ada satu } \beta_i \neq 0 \end{aligned} \]

nagelkerke(titanic.nodummy) 
## $Models
##                                                                                 
## Model: "glm, Survived ~ sex + Pclass + Age, binomial(link = \"logit\"), titanic"
## Null:  "glm, Survived ~ 1, binomial(link = \"logit\"), titanic"                 
## 
## $Pseudo.R.squared.for.model.vs.null
##                              Pseudo.R.squared
## McFadden                             0.319628
## Cox and Snell (ML)                   0.346404
## Nagelkerke (Cragg and Uhler)         0.470878
## 
## $Likelihood.ratio.test
##  Df.diff LogLik.diff  Chisq    p.value
##       -3     -189.03 378.06 1.2497e-81
## 
## $Number.of.observations
##           
## Model: 889
## Null:  889
## 
## $Messages
## [1] "Note: For models fit with REML, these statistics are based on refitting with ML"
## 
## $Warnings
## [1] "None"

Berdasarkan hasil uji simultan Likelihood Ratio di atas, dapat diperoleh nilai \(p-value < 0.05\). Dengan demikian, dapat disimpulkan bahwa pada taraf nyata 5%, cukup bukti untuk menyatakan bahwa setidaknya ada satu peubah penjelas yang memberikan pengaruh signifikan terhadap keselamatan penumpang Titanic.

Uji Parsial

Setelah melakukan uji simultan, pengujian signifikansi peubah penjelas dilanjutkan melalui rangkaian uji parsial Wald (Putri et al 2021). Pengujian yang dilakukan terhadap setiap peubah penjelas dalam model ini dapat disusun berdasarkan hipotesis dan rangkaian sintaks berikut,

\[ \begin{aligned} H_0&: \beta_j = 0 \\ H_1&: \beta_j \neq 0, j=1,2,3 \end{aligned} \]

Anova(titanic.nodummy, type="II", test="Wald")
## Analysis of Deviance Table (Type II tests)
## 
## Response: Survived
##        Df   Chisq Pr(>Chisq)    
## sex     1 194.486  < 2.2e-16 ***
## Pclass  1  95.892  < 2.2e-16 ***
## Age     1  20.871  4.912e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji parsial Wald di atas, dapat diamati bahwa seluruh peubah penjelas memiliki nilai \(p-value < 0.05\). Dengan demikian, dapat disimpulkan bahwa pada taraf nyata 5%, peubah \(x_1\), \(x_2\), dan \(x_3\) masing-masing berpengaruh signifikan terhadap keselamatan penumpang Titanic.

Dugaan Peluang Peubah Respon

Untuk mempermudah perhitungan dugaan peluang, perlu dibentuk suatu fungsi dengan menginputkan nilai koefisien \(\alpha\), \(\beta_1\), \(\beta_2\), dan \(\beta_3\) secara manual sebagai berikut,

phi.x.2 <- function(x1, x2, x3){
  intercept = 4.72 ; b1 = -2.6 ; b2 = -1.16; b3 = -0.03
  pers <- intercept + b1*x1 + b2*x2 + b3*x3
  phi.x <- exp(pers)/(1+exp(pers))
  return(list(nilai.log.odds=pers, dugaan.peluang=phi.x))
}

Serupa dengan analisis menggunakan peubah dummy, perlu dilakukan standardisasi nilai peubah Age, yaitu 30 tahun. Dengan demikian, dugaan peluang selamat setiap kombinasi peubah respon dummy dapat diamati melalui tabel berikut,

m1 <- phi.x.2(1,1,30)
f1 <- phi.x.2(0,1,30)
m2 <- phi.x.2(1,2,30)
f2 <- phi.x.2(0,2,30)
m3 <- phi.x.2(1,3,30)
f3 <- phi.x.2(0,3,30)

gol2 <- c("Male-Class 1", "Female-Class 1", "Male-Class 2", "Female-Class 2",
         "Male-Class 3", "Female-Class 3")
usia2 <- c(rep("30 tahun", 6))
logit2 <- c(m1$nilai.log.odds, f1$nilai.log.odds, m2$nilai.log.odds, 
            f2$nilai.log.odds, m3$nilai.log.odds, f3$nilai.log.odds)
prob2 <- c(m1$dugaan.peluang, f1$dugaan.peluang, m2$dugaan.peluang, 
          f2$dugaan.peluang, m3$dugaan.peluang, f3$dugaan.peluang)
dugaan2 <- data.frame(cbind(gol2, usia2, round(logit2,2), round(prob2,2)))
colnames(dugaan2) <- c("Golongan", "Usia", "logit", "Dugaan Peluang")
dugaan2$`Dugaan Selamat` <- ifelse(dugaan2$`Dugaan Peluang` >= 0.5, "Selamat", 
                                   "Tidak Selamat")
kableExtra::kable(dugaan2, align = rep("c",4), 
                  caption = "Pendugaan Peluang Selamat dari Tragedi Titanic")
Pendugaan Peluang Selamat dari Tragedi Titanic
Golongan Usia logit Dugaan Peluang Dugaan Selamat
Male-Class 1 30 tahun 0.06 0.51 Selamat
Female-Class 1 30 tahun 2.66 0.93 Selamat
Male-Class 2 30 tahun -1.1 0.25 Tidak Selamat
Female-Class 2 30 tahun 1.5 0.82 Selamat
Male-Class 3 30 tahun -2.26 0.09 Tidak Selamat
Female-Class 3 30 tahun 0.34 0.58 Selamat

Berdasarkan tabulasi pada tabel di atas, dengan nilai cut off respon pada angka 0.5, dapat diamati bahwa ada dua golongan yang diduga tidak selamat dari tragedi Titanic, yaitu golongan laki-laki dengan jenis kelas tumpangan 2 dan 3. Serupa dengan hasil analisis menggunakan peubah dummy, secara umum dugaan peluang selamat penumpang berjenis kelamin perempuan lebih tinggi dibandingkan penumpang laki-laki.

Odds Ratio Antarlevel Peubah

Setelah menduga peluang selamat tiap kombinasi peubah respon dummy yang mungkin, dapat dihitung pula nilai odds ratio antarlevel tiap peubah dengan sintaks sebagai berikut,

male2 <- phi.x.2(1,0,0)
female2 <- phi.x.2(0,0,0)
sel_sex2 <- male2$nilai.log.odds-female2$nilai.log.odds
or_sex2 <- exp(sel_sex2)

c1.2 <- phi.x.2(0,1,0)
c3.2 <- phi.x.2(0,3,0)
sel_c1c3.2 <- c1.2$nilai.log.odds-c3.2$nilai.log.odds
or_c1c3.2 <- exp(sel_c1c3.2)

c2.2 <- phi.x.2(0,2,0)
sel_c1c2.2 <- c1.2$nilai.log.odds-c2.2$nilai.log.odds
or_c1c2.2 <- exp(sel_c1c2.2)

sel_c2c3.2 <- c2.2$nilai.log.odds-c3.2$nilai.log.odds
or_c2c3.2 <- exp(sel_c2c3.2)

rasio2 <- c("Male to Female", "Class 1 to Class 3", "Class 1 to Class 2", 
            "Class 2 to Class 3")
int.model2 <- c(male2$nilai.log.odds, c1.2$nilai.log.odds, c1.2$nilai.log.odds, 
                c2.2$nilai.log.odds)
int.comp2 <- c(female2$nilai.log.odds, c3.2$nilai.log.odds, c2.2$nilai.log.odds, 
               c3.2$nilai.log.odds)
sel_int2 <- c(sel_sex2, sel_c1c3.2, sel_c1c2.2, sel_c2c3.2)
or2 <- c(or_sex2, or_c1c3.2, or_c1c2.2, or_c2c3.2)
odds_rasio2 <- cbind(rasio2, int.model2, int.comp2, sel_int2, round(or2,2))
colnames(odds_rasio2) <- c("Perbandingan", "Intersep Model", 
                           "Intersep Pembanding", "Selisih Intersep", "Odds Ratio")
kableExtra::kable(odds_rasio2, align = rep("c",5), 
                  caption = "Perhitungan Odds Ratio Antarlevel Peubah")
Perhitungan Odds Ratio Antarlevel Peubah
Perbandingan Intersep Model Intersep Pembanding Selisih Intersep Odds Ratio
Male to Female 2.12 4.72 -2.6 0.07
Class 1 to Class 3 3.56 1.24 2.32 10.18
Class 1 to Class 2 3.56 2.4 1.16 3.19
Class 2 to Class 3 2.4 1.24 1.16 3.19

Berdasarkan tabulasi pada tabel di atas, dapat dibuat interpretasi sebagai berikut,

  1. Untuk usia dan jenis kelas tumpangan tertentu, dugaan odds seorang penumpang lelaki untuk selamat dari tragedi Titanic adalah sebesar 0.07 kali dugaan odds selamatnya penumpang perempuan.

  2. Untuk usia dan jenis kelamin tertentu, dugaan odds penumpang di kelas tumpangan 1 untuk selamat dari tragedi Titanic adalah sebesar 10.18 kali dugaan odds selamatnya penumpang di kelas tumpangan 3.

  3. Untuk usia dan jenis kelamin tertentu, dugaan odds penumpang di kelas tumpangan 1 untuk selamat dari tragedi Titanic adalah sebesar 3.19 kali dugaan odds selamatnya penumpang di kelas tumpangan 2.

  4. Untuk usia dan jenis kelamin tertentu, dugaan odds penumpang di kelas tumpangan 2 untuk selamat dari tragedi Titanic adalah sebesar 3.19 kali dugaan odds selamatnya penumpang di kelas tumpangan 3.

Kesimpulan

Berdasarkan hasil analisis menggunakan regresi logistik dengan dan tanpa peubah dummy, dapat diketahui beberapa hal sebagai berikut,

  1. Baik regresi logistik dengan maupun tanpa peubah dummy, model dan seluruh peubah yang digunakan berpengaruh signifikan terhadap peubah respon.

  2. Secara umum, penumpang perempuan memiliki dugaan peluang selamat dari tragedi Titanic yang lebih tinggi dibandingkan penumpang laki-laki.

  3. Secara umum, kelas tumpangan yang memiliki dugaan peluang selamat dari tragedi Titanic paling tinggi secara berurutan adalah kelas tumpangan 1, 2, dan 3.

  4. Lebih banyak golongan penumpang yang diduga selamat dari tragedi Titanic dalam model regresi logistik tanpa peubah dummy dibanding model regresi logistik dengan peubah dummy.

Berdasarkan temuan-temuan dari hasil analisis sebagaimana yang telah dipaparkan di atas serta menimbang keadaan data sebagaimana yang diketahui melalui proses eksplorasi data, yaitu lebih banyak penumpang yang tidak berhasil selamat dari tragedi tenggelamnya kapal Titanic, dapat disimpulkan bahwa metode terbaik yang tepat digunaan untuk data penumpang Titanic di atas adalah metode regresi logistik dengan peubah dummy untuk peubah-peubah penjelas berjenis kategorik.

Daftar Pustaka

Agresti A. 2003. Categorical Data Analysis (2th ed.). John Wiley & Sons.

Nurdiansah SN, Khikmah L. 2020. Binary logistic regression analysis of variables that influence poverty in Central Java. Journal of Intelligent Computing and Health Informatics. 1(1): 5-8. doi:10.26714/jichi.v1i1.5381.

Putri DLW, Mariani S, Sunarmi. 2021. Peningkatan ketepatan klasifikasi model regresi logistik biner dengan metode bagging (bootstrap aggregating). Indonesia Journal of Mathematics and Natural Sciences. 44(2): 61-72.