PROGRAM STUDI STATISTIKA FAKULTAS TEKNIK
UNIVERSITAS SULTAN AGENG
TIRTAYASA
2025
Titanic merupakan kapal penumpang mewah yang sangat terkenal pada awal abad ke-20 dan tenggelam pada 15 April 1912. Kapal ini dibangun oleh perusahaan pelayaran Inggris, White Star Line, dan pada masanya dianggap sebagai salah satu pencapaian teknik paling mengesankan. Ukurannya yang besar, desain interior yang mewah, serta teknologi modern membuat banyak orang menantikan pelayaran perdananya.
Pada 10 April 1912, Titanic berangkat dari Southampton menuju New York dan berhenti di Cherbourg serta Queenstown sebelum melanjutkan perjalanan. Kapal ini dijadwalkan tiba di New York pada 17 April 1912, namun tragedi terjadi ketika Titanic menabrak gunung es dan tenggelam pada 15 April 1912 pukul 02.20 pagi [1].Tragedi ini menjadi salah satu kecelakaan laut paling menyedihkan, terlebih karena kapal tersebut sebelumnya dipromosikan sebagai kapal yang tidak dapat tenggelam [2]. Keterbatasan jumlah sekoci penyelamat semakin memperparah situasi, membuat banyak penumpang tidak dapat diselamatkan.
Hingga kini, peristiwa Titanic tetap menjadi topik yang terus dibahas, baik dalam media populer maupun penelitian ilmiah. Selain karena nilai historisnya, tragedi ini banyak dikaji karena menyediakan data nyata mengenai faktor-faktor yang mempengaruhi keselamatan penumpang. Dataset Titanic bahkan menjadi salah satu dataset paling dikenal dalam dunia analisis data dan pembelajaran statistik.
Dalam konteks penelitian modern, data tersebut memberikan kesempatan untuk memahami bagaimana variabel seperti usia, jenis kelamin, kelas tiket, dan kondisi lainnya dapat berperan dalam peluang seseorang selamat. Untuk mengeksplorasi pola-pola tersebut secara lebih terstruktur, penelitian ini memanfaatkan metode analisis statistik.
Pada penelitian ini menggunakan perangkat lunak R dan teknik regresi logistik. R dipilih karena kemampuannya dalam mengolah data, membuat visualisasi, serta membangun model statistik secara efisien. Sementara itu, regresi logistik sesuai untuk memodelkan variabel keluaran biner, seperti status selamat atau tidak selamat, sehingga memungkinkan peneliti mengukur seberapa besar pengaruh masing-masing faktor terhadap peluang keselamatan penumpang Titanic.
Penelitian ini menggunakan pendekatan kuantitatif dengan metode analisis inferensial. Pendekatan ini dipilih karena penelitian berfokus pada pengukuran pengaruh beberapa variabel penjelas terhadap variabel respon berupa status keselamatan penumpang Titanic. Analisis dilakukan menggunakan model regresi logistik biner karena variabel respon memiliki dua kategori, yaitu selamat dan tidak selamat.
Penelitian ini menggunakan data sekunder yang diperoleh dari dataset Titanic yang tersedia pada perangkat lunak R. Dataset ini merupakan data hasil kompilasi jumlah penumpang berdasarkan beberapa karakteristik seperti kelas, jenis kelamin, usia, dan status keselamatan. Data digunakan sebagaimana tersedia karena dataset tersebut telah banyak dijadikan sebagai contoh dalam pembelajaran analisis statistik.
Populasi dalam penelitian ini adalah seluruh penumpang kapal RMS Titanic pada tahun 1912. Sampel penelitian adalah penumpang yang tercatat dalam dataset Titanic pada R, yang merepresentasikan distribusi penumpang berdasarkan frekuensi pada masing-masing kombinasi kategori variabel.
Analisis yang digunakan dalam penelitian ini adalah regresi logistik biner. Regresi logistik biner adalah salah satu model analisis statistik yang bertujuan menghitung peluang terjadinya suatu peubah respon berdasarkan nilai-nilai pada peubah penjelasnya [3]. 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.
\[ \text{logit}[\pi(x)] = \alpha + \beta_{1} x_{1} + \beta_{2} x_{2} + \cdots + \beta_{k} x_{k} \]
Seluruh proses analisis dilakukan menggunakan perangkat lunak R, mulai dari pra-pemrosesan data hingga interpretasi hasil model. Prosedur analisis dilakukan melalui langkah-langkah berikut.
1.Pemanggilan Data dan Package
Data Titanic diperoleh dari datasets bawaan R dan dimuat ke dalam data frame. Package seperti dplyr, ggplot2, car, dan rcompanion digunakan untuk pengolahan data, visualisasi, dan estimasi model regresi logistik.
library(rcompanion)
library(car)
library(dplyr)
library(ggplot2)
library(titanic)
library(datasets)
titanic_train <- titanic::titanic_train
View(titanic_train)
head(titanic_train)
2.Persiapan Data
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-pemrosesan data sebagai berikut. Pra-pemrosesan data pertama yang dilakukan adalah melakukan indeksasi pada peubah Sex yang menjelaskan jenis kelamin penumpang. Indeksasi (sex) yang dilakukan adalah sebagai berikut.
Laki-laki (male): 1
Perempuan (female): 0
titanic_train$sex <- ifelse(titanic_train$Sex == "male", 1, 0)
Pra-pemrosesan 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.
Kelas Tumpangan 1: 1,0
Kelas Tumpangan 2: 0,1
Kelas Tumpangan 3: 0,0
titanic_train$pclass1 <- ifelse(titanic_train$Pclass == "1", 1, 0)
titanic_train$pclass2 <- ifelse(titanic_train$Pclass == "2", 1, 0)
titanic <- titanic_train[, c(2,3,5,10:12)]
titanic_train$Survived <- as.factor(titanic_train$Survived)
titanic_train$pclass1 <- as.factor(titanic_train$pclass1)
titanic_train$pclass2 <- as.factor(titanic_train$pclass2)
titanic_train$Age <- as.integer(round(titanic_train$Age, 0))
titanic_train$sex <- as.integer(titanic_train$sex)
str(titanic)
3.Eksplorasi Data
Eksplorasi data dilakukan untuk memperoleh gambaran awal mengenai struktur dan karakteristik dataset Titanic sebelum proses pemodelan regresi logistik. Langkah eksplorasi ini dilakukan melalui beberapa visualisasi dan ringkasan statistik sebagai berikut:
Pie chart digunakan untuk melihat proporsi penumpang yang selamat dan tidak selamat. Visualisasi ini membantu memahami karakteristik dasar peubah respon yang bersifat biner dan memastikan kesesuaian penggunaan model regresi logistik.
titanic_train$surv <- as.integer(titanic_train$Survived)
d <- titanic_train %>% count(surv)
pie(c(d[1,2],d[2,2]), col = c("#0000ff", "#FFFFCC"),
labels = c("Tidak Selamat", "Selamat"), border = "black",
main = "Status Selamat Penumpang Titanic")
Diagram batang digunakan untuk menggambarkan jumlah penumpang pada masing-masing kelas tumpangan. Visualisasi ini memberikan gambaran mengenai proporsi tiap kategori serta potensi perbedaan pola keselamatan antar kelas.
ggplot(titanic_train) +
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")
Violin plot digunakan untuk melihat sebaran usia penumpang pada masing-masing kategori Survived. Plot ini memberikan informasi awal mengenai pola distribusi peubah numerik serta membantu mengidentifikasi apakah terdapat perbedaan karakteristik usia antar kelompok.
ggplot(titanic_train) +
aes(x = Age, y = Survived) +
geom_violin(adjust = 1L, scale = "area", fill = "#0000ff") +
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)
)
4.Penyusunan Model Regresi Logistik dengan Peubah Dummy
Model regresi logistik pertama dibentuk dengan memasukkan peubah Sex (dummy), pclass1, pclass2, dan Age sebagai peubah penjelas. Analisis meliputi:
titanic_train.dummy <- glm(Survived~as.factor(titanic_train$sex)+titanic_train$pclass1+titanic_train$pclass2+titanic_train$Age, data = titanic_train,
family = binomial(link = "logit"))
summary(titanic_train.dummy)
Untuk menguji signifikansi pengaruh peubah-peubah penjelas pada model regresi logistik secara bersamaan terhadap peubah respon, perlu dilakukan uji simultan Likelihood Ratio [4]. Uji tersebut dapat dilakukan dengan rangkaian hipotesis dan sintaks sebagai berikut,
\[ H_{0}: \beta_{1} = \beta_{2} = \beta_{3} = \beta_{4} = 0 \]
\[ H_{1}: \text{Minimal ada satu } \beta_{i} \ne 0 \]
nagelkerke(titanic_train.dummy)
Setelah melakukan uji simultan, pengujian signifikansi peubah penjelas dilanjutkan melalui rangkaian uji parsial Wald [4]. Pengujian yang dilakukan terhadap setiap peubah penjelas dalam model ini dapat disusun berdasarkan hipotesis dan sintaks berikut.
\[ H_{0}: \beta_{j} = 0 \]
\[ H_{1}: \beta_{j} \ne 0,\quad j = 1, 2, 3, 4 \]
Anova(titanic_train.dummy, type="II", test="Wald")
Model regresi logistik memberikan pendugaan nilai p, yaitu peluang penumpang selamat berdasarkan kombinasi karakteristik tertentu. Nilai ini diperoleh dari transformasi fungsi logit menjadi fungsi logistik.
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))
}
summary(titanic_train$Age)
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")
Odds ratio digunakan untuk menginterpretasikan seberapa besar peluang relatif suatu kategori dibandingkan kategori lainnya. Dalam variabel kategorik, perbandingan antarlevel memberikan pemahaman mengenai faktor yang meningkatkan atau menurunkan peluang keselamatan.
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")
5.Penyusunan Model Regresi Logistik Tanpa Peubah Dummy
Model kedua disusun menggunakan peubah Sex dan Pclass asli sebagai faktor tanpa pengkodean manual. R akan menghasilkan dummy internal secara otomatis. Analisis yang dilakukan sama seperti pada model pertama:
titanic_train.nodummy <- glm(Survived~titanic_train$sex+titanic_train$Pclass+titanic_train$Age, data = titanic_train,
family = binomial(link = "logit"))
summary(titanic_train.nodummy)
Untuk menguji signifikansi pengaruh peubah-peubah penjelas pada model regresi logistik secara bersamaan terhadap peubah respon, perlu dilakukan uji simultan Likelihood Ratio [4]. Uji tersebut dapat dilakukan dengan rangkaian hipotesis dan sintaks sebagai berikut.
\[ H_{0}: \beta_{j} = 0 \]
\[ H_{1}: \beta_{j} \ne 0,\quad j = 1, 2, 3, 4 \]
nagelkerke(titanic_train.nodummy)
Setelah melakukan uji simultan, pengujian signifikansi peubah penjelas dilanjutkan melalui rangkaian uji parsial Wald [4]. Pengujian yang dilakukan terhadap setiap peubah penjelas dalam model ini dapat disusun berdasarkan hipotesis dan sintaks berikut.
\[ H_{0}: \beta_{j} = 0 \]
\[ H_{1}: \beta_{j} \ne 0,\quad j = 1, 2, 3 \]
Anova(titanic_train.nodummy, type="II", test="Wald")
Model regresi logistik memberikan pendugaan nilai p, yaitu peluang penumpang selamat berdasarkan kombinasi karakteristik tertentu. Nilai ini diperoleh dari transformasi fungsi logit menjadi fungsi logistik.
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))
}
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")
Odds ratio digunakan untuk menginterpretasikan seberapa besar peluang relatif suatu kategori dibandingkan kategori lainnya. Dalam variabel kategorik, perbandingan antarlevel memberikan pemahaman mengenai faktor yang meningkatkan atau menurunkan peluang keselamatan.
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")
Pada bagian ini, ditampilkan output dari sintaks regresi logistik. Output ini digunakan untuk melihat pengaruh variabel-variabel independen terhadap peluang penumpang Titanic untuk selamat.
## PassengerId Survived Pclass
## 1 1 0 3
## 2 2 1 1
## 3 3 1 3
## 4 4 1 1
## 5 5 0 3
## 6 6 0 3
## Name Sex Age SibSp Parch
## 1 Braund, Mr. Owen Harris male 22 1 0
## 2 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0
## 3 Heikkinen, Miss. Laina female 26 0 0
## 4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0
## 5 Allen, Mr. William Henry male 35 0 0
## 6 Moran, Mr. James male NA 0 0
## Ticket Fare Cabin Embarked
## 1 A/5 21171 7.2500 S
## 2 PC 17599 71.2833 C85 C
## 3 STON/O2. 3101282 7.9250 S
## 4 113803 53.1000 C123 S
## 5 373450 8.0500 S
## 6 330877 8.4583 Q
## 'data.frame': 891 obs. of 6 variables:
## $ Survived: int 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
## $ Sex : chr "male" "female" "female" "female" ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : chr "" "C85" "" "C123" ...
## $ Embarked: chr "S" "C" "S" "S" ...
## Warning: Removed 177 rows containing non-finite outside the scale range
## (`stat_ydensity()`).
1.Model regresi
Didapatkan hasil estimasi koefiseien regresi logistik
##
## Call:
## glm(formula = Survived ~ as.factor(titanic_train$sex) + titanic_train$pclass1 +
## titanic_train$pclass2 + titanic_train$Age, family = binomial(link = "logit"),
## data = titanic_train)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.195195 0.252605 4.731 2.23e-06 ***
## as.factor(titanic_train$sex)1 -2.522727 0.207379 -12.165 < 2e-16 ***
## titanic_train$pclass11 2.580495 0.281493 9.167 < 2e-16 ***
## titanic_train$pclass21 1.270836 0.244049 5.207 1.92e-07 ***
## titanic_train$Age -0.036949 0.007658 -4.825 1.40e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 964.52 on 713 degrees of freedom
## Residual deviance: 647.35 on 709 degrees of freedom
## (177 observations deleted due to missingness)
## AIC: 657.35
##
## Number of Fisher Scoring iterations: 5
2.Uji Simultan
## $Models
##
## Model: "glm, Survived ~ as.factor(titanic_train$sex) + titanic_train$pclass1 + titanic_train$pclass2 + titanic_train$Age, binomial(link = \"logit\"), titanic_train"
## Null: "glm, Survived ~ 1, binomial(link = \"logit\"), titanic_train"
##
## $Pseudo.R.squared.for.model.vs.null
## Pseudo.R.squared
## McFadden 0.454476
## Cox and Snell (ML) 0.530145
## Nagelkerke (Cragg and Uhler) 0.654308
##
## $Likelihood.ratio.test
## Df.diff LogLik.diff Chisq p.value
## -4 -269.65 539.31 2.1066e-115
##
## $Number.of.observations
##
## Model: 714
## Null: 891
##
## $Messages
## [1] "Note: For models fit with REML, these statistics are based on refitting with ML"
##
## $Warnings
## [1] "WARNING: Fitted and null models have different numbers of observations"
3.Uji Parsial
## Analysis of Deviance Table (Type II tests)
##
## Response: Survived
## Df Chisq Pr(>Chisq)
## as.factor(titanic_train$sex) 1 147.982 < 2.2e-16 ***
## titanic_train$pclass1 1 84.037 < 2.2e-16 ***
## titanic_train$pclass2 1 27.116 1.916e-07 ***
## titanic_train$Age 1 23.280 1.400e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
4.Pendugaan Peluang
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.00 20.00 28.00 29.69 38.00 80.00 177
| 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 |
5.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 |
1.Model Regresi
Didapatkan hasil estimasi koefisien regresi logistik
##
## Call:
## glm(formula = Survived ~ titanic_train$sex + titanic_train$Pclass +
## titanic_train$Age, family = binomial(link = "logit"), data = titanic_train)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 5.05466 0.50223 10.064 < 2e-16 ***
## titanic_train$sex -2.52208 0.20727 -12.168 < 2e-16 ***
## titanic_train$Pclass -1.28849 0.13928 -9.251 < 2e-16 ***
## titanic_train$Age -0.03689 0.00763 -4.836 1.33e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 964.52 on 713 degrees of freedom
## Residual deviance: 647.36 on 710 degrees of freedom
## (177 observations deleted due to missingness)
## AIC: 655.36
##
## Number of Fisher Scoring iterations: 5
2.Uji Simultan
## $Models
##
## Model: "glm, Survived ~ titanic_train$sex + titanic_train$Pclass + titanic_train$Age, binomial(link = \"logit\"), titanic_train"
## Null: "glm, Survived ~ 1, binomial(link = \"logit\"), titanic_train"
##
## $Pseudo.R.squared.for.model.vs.null
## Pseudo.R.squared
## McFadden 0.454469
## Cox and Snell (ML) 0.530140
## Nagelkerke (Cragg and Uhler) 0.654302
##
## $Likelihood.ratio.test
## Df.diff LogLik.diff Chisq p.value
## -3 -269.65 539.3 1.4505e-116
##
## $Number.of.observations
##
## Model: 714
## Null: 891
##
## $Messages
## [1] "Note: For models fit with REML, these statistics are based on refitting with ML"
##
## $Warnings
## [1] "WARNING: Fitted and null models have different numbers of observations"
3.Uji Parsial
## Analysis of Deviance Table (Type II tests)
##
## Response: Survived
## Df Chisq Pr(>Chisq)
## titanic_train$sex 1 148.060 < 2.2e-16 ***
## titanic_train$Pclass 1 85.576 < 2.2e-16 ***
## titanic_train$Age 1 23.382 1.328e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
4.Pendugaan Peluang
| 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 |
5.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 |
Eksplorasi awal terhadap dataset Titanic memberikan gambaran umum mengenai pola keselamatan penumpang. Visualisasi pie chart menunjukkan bahwa jumlah penumpang yang tidak selamat jauh lebih besar dibandingkan penumpang yang selamat. Proporsi yang timpang ini sekaligus menegaskan bahwa peubah Survived bersifat biner sehingga sesuai dianalisis menggunakan regresi logistik. Diagram batang untuk Pclass memperlihatkan bahwa kelas tumpangan 3 memiliki jumlah penumpang tidak selamat terbesar, sedangkan kelas 1 dan 2 berada pada jumlah yang lebih rendah. Pada kelas 1, terlihat bahwa penumpang yang selamat lebih banyak dibandingkan yang tidak selamat. Pola ini memberikan indikasi awal bahwa kelas sosial mungkin berperan dalam menentukan peluang keselamatan. Violin plot untuk peubah Age menunjukkan bahwa sebaran usia antara penumpang yang selamat dan tidak selamat tidak berbeda secara mencolok. Namun pola distribusi mengisyaratkan bahwa sebagian besar penumpang berada pada rentang usia 20 hingga 40 tahun. Hasil eksplorasi ini menjadi dasar untuk membangun model regresi logistik yang memasukkan Sex, Pclass, dan Age sebagai peubah penjelas.
Analisis regresi logistik pertama dibangun menggunakan peubah Sex dan Pclass dalam bentuk dummy.Berdasarkan hasil estimasi, diperoleh model:
\[ \operatorname{logit}\!\big(\pi(x)\big) = 1.19 - 2.52\,c_{1} + 2.58\,c_{2} + 1.27\,c_{3} - 0.03\,x \]
dengan \(c{1}\) adalah dummy jenis kelamin, \(c{2}\) dan \(c{3}\) adalah dummy kelas penumpang, dan x adalah usia. Koefisien pada model menunjukkan bahwa jenis kelamin laki-laki menurunkan peluang selamat, sedangkan kelas tumpangan 1 dan 2 meningkatkan peluang selamat dibandingkan kelas 3. Hasil uji simultan menghasilkan \(\text{p-value} < 0.05\), sehingga seluruh peubah penjelas secara bersama-sama terbukti berpengaruh signifikan terhadap keselamatan penumpang. Uji parsial memberikan hasil yang serupa, yaitu bahwa seluruh peubah memiliki \(\text{p-value} < 0.05\), sehingga masing-masing peubah memberikan kontribusi signifikan terhadap model. Berdasarkan dugaan peluang dengan cut off 0.5, diperoleh bahwa hanya perempuan pada kelas tumpangan 1 yang terprediksi selamat. Temuan ini sejalan dengan pola historis bahwa penumpang perempuan dan kelas atas lebih diprioritaskan dalam evakuasi. Interpretasi odds ratio memperjelas hubungan antarpeubah. Peluang relatif (odds) penumpang laki-laki untuk selamat hanya 0.07 kali dibandingkan perempuan dengan kondisi usia dan kelas yang sama. Selain itu, odds penumpang kelas 1 untuk selamat mencapai 10.18 kali dibanding kelas 3 dan 3.06 kali dibanding kelas 2. Penumpang di kelas 2 selamat sebesar 3.32 kali dugaan odds selamatnya dibanding kelas 3.
Model kedua dibangun tanpa membuat peubah dummy secara manual, karena R secara otomatis memperlakukan Pclass sebagai faktor. Dari hasil estimasi, diperoleh model:
\[ \operatorname{logit}\!\big(\pi(x)\big) = 5.05 - 2.52\,x_{1} - 1.28\,x_{2} - 0.03\,x_{3} \]
dengan \(x{1}\) adalah jenis kelamin, \(x{2}\) adalah kelas tumpangan, dan \(x{3}\) adalah usia. Arah pengaruh koefisien pada model ini tetap konsisten dengan model sebelumnya, yaitu bahwa penumpang laki-laki dan kelas tumpangan yang lebih rendah memiliki peluang keselamatan yang lebih kecil. Uji simultan menunjukkan \(\text{p-value} < 0.05\) sehingga model signifikan secara keseluruhan. Uji parsial memberikan hasil yang serupa, yaitu bahwa seluruh peubah memiliki \(\text{p-value} < 0.05\), sehingga masing-masing peubah memberikan kontribusi signifikan terhadap model. Dengan cut off 0.5, model memprediksi bahwa penumpang laki-laki pada kelas 2 dan 3 cenderung tidak selamat. Hasil ini konsisten dengan model dummy dan memberikan dukungan tambahan bahwa kombinasi jenis kelamin dan kelas sosial berpengaruh signifikan. Odds ratio pada model ini menunjukkan hubungan yang serupa, yaitu odds laki-laki untuk selamat sebesar 0.07 kali odds perempuan, odds kelas 1 sebesar 10.18 kali dibanding kelas 3 dan 3.19 kali dibanding kelas 2. Penumpang di kelas 2 selamat sebesar 3.19 kali dugaan odds dibanding kelas 3.
Berdasarkan hasil analisis regresi logistik baik dengan maupun tanpa peubah dummy, dapat diperoleh beberapa poin berikut.
Model regresi logistik, baik menggunakan peubah dummy maupun tidak, menunjukkan bahwa seluruh peubah yang digunakan memiliki pengaruh signifikan terhadap peubah respon.
Secara keseluruhan, penumpang perempuan memiliki peluang selamat yang lebih besar dibandingkan penumpang laki-laki dalam tragedi Titanic.
Secara umum, urutan kelas tumpangan dengan peluang selamat tertinggi hingga terendah tetap konsisten, yaitu kelas 1, kemudian kelas 2, dan terakhir kelas 3.
Jumlah penumpang yang diprediksi selamat oleh model regresi logistik tanpa peubah dummy lebih banyak dibandingkan prediksi pada model regresi logistik dengan peubah dummy.
Dengan mempertimbangkan hasil analisis tersebut serta kondisi data yang terlihat pada eksplorasi awal, yaitu bahwa sebagian besar penumpang tidak selamat, maka dapat disimpulkan bahwa metode yang paling sesuai untuk menganalisis data penumpang Titanic adalah regresi logistik dengan peubah dummy untuk peubah penjelas yang bersifat kategorik.
[1] Tim Kompas. 2021. Mengapa Titanic Bisa Tenggelam? Ini Kronologi dan Kisahnya. https://internasional.kompas.com/read/2021/09/30/112221170/mengapa-titanic-bisa-tenggelam-ini-kronologi-dan-kisahnya?page=all. Diakses tanggal 28 November 2025.
[2] Novanra, Fahira, Rusharijanto, Rasyifa, dkk. 2019. Analisis Film Titanic Sebagai Media Kampanye Mitigasi Bencana Kapal Tenggelam. SEMIOSTIKA: Jurnal Komunikasi, 13(02), 1-8.
[3] Nurdiansah, S. N.; 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.
[4] Putri, D. L. W., 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.
[5] Wibisono, A. R. (2022). Regresi Logistik Titanic. RPubs. https://rpubs.com/akmalrizaw/reglog-titanic. Diakses tanggal 28 November 2025.